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