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