spv.shaderBallot.comp // Module Version 10000 // Generated by (magic number): 8000a // Id's are bound by 343 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 342 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 341: 6(int) Constant 8 342: 218(ivec3) ConstantComposite 341 341 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: 87(fvec2) SubgroupFirstInvocationKHR 259 261: 79(ptr) AccessChain 75(data) 256 77 78 262: 68(float) CompositeExtract 260 0 Store 261 262 263: 79(ptr) AccessChain 75(data) 256 77 100 264: 68(float) CompositeExtract 260 1 Store 263 264 265: 6(int) Load 8(invocation) 266: 88(ptr) AccessChain 75(data) 104 77 267: 69(fvec4) Load 266 268: 105(fvec3) VectorShuffle 267 267 0 1 2 269: 105(fvec3) SubgroupFirstInvocationKHR 268 270: 79(ptr) AccessChain 75(data) 265 77 78 271: 68(float) CompositeExtract 269 0 Store 270 271 272: 79(ptr) AccessChain 75(data) 265 77 100 273: 68(float) CompositeExtract 269 1 Store 272 273 274: 79(ptr) AccessChain 75(data) 265 77 121 275: 68(float) CompositeExtract 269 2 Store 274 275 276: 6(int) Load 8(invocation) 277: 88(ptr) AccessChain 75(data) 125 77 278: 69(fvec4) Load 277 279: 69(fvec4) SubgroupFirstInvocationKHR 278 280: 88(ptr) AccessChain 75(data) 276 77 Store 280 279 281: 6(int) Load 8(invocation) 282: 140(ptr) AccessChain 75(data) 77 86 78 283: 70(int) Load 282 284: 70(int) SubgroupFirstInvocationKHR 283 285: 140(ptr) AccessChain 75(data) 281 86 78 Store 285 284 286: 6(int) Load 8(invocation) 287: 148(ptr) AccessChain 75(data) 86 86 288: 71(ivec4) Load 287 289: 147(ivec2) VectorShuffle 288 288 0 1 290: 147(ivec2) SubgroupFirstInvocationKHR 289 291: 140(ptr) AccessChain 75(data) 286 86 78 292: 70(int) CompositeExtract 290 0 Store 291 292 293: 140(ptr) AccessChain 75(data) 286 86 100 294: 70(int) CompositeExtract 290 1 Store 293 294 295: 6(int) Load 8(invocation) 296: 148(ptr) AccessChain 75(data) 104 86 297: 71(ivec4) Load 296 298: 163(ivec3) VectorShuffle 297 297 0 1 2 299: 163(ivec3) SubgroupFirstInvocationKHR 298 300: 140(ptr) AccessChain 75(data) 295 86 78 301: 70(int) CompositeExtract 299 0 Store 300 301 302: 140(ptr) AccessChain 75(data) 295 86 100 303: 70(int) CompositeExtract 299 1 Store 302 303 304: 140(ptr) AccessChain 75(data) 295 86 121 305: 70(int) CompositeExtract 299 2 Store 304 305 306: 6(int) Load 8(invocation) 307: 148(ptr) AccessChain 75(data) 125 86 308: 71(ivec4) Load 307 309: 71(ivec4) SubgroupFirstInvocationKHR 308 310: 148(ptr) AccessChain 75(data) 306 86 Store 310 309 311: 6(int) Load 8(invocation) 312: 196(ptr) AccessChain 75(data) 77 104 78 313: 6(int) Load 312 314: 6(int) SubgroupFirstInvocationKHR 313 315: 196(ptr) AccessChain 75(data) 311 104 78 Store 315 314 316: 6(int) Load 8(invocation) 317: 203(ptr) AccessChain 75(data) 86 104 318: 20(ivec4) Load 317 319: 26(ivec2) VectorShuffle 318 318 0 1 320: 26(ivec2) SubgroupFirstInvocationKHR 319 321: 196(ptr) AccessChain 75(data) 316 104 78 322: 6(int) CompositeExtract 320 0 Store 321 322 323: 196(ptr) AccessChain 75(data) 316 104 100 324: 6(int) CompositeExtract 320 1 Store 323 324 325: 6(int) Load 8(invocation) 326: 203(ptr) AccessChain 75(data) 104 104 327: 20(ivec4) Load 326 328: 218(ivec3) VectorShuffle 327 327 0 1 2 329: 218(ivec3) SubgroupFirstInvocationKHR 328 330: 196(ptr) AccessChain 75(data) 325 104 78 331: 6(int) CompositeExtract 329 0 Store 330 331 332: 196(ptr) AccessChain 75(data) 325 104 100 333: 6(int) CompositeExtract 329 1 Store 332 333 334: 196(ptr) AccessChain 75(data) 325 104 121 335: 6(int) CompositeExtract 329 2 Store 334 335 336: 6(int) Load 8(invocation) 337: 203(ptr) AccessChain 75(data) 125 104 338: 20(ivec4) Load 337 339: 20(ivec4) SubgroupFirstInvocationKHR 338 340: 203(ptr) AccessChain 75(data) 336 104 Store 340 339 Branch 67 67: Label Return FunctionEnd