spv.shaderBallot.comp // Module Version 10000 // Generated by (magic number): 8000b // Id's are bound by 397 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 396 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) 100: 6(int) Constant 1 104: 70(int) Constant 2 105: TypeVector 68(float) 3 121: 6(int) Constant 2 125: 70(int) Constant 3 140: TypePointer Uniform 70(int) 147: TypeVector 70(int) 2 148: TypePointer Uniform 71(ivec4) 163: TypeVector 70(int) 3 196: TypePointer Uniform 6(int) 203: TypePointer Uniform 20(ivec4) 218: TypeVector 6(int) 3 395: 6(int) Constant 8 396: 218(ivec3) ConstantComposite 395 395 100 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 250 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: 79(ptr) AccessChain 75(data) 85 77 78 99: 68(float) CompositeExtract 97 0 Store 98 99 101: 79(ptr) AccessChain 75(data) 85 77 100 102: 68(float) CompositeExtract 97 1 Store 101 102 103: 6(int) Load 8(invocation) 106: 88(ptr) AccessChain 75(data) 104 77 107: 69(fvec4) Load 106 108: 105(fvec3) VectorShuffle 107 107 0 1 2 109: 6(int) Load 8(invocation) 110: 68(float) CompositeExtract 108 0 111: 68(float) SubgroupReadInvocationKHR 110 109 112: 68(float) CompositeExtract 108 1 113: 68(float) SubgroupReadInvocationKHR 112 109 114: 68(float) CompositeExtract 108 2 115: 68(float) SubgroupReadInvocationKHR 114 109 116: 105(fvec3) CompositeConstruct 111 113 115 117: 79(ptr) AccessChain 75(data) 103 77 78 118: 68(float) CompositeExtract 116 0 Store 117 118 119: 79(ptr) AccessChain 75(data) 103 77 100 120: 68(float) CompositeExtract 116 1 Store 119 120 122: 79(ptr) AccessChain 75(data) 103 77 121 123: 68(float) CompositeExtract 116 2 Store 122 123 124: 6(int) Load 8(invocation) 126: 88(ptr) AccessChain 75(data) 125 77 127: 69(fvec4) Load 126 128: 6(int) Load 8(invocation) 129: 68(float) CompositeExtract 127 0 130: 68(float) SubgroupReadInvocationKHR 129 128 131: 68(float) CompositeExtract 127 1 132: 68(float) SubgroupReadInvocationKHR 131 128 133: 68(float) CompositeExtract 127 2 134: 68(float) SubgroupReadInvocationKHR 133 128 135: 68(float) CompositeExtract 127 3 136: 68(float) SubgroupReadInvocationKHR 135 128 137: 69(fvec4) CompositeConstruct 130 132 134 136 138: 88(ptr) AccessChain 75(data) 124 77 Store 138 137 139: 6(int) Load 8(invocation) 141: 140(ptr) AccessChain 75(data) 77 86 78 142: 70(int) Load 141 143: 6(int) Load 8(invocation) 144: 70(int) SubgroupReadInvocationKHR 142 143 145: 140(ptr) AccessChain 75(data) 139 86 78 Store 145 144 146: 6(int) Load 8(invocation) 149: 148(ptr) AccessChain 75(data) 86 86 150: 71(ivec4) Load 149 151: 147(ivec2) VectorShuffle 150 150 0 1 152: 6(int) Load 8(invocation) 153: 70(int) CompositeExtract 151 0 154: 70(int) SubgroupReadInvocationKHR 153 152 155: 70(int) CompositeExtract 151 1 156: 70(int) SubgroupReadInvocationKHR 155 152 157: 147(ivec2) CompositeConstruct 154 156 158: 140(ptr) AccessChain 75(data) 146 86 78 159: 70(int) CompositeExtract 157 0 Store 158 159 160: 140(ptr) AccessChain 75(data) 146 86 100 161: 70(int) CompositeExtract 157 1 Store 160 161 162: 6(int) Load 8(invocation) 164: 148(ptr) AccessChain 75(data) 104 86 165: 71(ivec4) Load 164 166: 163(ivec3) VectorShuffle 165 165 0 1 2 167: 6(int) Load 8(invocation) 168: 70(int) CompositeExtract 166 0 169: 70(int) SubgroupReadInvocationKHR 168 167 170: 70(int) CompositeExtract 166 1 171: 70(int) SubgroupReadInvocationKHR 170 167 172: 70(int) CompositeExtract 166 2 173: 70(int) SubgroupReadInvocationKHR 172 167 174: 163(ivec3) CompositeConstruct 169 171 173 175: 140(ptr) AccessChain 75(data) 162 86 78 176: 70(int) CompositeExtract 174 0 Store 175 176 177: 140(ptr) AccessChain 75(data) 162 86 100 178: 70(int) CompositeExtract 174 1 Store 177 178 179: 140(ptr) AccessChain 75(data) 162 86 121 180: 70(int) CompositeExtract 174 2 Store 179 180 181: 6(int) Load 8(invocation) 182: 148(ptr) AccessChain 75(data) 125 86 183: 71(ivec4) Load 182 184: 6(int) Load 8(invocation) 185: 70(int) CompositeExtract 183 0 186: 70(int) SubgroupReadInvocationKHR 185 184 187: 70(int) CompositeExtract 183 1 188: 70(int) SubgroupReadInvocationKHR 187 184 189: 70(int) CompositeExtract 183 2 190: 70(int) SubgroupReadInvocationKHR 189 184 191: 70(int) CompositeExtract 183 3 192: 70(int) SubgroupReadInvocationKHR 191 184 193: 71(ivec4) CompositeConstruct 186 188 190 192 194: 148(ptr) AccessChain 75(data) 181 86 Store 194 193 195: 6(int) Load 8(invocation) 197: 196(ptr) AccessChain 75(data) 77 104 78 198: 6(int) Load 197 199: 6(int) Load 8(invocation) 200: 6(int) SubgroupReadInvocationKHR 198 199 201: 196(ptr) AccessChain 75(data) 195 104 78 Store 201 200 202: 6(int) Load 8(invocation) 204: 203(ptr) AccessChain 75(data) 86 104 205: 20(ivec4) Load 204 206: 26(ivec2) VectorShuffle 205 205 0 1 207: 6(int) Load 8(invocation) 208: 6(int) CompositeExtract 206 0 209: 6(int) SubgroupReadInvocationKHR 208 207 210: 6(int) CompositeExtract 206 1 211: 6(int) SubgroupReadInvocationKHR 210 207 212: 26(ivec2) CompositeConstruct 209 211 213: 196(ptr) AccessChain 75(data) 202 104 78 214: 6(int) CompositeExtract 212 0 Store 213 214 215: 196(ptr) AccessChain 75(data) 202 104 100 216: 6(int) CompositeExtract 212 1 Store 215 216 217: 6(int) Load 8(invocation) 219: 203(ptr) AccessChain 75(data) 104 104 220: 20(ivec4) Load 219 221: 218(ivec3) VectorShuffle 220 220 0 1 2 222: 6(int) Load 8(invocation) 223: 6(int) CompositeExtract 221 0 224: 6(int) SubgroupReadInvocationKHR 223 222 225: 6(int) CompositeExtract 221 1 226: 6(int) SubgroupReadInvocationKHR 225 222 227: 6(int) CompositeExtract 221 2 228: 6(int) SubgroupReadInvocationKHR 227 222 229: 218(ivec3) CompositeConstruct 224 226 228 230: 196(ptr) AccessChain 75(data) 217 104 78 231: 6(int) CompositeExtract 229 0 Store 230 231 232: 196(ptr) AccessChain 75(data) 217 104 100 233: 6(int) CompositeExtract 229 1 Store 232 233 234: 196(ptr) AccessChain 75(data) 217 104 121 235: 6(int) CompositeExtract 229 2 Store 234 235 236: 6(int) Load 8(invocation) 237: 203(ptr) AccessChain 75(data) 125 104 238: 20(ivec4) Load 237 239: 6(int) Load 8(invocation) 240: 6(int) CompositeExtract 238 0 241: 6(int) SubgroupReadInvocationKHR 240 239 242: 6(int) CompositeExtract 238 1 243: 6(int) SubgroupReadInvocationKHR 242 239 244: 6(int) CompositeExtract 238 2 245: 6(int) SubgroupReadInvocationKHR 244 239 246: 6(int) CompositeExtract 238 3 247: 6(int) SubgroupReadInvocationKHR 246 239 248: 20(ivec4) CompositeConstruct 241 243 245 247 249: 203(ptr) AccessChain 75(data) 236 104 Store 249 248 Branch 67 250: Label 251: 6(int) Load 8(invocation) 252: 79(ptr) AccessChain 75(data) 77 77 78 253: 68(float) Load 252 254: 68(float) SubgroupFirstInvocationKHR 253 255: 79(ptr) AccessChain 75(data) 251 77 78 Store 255 254 256: 6(int) Load 8(invocation) 257: 88(ptr) AccessChain 75(data) 86 77 258: 69(fvec4) Load 257 259: 87(fvec2) VectorShuffle 258 258 0 1 260: 68(float) CompositeExtract 259 0 261: 68(float) SubgroupFirstInvocationKHR 260 262: 68(float) CompositeExtract 259 1 263: 68(float) SubgroupFirstInvocationKHR 262 264: 87(fvec2) CompositeConstruct 261 263 265: 79(ptr) AccessChain 75(data) 256 77 78 266: 68(float) CompositeExtract 264 0 Store 265 266 267: 79(ptr) AccessChain 75(data) 256 77 100 268: 68(float) CompositeExtract 264 1 Store 267 268 269: 6(int) Load 8(invocation) 270: 88(ptr) AccessChain 75(data) 104 77 271: 69(fvec4) Load 270 272: 105(fvec3) VectorShuffle 271 271 0 1 2 273: 68(float) CompositeExtract 272 0 274: 68(float) SubgroupFirstInvocationKHR 273 275: 68(float) CompositeExtract 272 1 276: 68(float) SubgroupFirstInvocationKHR 275 277: 68(float) CompositeExtract 272 2 278: 68(float) SubgroupFirstInvocationKHR 277 279: 105(fvec3) CompositeConstruct 274 276 278 280: 79(ptr) AccessChain 75(data) 269 77 78 281: 68(float) CompositeExtract 279 0 Store 280 281 282: 79(ptr) AccessChain 75(data) 269 77 100 283: 68(float) CompositeExtract 279 1 Store 282 283 284: 79(ptr) AccessChain 75(data) 269 77 121 285: 68(float) CompositeExtract 279 2 Store 284 285 286: 6(int) Load 8(invocation) 287: 88(ptr) AccessChain 75(data) 125 77 288: 69(fvec4) Load 287 289: 68(float) CompositeExtract 288 0 290: 68(float) SubgroupFirstInvocationKHR 289 291: 68(float) CompositeExtract 288 1 292: 68(float) SubgroupFirstInvocationKHR 291 293: 68(float) CompositeExtract 288 2 294: 68(float) SubgroupFirstInvocationKHR 293 295: 68(float) CompositeExtract 288 3 296: 68(float) SubgroupFirstInvocationKHR 295 297: 69(fvec4) CompositeConstruct 290 292 294 296 298: 88(ptr) AccessChain 75(data) 286 77 Store 298 297 299: 6(int) Load 8(invocation) 300: 140(ptr) AccessChain 75(data) 77 86 78 301: 70(int) Load 300 302: 70(int) SubgroupFirstInvocationKHR 301 303: 140(ptr) AccessChain 75(data) 299 86 78 Store 303 302 304: 6(int) Load 8(invocation) 305: 148(ptr) AccessChain 75(data) 86 86 306: 71(ivec4) Load 305 307: 147(ivec2) VectorShuffle 306 306 0 1 308: 70(int) CompositeExtract 307 0 309: 70(int) SubgroupFirstInvocationKHR 308 310: 70(int) CompositeExtract 307 1 311: 70(int) SubgroupFirstInvocationKHR 310 312: 147(ivec2) CompositeConstruct 309 311 313: 140(ptr) AccessChain 75(data) 304 86 78 314: 70(int) CompositeExtract 312 0 Store 313 314 315: 140(ptr) AccessChain 75(data) 304 86 100 316: 70(int) CompositeExtract 312 1 Store 315 316 317: 6(int) Load 8(invocation) 318: 148(ptr) AccessChain 75(data) 104 86 319: 71(ivec4) Load 318 320: 163(ivec3) VectorShuffle 319 319 0 1 2 321: 70(int) CompositeExtract 320 0 322: 70(int) SubgroupFirstInvocationKHR 321 323: 70(int) CompositeExtract 320 1 324: 70(int) SubgroupFirstInvocationKHR 323 325: 70(int) CompositeExtract 320 2 326: 70(int) SubgroupFirstInvocationKHR 325 327: 163(ivec3) CompositeConstruct 322 324 326 328: 140(ptr) AccessChain 75(data) 317 86 78 329: 70(int) CompositeExtract 327 0 Store 328 329 330: 140(ptr) AccessChain 75(data) 317 86 100 331: 70(int) CompositeExtract 327 1 Store 330 331 332: 140(ptr) AccessChain 75(data) 317 86 121 333: 70(int) CompositeExtract 327 2 Store 332 333 334: 6(int) Load 8(invocation) 335: 148(ptr) AccessChain 75(data) 125 86 336: 71(ivec4) Load 335 337: 70(int) CompositeExtract 336 0 338: 70(int) SubgroupFirstInvocationKHR 337 339: 70(int) CompositeExtract 336 1 340: 70(int) SubgroupFirstInvocationKHR 339 341: 70(int) CompositeExtract 336 2 342: 70(int) SubgroupFirstInvocationKHR 341 343: 70(int) CompositeExtract 336 3 344: 70(int) SubgroupFirstInvocationKHR 343 345: 71(ivec4) CompositeConstruct 338 340 342 344 346: 148(ptr) AccessChain 75(data) 334 86 Store 346 345 347: 6(int) Load 8(invocation) 348: 196(ptr) AccessChain 75(data) 77 104 78 349: 6(int) Load 348 350: 6(int) SubgroupFirstInvocationKHR 349 351: 196(ptr) AccessChain 75(data) 347 104 78 Store 351 350 352: 6(int) Load 8(invocation) 353: 203(ptr) AccessChain 75(data) 86 104 354: 20(ivec4) Load 353 355: 26(ivec2) VectorShuffle 354 354 0 1 356: 6(int) CompositeExtract 355 0 357: 6(int) SubgroupFirstInvocationKHR 356 358: 6(int) CompositeExtract 355 1 359: 6(int) SubgroupFirstInvocationKHR 358 360: 26(ivec2) CompositeConstruct 357 359 361: 196(ptr) AccessChain 75(data) 352 104 78 362: 6(int) CompositeExtract 360 0 Store 361 362 363: 196(ptr) AccessChain 75(data) 352 104 100 364: 6(int) CompositeExtract 360 1 Store 363 364 365: 6(int) Load 8(invocation) 366: 203(ptr) AccessChain 75(data) 104 104 367: 20(ivec4) Load 366 368: 218(ivec3) VectorShuffle 367 367 0 1 2 369: 6(int) CompositeExtract 368 0 370: 6(int) SubgroupFirstInvocationKHR 369 371: 6(int) CompositeExtract 368 1 372: 6(int) SubgroupFirstInvocationKHR 371 373: 6(int) CompositeExtract 368 2 374: 6(int) SubgroupFirstInvocationKHR 373 375: 218(ivec3) CompositeConstruct 370 372 374 376: 196(ptr) AccessChain 75(data) 365 104 78 377: 6(int) CompositeExtract 375 0 Store 376 377 378: 196(ptr) AccessChain 75(data) 365 104 100 379: 6(int) CompositeExtract 375 1 Store 378 379 380: 196(ptr) AccessChain 75(data) 365 104 121 381: 6(int) CompositeExtract 375 2 Store 380 381 382: 6(int) Load 8(invocation) 383: 203(ptr) AccessChain 75(data) 125 104 384: 20(ivec4) Load 383 385: 6(int) CompositeExtract 384 0 386: 6(int) SubgroupFirstInvocationKHR 385 387: 6(int) CompositeExtract 384 1 388: 6(int) SubgroupFirstInvocationKHR 387 389: 6(int) CompositeExtract 384 2 390: 6(int) SubgroupFirstInvocationKHR 389 391: 6(int) CompositeExtract 384 3 392: 6(int) SubgroupFirstInvocationKHR 391 393: 20(ivec4) CompositeConstruct 386 388 390 392 394: 203(ptr) AccessChain 75(data) 382 104 Store 394 393 Branch 67 67: Label Return FunctionEnd