| spv.shaderBallot.comp |
| // Module Version 10000 |
| // Generated by (magic number): 8000a |
| // Id's are bound by 318 |
| |
| Capability Shader |
| Capability Int64 |
| Capability SubgroupBallotKHR |
| Extension "SPV_KHR_shader_ballot" |
| 1: ExtInstImport "GLSL.std.450" |
| MemoryModel Logical GLSL450 |
| EntryPoint GLCompute 4 "main" 10 12 22 29 36 43 50 |
| ExecutionMode 4 LocalSize 8 8 1 |
| Source GLSL 450 |
| SourceExtension "GL_ARB_gpu_shader_int64" |
| SourceExtension "GL_ARB_shader_ballot" |
| Name 4 "main" |
| Name 8 "invocation" |
| Name 10 "gl_SubGroupInvocationARB" |
| Name 12 "gl_SubGroupSizeARB" |
| Name 19 "relMask" |
| Name 22 "gl_SubGroupEqMaskARB" |
| Name 29 "gl_SubGroupGeMaskARB" |
| Name 36 "gl_SubGroupGtMaskARB" |
| Name 43 "gl_SubGroupLeMaskARB" |
| Name 50 "gl_SubGroupLtMaskARB" |
| Name 72 "Buffers" |
| MemberName 72(Buffers) 0 "f4" |
| MemberName 72(Buffers) 1 "i4" |
| MemberName 72(Buffers) 2 "u4" |
| Name 75 "data" |
| Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId |
| Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize |
| Decorate 22(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR |
| Decorate 29(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR |
| Decorate 36(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR |
| Decorate 43(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR |
| Decorate 50(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR |
| MemberDecorate 72(Buffers) 0 Offset 0 |
| MemberDecorate 72(Buffers) 1 Offset 16 |
| MemberDecorate 72(Buffers) 2 Offset 32 |
| Decorate 72(Buffers) BufferBlock |
| Decorate 75(data) DescriptorSet 0 |
| Decorate 75(data) Binding 0 |
| Decorate 317 BuiltIn WorkgroupSize |
| 2: TypeVoid |
| 3: TypeFunction 2 |
| 6: TypeInt 32 0 |
| 7: TypePointer Function 6(int) |
| 9: TypePointer Input 6(int) |
| 10(gl_SubGroupInvocationARB): 9(ptr) Variable Input |
| 12(gl_SubGroupSizeARB): 9(ptr) Variable Input |
| 15: 6(int) Constant 4 |
| 17: TypeInt 64 0 |
| 18: TypePointer Function 17(int64_t) |
| 20: TypeVector 6(int) 4 |
| 21: TypePointer Input 20(ivec4) |
| 22(gl_SubGroupEqMaskARB): 21(ptr) Variable Input |
| 26: TypeVector 6(int) 2 |
| 29(gl_SubGroupGeMaskARB): 21(ptr) Variable Input |
| 36(gl_SubGroupGtMaskARB): 21(ptr) Variable Input |
| 43(gl_SubGroupLeMaskARB): 21(ptr) Variable Input |
| 50(gl_SubGroupLtMaskARB): 21(ptr) Variable Input |
| 58: TypeBool |
| 59: 58(bool) ConstantTrue |
| 68: TypeFloat 32 |
| 69: TypeVector 68(float) 4 |
| 70: TypeInt 32 1 |
| 71: TypeVector 70(int) 4 |
| 72(Buffers): TypeStruct 69(fvec4) 71(ivec4) 20(ivec4) |
| 73: TypeArray 72(Buffers) 15 |
| 74: TypePointer Uniform 73 |
| 75(data): 74(ptr) Variable Uniform |
| 77: 70(int) Constant 0 |
| 78: 6(int) Constant 0 |
| 79: TypePointer Uniform 68(float) |
| 86: 70(int) Constant 1 |
| 87: TypeVector 68(float) 2 |
| 88: TypePointer Uniform 69(fvec4) |
| 102: 70(int) Constant 2 |
| 103: TypeVector 68(float) 3 |
| 119: 70(int) Constant 3 |
| 134: TypePointer Uniform 70(int) |
| 141: TypeVector 70(int) 2 |
| 142: TypePointer Uniform 71(ivec4) |
| 156: TypeVector 70(int) 3 |
| 186: TypePointer Uniform 6(int) |
| 193: TypePointer Uniform 20(ivec4) |
| 207: TypeVector 6(int) 3 |
| 315: 6(int) Constant 8 |
| 316: 6(int) Constant 1 |
| 317: 207(ivec3) ConstantComposite 315 315 316 |
| 4(main): 2 Function None 3 |
| 5: Label |
| 8(invocation): 7(ptr) Variable Function |
| 19(relMask): 18(ptr) Variable Function |
| 11: 6(int) Load 10(gl_SubGroupInvocationARB) |
| 13: 6(int) Load 12(gl_SubGroupSizeARB) |
| 14: 6(int) IAdd 11 13 |
| 16: 6(int) UMod 14 15 |
| Store 8(invocation) 16 |
| 23: 20(ivec4) Load 22(gl_SubGroupEqMaskARB) |
| 24: 6(int) CompositeExtract 23 0 |
| 25: 6(int) CompositeExtract 23 1 |
| 27: 26(ivec2) CompositeConstruct 24 25 |
| 28: 17(int64_t) Bitcast 27 |
| 30: 20(ivec4) Load 29(gl_SubGroupGeMaskARB) |
| 31: 6(int) CompositeExtract 30 0 |
| 32: 6(int) CompositeExtract 30 1 |
| 33: 26(ivec2) CompositeConstruct 31 32 |
| 34: 17(int64_t) Bitcast 33 |
| 35: 17(int64_t) IAdd 28 34 |
| 37: 20(ivec4) Load 36(gl_SubGroupGtMaskARB) |
| 38: 6(int) CompositeExtract 37 0 |
| 39: 6(int) CompositeExtract 37 1 |
| 40: 26(ivec2) CompositeConstruct 38 39 |
| 41: 17(int64_t) Bitcast 40 |
| 42: 17(int64_t) IAdd 35 41 |
| 44: 20(ivec4) Load 43(gl_SubGroupLeMaskARB) |
| 45: 6(int) CompositeExtract 44 0 |
| 46: 6(int) CompositeExtract 44 1 |
| 47: 26(ivec2) CompositeConstruct 45 46 |
| 48: 17(int64_t) Bitcast 47 |
| 49: 17(int64_t) IAdd 42 48 |
| 51: 20(ivec4) Load 50(gl_SubGroupLtMaskARB) |
| 52: 6(int) CompositeExtract 51 0 |
| 53: 6(int) CompositeExtract 51 1 |
| 54: 26(ivec2) CompositeConstruct 52 53 |
| 55: 17(int64_t) Bitcast 54 |
| 56: 17(int64_t) IAdd 49 55 |
| Store 19(relMask) 56 |
| 57: 17(int64_t) Load 19(relMask) |
| 60: 20(ivec4) SubgroupBallotKHR 59 |
| 61: 6(int) CompositeExtract 60 0 |
| 62: 6(int) CompositeExtract 60 1 |
| 63: 26(ivec2) CompositeConstruct 61 62 |
| 64: 17(int64_t) Bitcast 63 |
| 65: 58(bool) IEqual 57 64 |
| SelectionMerge 67 None |
| BranchConditional 65 66 236 |
| 66: Label |
| 76: 6(int) Load 8(invocation) |
| 80: 79(ptr) AccessChain 75(data) 77 77 78 |
| 81: 68(float) Load 80 |
| 82: 6(int) Load 8(invocation) |
| 83: 68(float) SubgroupReadInvocationKHR 81 82 |
| 84: 79(ptr) AccessChain 75(data) 76 77 78 |
| Store 84 83 |
| 85: 6(int) Load 8(invocation) |
| 89: 88(ptr) AccessChain 75(data) 86 77 |
| 90: 69(fvec4) Load 89 |
| 91: 87(fvec2) VectorShuffle 90 90 0 1 |
| 92: 6(int) Load 8(invocation) |
| 93: 68(float) CompositeExtract 91 0 |
| 94: 68(float) SubgroupReadInvocationKHR 93 92 |
| 95: 68(float) CompositeExtract 91 1 |
| 96: 68(float) SubgroupReadInvocationKHR 95 92 |
| 97: 87(fvec2) CompositeConstruct 94 96 |
| 98: 88(ptr) AccessChain 75(data) 85 77 |
| 99: 69(fvec4) Load 98 |
| 100: 69(fvec4) VectorShuffle 99 97 4 5 2 3 |
| Store 98 100 |
| 101: 6(int) Load 8(invocation) |
| 104: 88(ptr) AccessChain 75(data) 102 77 |
| 105: 69(fvec4) Load 104 |
| 106: 103(fvec3) VectorShuffle 105 105 0 1 2 |
| 107: 6(int) Load 8(invocation) |
| 108: 68(float) CompositeExtract 106 0 |
| 109: 68(float) SubgroupReadInvocationKHR 108 107 |
| 110: 68(float) CompositeExtract 106 1 |
| 111: 68(float) SubgroupReadInvocationKHR 110 107 |
| 112: 68(float) CompositeExtract 106 2 |
| 113: 68(float) SubgroupReadInvocationKHR 112 107 |
| 114: 103(fvec3) CompositeConstruct 109 111 113 |
| 115: 88(ptr) AccessChain 75(data) 101 77 |
| 116: 69(fvec4) Load 115 |
| 117: 69(fvec4) VectorShuffle 116 114 4 5 6 3 |
| Store 115 117 |
| 118: 6(int) Load 8(invocation) |
| 120: 88(ptr) AccessChain 75(data) 119 77 |
| 121: 69(fvec4) Load 120 |
| 122: 6(int) Load 8(invocation) |
| 123: 68(float) CompositeExtract 121 0 |
| 124: 68(float) SubgroupReadInvocationKHR 123 122 |
| 125: 68(float) CompositeExtract 121 1 |
| 126: 68(float) SubgroupReadInvocationKHR 125 122 |
| 127: 68(float) CompositeExtract 121 2 |
| 128: 68(float) SubgroupReadInvocationKHR 127 122 |
| 129: 68(float) CompositeExtract 121 3 |
| 130: 68(float) SubgroupReadInvocationKHR 129 122 |
| 131: 69(fvec4) CompositeConstruct 124 126 128 130 |
| 132: 88(ptr) AccessChain 75(data) 118 77 |
| Store 132 131 |
| 133: 6(int) Load 8(invocation) |
| 135: 134(ptr) AccessChain 75(data) 77 86 78 |
| 136: 70(int) Load 135 |
| 137: 6(int) Load 8(invocation) |
| 138: 70(int) SubgroupReadInvocationKHR 136 137 |
| 139: 134(ptr) AccessChain 75(data) 133 86 78 |
| Store 139 138 |
| 140: 6(int) Load 8(invocation) |
| 143: 142(ptr) AccessChain 75(data) 86 86 |
| 144: 71(ivec4) Load 143 |
| 145: 141(ivec2) VectorShuffle 144 144 0 1 |
| 146: 6(int) Load 8(invocation) |
| 147: 70(int) CompositeExtract 145 0 |
| 148: 70(int) SubgroupReadInvocationKHR 147 146 |
| 149: 70(int) CompositeExtract 145 1 |
| 150: 70(int) SubgroupReadInvocationKHR 149 146 |
| 151: 141(ivec2) CompositeConstruct 148 150 |
| 152: 142(ptr) AccessChain 75(data) 140 86 |
| 153: 71(ivec4) Load 152 |
| 154: 71(ivec4) VectorShuffle 153 151 4 5 2 3 |
| Store 152 154 |
| 155: 6(int) Load 8(invocation) |
| 157: 142(ptr) AccessChain 75(data) 102 86 |
| 158: 71(ivec4) Load 157 |
| 159: 156(ivec3) VectorShuffle 158 158 0 1 2 |
| 160: 6(int) Load 8(invocation) |
| 161: 70(int) CompositeExtract 159 0 |
| 162: 70(int) SubgroupReadInvocationKHR 161 160 |
| 163: 70(int) CompositeExtract 159 1 |
| 164: 70(int) SubgroupReadInvocationKHR 163 160 |
| 165: 70(int) CompositeExtract 159 2 |
| 166: 70(int) SubgroupReadInvocationKHR 165 160 |
| 167: 156(ivec3) CompositeConstruct 162 164 166 |
| 168: 142(ptr) AccessChain 75(data) 155 86 |
| 169: 71(ivec4) Load 168 |
| 170: 71(ivec4) VectorShuffle 169 167 4 5 6 3 |
| Store 168 170 |
| 171: 6(int) Load 8(invocation) |
| 172: 142(ptr) AccessChain 75(data) 119 86 |
| 173: 71(ivec4) Load 172 |
| 174: 6(int) Load 8(invocation) |
| 175: 70(int) CompositeExtract 173 0 |
| 176: 70(int) SubgroupReadInvocationKHR 175 174 |
| 177: 70(int) CompositeExtract 173 1 |
| 178: 70(int) SubgroupReadInvocationKHR 177 174 |
| 179: 70(int) CompositeExtract 173 2 |
| 180: 70(int) SubgroupReadInvocationKHR 179 174 |
| 181: 70(int) CompositeExtract 173 3 |
| 182: 70(int) SubgroupReadInvocationKHR 181 174 |
| 183: 71(ivec4) CompositeConstruct 176 178 180 182 |
| 184: 142(ptr) AccessChain 75(data) 171 86 |
| Store 184 183 |
| 185: 6(int) Load 8(invocation) |
| 187: 186(ptr) AccessChain 75(data) 77 102 78 |
| 188: 6(int) Load 187 |
| 189: 6(int) Load 8(invocation) |
| 190: 6(int) SubgroupReadInvocationKHR 188 189 |
| 191: 186(ptr) AccessChain 75(data) 185 102 78 |
| Store 191 190 |
| 192: 6(int) Load 8(invocation) |
| 194: 193(ptr) AccessChain 75(data) 86 102 |
| 195: 20(ivec4) Load 194 |
| 196: 26(ivec2) VectorShuffle 195 195 0 1 |
| 197: 6(int) Load 8(invocation) |
| 198: 6(int) CompositeExtract 196 0 |
| 199: 6(int) SubgroupReadInvocationKHR 198 197 |
| 200: 6(int) CompositeExtract 196 1 |
| 201: 6(int) SubgroupReadInvocationKHR 200 197 |
| 202: 26(ivec2) CompositeConstruct 199 201 |
| 203: 193(ptr) AccessChain 75(data) 192 102 |
| 204: 20(ivec4) Load 203 |
| 205: 20(ivec4) VectorShuffle 204 202 4 5 2 3 |
| Store 203 205 |
| 206: 6(int) Load 8(invocation) |
| 208: 193(ptr) AccessChain 75(data) 102 102 |
| 209: 20(ivec4) Load 208 |
| 210: 207(ivec3) VectorShuffle 209 209 0 1 2 |
| 211: 6(int) Load 8(invocation) |
| 212: 6(int) CompositeExtract 210 0 |
| 213: 6(int) SubgroupReadInvocationKHR 212 211 |
| 214: 6(int) CompositeExtract 210 1 |
| 215: 6(int) SubgroupReadInvocationKHR 214 211 |
| 216: 6(int) CompositeExtract 210 2 |
| 217: 6(int) SubgroupReadInvocationKHR 216 211 |
| 218: 207(ivec3) CompositeConstruct 213 215 217 |
| 219: 193(ptr) AccessChain 75(data) 206 102 |
| 220: 20(ivec4) Load 219 |
| 221: 20(ivec4) VectorShuffle 220 218 4 5 6 3 |
| Store 219 221 |
| 222: 6(int) Load 8(invocation) |
| 223: 193(ptr) AccessChain 75(data) 119 102 |
| 224: 20(ivec4) Load 223 |
| 225: 6(int) Load 8(invocation) |
| 226: 6(int) CompositeExtract 224 0 |
| 227: 6(int) SubgroupReadInvocationKHR 226 225 |
| 228: 6(int) CompositeExtract 224 1 |
| 229: 6(int) SubgroupReadInvocationKHR 228 225 |
| 230: 6(int) CompositeExtract 224 2 |
| 231: 6(int) SubgroupReadInvocationKHR 230 225 |
| 232: 6(int) CompositeExtract 224 3 |
| 233: 6(int) SubgroupReadInvocationKHR 232 225 |
| 234: 20(ivec4) CompositeConstruct 227 229 231 233 |
| 235: 193(ptr) AccessChain 75(data) 222 102 |
| Store 235 234 |
| Branch 67 |
| 236: Label |
| 237: 6(int) Load 8(invocation) |
| 238: 79(ptr) AccessChain 75(data) 77 77 78 |
| 239: 68(float) Load 238 |
| 240: 68(float) SubgroupFirstInvocationKHR 239 |
| 241: 79(ptr) AccessChain 75(data) 237 77 78 |
| Store 241 240 |
| 242: 6(int) Load 8(invocation) |
| 243: 88(ptr) AccessChain 75(data) 86 77 |
| 244: 69(fvec4) Load 243 |
| 245: 87(fvec2) VectorShuffle 244 244 0 1 |
| 246: 87(fvec2) SubgroupFirstInvocationKHR 245 |
| 247: 88(ptr) AccessChain 75(data) 242 77 |
| 248: 69(fvec4) Load 247 |
| 249: 69(fvec4) VectorShuffle 248 246 4 5 2 3 |
| Store 247 249 |
| 250: 6(int) Load 8(invocation) |
| 251: 88(ptr) AccessChain 75(data) 102 77 |
| 252: 69(fvec4) Load 251 |
| 253: 103(fvec3) VectorShuffle 252 252 0 1 2 |
| 254: 103(fvec3) SubgroupFirstInvocationKHR 253 |
| 255: 88(ptr) AccessChain 75(data) 250 77 |
| 256: 69(fvec4) Load 255 |
| 257: 69(fvec4) VectorShuffle 256 254 4 5 6 3 |
| Store 255 257 |
| 258: 6(int) Load 8(invocation) |
| 259: 88(ptr) AccessChain 75(data) 119 77 |
| 260: 69(fvec4) Load 259 |
| 261: 69(fvec4) SubgroupFirstInvocationKHR 260 |
| 262: 88(ptr) AccessChain 75(data) 258 77 |
| Store 262 261 |
| 263: 6(int) Load 8(invocation) |
| 264: 134(ptr) AccessChain 75(data) 77 86 78 |
| 265: 70(int) Load 264 |
| 266: 70(int) SubgroupFirstInvocationKHR 265 |
| 267: 134(ptr) AccessChain 75(data) 263 86 78 |
| Store 267 266 |
| 268: 6(int) Load 8(invocation) |
| 269: 142(ptr) AccessChain 75(data) 86 86 |
| 270: 71(ivec4) Load 269 |
| 271: 141(ivec2) VectorShuffle 270 270 0 1 |
| 272: 141(ivec2) SubgroupFirstInvocationKHR 271 |
| 273: 142(ptr) AccessChain 75(data) 268 86 |
| 274: 71(ivec4) Load 273 |
| 275: 71(ivec4) VectorShuffle 274 272 4 5 2 3 |
| Store 273 275 |
| 276: 6(int) Load 8(invocation) |
| 277: 142(ptr) AccessChain 75(data) 102 86 |
| 278: 71(ivec4) Load 277 |
| 279: 156(ivec3) VectorShuffle 278 278 0 1 2 |
| 280: 156(ivec3) SubgroupFirstInvocationKHR 279 |
| 281: 142(ptr) AccessChain 75(data) 276 86 |
| 282: 71(ivec4) Load 281 |
| 283: 71(ivec4) VectorShuffle 282 280 4 5 6 3 |
| Store 281 283 |
| 284: 6(int) Load 8(invocation) |
| 285: 142(ptr) AccessChain 75(data) 119 86 |
| 286: 71(ivec4) Load 285 |
| 287: 71(ivec4) SubgroupFirstInvocationKHR 286 |
| 288: 142(ptr) AccessChain 75(data) 284 86 |
| Store 288 287 |
| 289: 6(int) Load 8(invocation) |
| 290: 186(ptr) AccessChain 75(data) 77 102 78 |
| 291: 6(int) Load 290 |
| 292: 6(int) SubgroupFirstInvocationKHR 291 |
| 293: 186(ptr) AccessChain 75(data) 289 102 78 |
| Store 293 292 |
| 294: 6(int) Load 8(invocation) |
| 295: 193(ptr) AccessChain 75(data) 86 102 |
| 296: 20(ivec4) Load 295 |
| 297: 26(ivec2) VectorShuffle 296 296 0 1 |
| 298: 26(ivec2) SubgroupFirstInvocationKHR 297 |
| 299: 193(ptr) AccessChain 75(data) 294 102 |
| 300: 20(ivec4) Load 299 |
| 301: 20(ivec4) VectorShuffle 300 298 4 5 2 3 |
| Store 299 301 |
| 302: 6(int) Load 8(invocation) |
| 303: 193(ptr) AccessChain 75(data) 102 102 |
| 304: 20(ivec4) Load 303 |
| 305: 207(ivec3) VectorShuffle 304 304 0 1 2 |
| 306: 207(ivec3) SubgroupFirstInvocationKHR 305 |
| 307: 193(ptr) AccessChain 75(data) 302 102 |
| 308: 20(ivec4) Load 307 |
| 309: 20(ivec4) VectorShuffle 308 306 4 5 6 3 |
| Store 307 309 |
| 310: 6(int) Load 8(invocation) |
| 311: 193(ptr) AccessChain 75(data) 119 102 |
| 312: 20(ivec4) Load 311 |
| 313: 20(ivec4) SubgroupFirstInvocationKHR 312 |
| 314: 193(ptr) AccessChain 75(data) 310 102 |
| Store 314 313 |
| Branch 67 |
| 67: Label |
| Return |
| FunctionEnd |