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 245 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 244 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) 79: 50(int) Constant 2 80: TypeVector 48(float) 3 90: 50(int) Constant 3 97: TypePointer Uniform 50(int) 104: TypeVector 50(int) 2 105: TypePointer Uniform 51(ivec4) 115: TypeVector 50(int) 3 131: TypePointer Uniform 6(int) 138: TypePointer Uniform 38(ivec4) 148: TypeVector 6(int) 3 242: 6(int) Constant 8 243: 6(int) Constant 1 244: 148(ivec3) ConstantComposite 242 242 243 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 163 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: 68(fvec2) GroupBroadcast 63 72 73 75: 69(ptr) AccessChain 55(data) 66 57 76: 49(fvec4) Load 75 77: 49(fvec4) VectorShuffle 76 74 4 5 2 3 Store 75 77 78: 6(int) Load 8(invocation) 81: 69(ptr) AccessChain 55(data) 79 57 82: 49(fvec4) Load 81 83: 80(fvec3) VectorShuffle 82 82 0 1 2 84: 6(int) Load 8(invocation) 85: 80(fvec3) GroupBroadcast 63 83 84 86: 69(ptr) AccessChain 55(data) 78 57 87: 49(fvec4) Load 86 88: 49(fvec4) VectorShuffle 87 85 4 5 6 3 Store 86 88 89: 6(int) Load 8(invocation) 91: 69(ptr) AccessChain 55(data) 90 57 92: 49(fvec4) Load 91 93: 6(int) Load 8(invocation) 94: 49(fvec4) GroupBroadcast 63 92 93 95: 69(ptr) AccessChain 55(data) 89 57 Store 95 94 96: 6(int) Load 8(invocation) 98: 97(ptr) AccessChain 55(data) 57 67 58 99: 50(int) Load 98 100: 6(int) Load 8(invocation) 101: 50(int) GroupBroadcast 63 99 100 102: 97(ptr) AccessChain 55(data) 96 67 58 Store 102 101 103: 6(int) Load 8(invocation) 106: 105(ptr) AccessChain 55(data) 67 67 107: 51(ivec4) Load 106 108: 104(ivec2) VectorShuffle 107 107 0 1 109: 6(int) Load 8(invocation) 110: 104(ivec2) GroupBroadcast 63 108 109 111: 105(ptr) AccessChain 55(data) 103 67 112: 51(ivec4) Load 111 113: 51(ivec4) VectorShuffle 112 110 4 5 2 3 Store 111 113 114: 6(int) Load 8(invocation) 116: 105(ptr) AccessChain 55(data) 79 67 117: 51(ivec4) Load 116 118: 115(ivec3) VectorShuffle 117 117 0 1 2 119: 6(int) Load 8(invocation) 120: 115(ivec3) GroupBroadcast 63 118 119 121: 105(ptr) AccessChain 55(data) 114 67 122: 51(ivec4) Load 121 123: 51(ivec4) VectorShuffle 122 120 4 5 6 3 Store 121 123 124: 6(int) Load 8(invocation) 125: 105(ptr) AccessChain 55(data) 90 67 126: 51(ivec4) Load 125 127: 6(int) Load 8(invocation) 128: 51(ivec4) GroupBroadcast 63 126 127 129: 105(ptr) AccessChain 55(data) 124 67 Store 129 128 130: 6(int) Load 8(invocation) 132: 131(ptr) AccessChain 55(data) 57 79 58 133: 6(int) Load 132 134: 6(int) Load 8(invocation) 135: 6(int) GroupBroadcast 63 133 134 136: 131(ptr) AccessChain 55(data) 130 79 58 Store 136 135 137: 6(int) Load 8(invocation) 139: 138(ptr) AccessChain 55(data) 67 79 140: 38(ivec4) Load 139 141: 42(ivec2) VectorShuffle 140 140 0 1 142: 6(int) Load 8(invocation) 143: 42(ivec2) GroupBroadcast 63 141 142 144: 138(ptr) AccessChain 55(data) 137 79 145: 38(ivec4) Load 144 146: 38(ivec4) VectorShuffle 145 143 4 5 2 3 Store 144 146 147: 6(int) Load 8(invocation) 149: 138(ptr) AccessChain 55(data) 79 79 150: 38(ivec4) Load 149 151: 148(ivec3) VectorShuffle 150 150 0 1 2 152: 6(int) Load 8(invocation) 153: 148(ivec3) GroupBroadcast 63 151 152 154: 138(ptr) AccessChain 55(data) 147 79 155: 38(ivec4) Load 154 156: 38(ivec4) VectorShuffle 155 153 4 5 6 3 Store 154 156 157: 6(int) Load 8(invocation) 158: 138(ptr) AccessChain 55(data) 90 79 159: 38(ivec4) Load 158 160: 6(int) Load 8(invocation) 161: 38(ivec4) GroupBroadcast 63 159 160 162: 138(ptr) AccessChain 55(data) 157 79 Store 162 161 Branch 47 163: Label 164: 6(int) Load 8(invocation) 165: 59(ptr) AccessChain 55(data) 57 57 58 166: 48(float) Load 165 167: 48(float) SubgroupFirstInvocationKHR 166 168: 59(ptr) AccessChain 55(data) 164 57 58 Store 168 167 169: 6(int) Load 8(invocation) 170: 69(ptr) AccessChain 55(data) 67 57 171: 49(fvec4) Load 170 172: 68(fvec2) VectorShuffle 171 171 0 1 173: 68(fvec2) SubgroupFirstInvocationKHR 172 174: 69(ptr) AccessChain 55(data) 169 57 175: 49(fvec4) Load 174 176: 49(fvec4) VectorShuffle 175 173 4 5 2 3 Store 174 176 177: 6(int) Load 8(invocation) 178: 69(ptr) AccessChain 55(data) 79 57 179: 49(fvec4) Load 178 180: 80(fvec3) VectorShuffle 179 179 0 1 2 181: 80(fvec3) SubgroupFirstInvocationKHR 180 182: 69(ptr) AccessChain 55(data) 177 57 183: 49(fvec4) Load 182 184: 49(fvec4) VectorShuffle 183 181 4 5 6 3 Store 182 184 185: 6(int) Load 8(invocation) 186: 69(ptr) AccessChain 55(data) 90 57 187: 49(fvec4) Load 186 188: 49(fvec4) SubgroupFirstInvocationKHR 187 189: 69(ptr) AccessChain 55(data) 185 57 Store 189 188 190: 6(int) Load 8(invocation) 191: 97(ptr) AccessChain 55(data) 57 67 58 192: 50(int) Load 191 193: 50(int) SubgroupFirstInvocationKHR 192 194: 97(ptr) AccessChain 55(data) 190 67 58 Store 194 193 195: 6(int) Load 8(invocation) 196: 105(ptr) AccessChain 55(data) 67 67 197: 51(ivec4) Load 196 198: 104(ivec2) VectorShuffle 197 197 0 1 199: 104(ivec2) SubgroupFirstInvocationKHR 198 200: 105(ptr) AccessChain 55(data) 195 67 201: 51(ivec4) Load 200 202: 51(ivec4) VectorShuffle 201 199 4 5 2 3 Store 200 202 203: 6(int) Load 8(invocation) 204: 105(ptr) AccessChain 55(data) 79 67 205: 51(ivec4) Load 204 206: 115(ivec3) VectorShuffle 205 205 0 1 2 207: 115(ivec3) SubgroupFirstInvocationKHR 206 208: 105(ptr) AccessChain 55(data) 203 67 209: 51(ivec4) Load 208 210: 51(ivec4) VectorShuffle 209 207 4 5 6 3 Store 208 210 211: 6(int) Load 8(invocation) 212: 105(ptr) AccessChain 55(data) 90 67 213: 51(ivec4) Load 212 214: 51(ivec4) SubgroupFirstInvocationKHR 213 215: 105(ptr) AccessChain 55(data) 211 67 Store 215 214 216: 6(int) Load 8(invocation) 217: 131(ptr) AccessChain 55(data) 57 79 58 218: 6(int) Load 217 219: 6(int) SubgroupFirstInvocationKHR 218 220: 131(ptr) AccessChain 55(data) 216 79 58 Store 220 219 221: 6(int) Load 8(invocation) 222: 138(ptr) AccessChain 55(data) 67 79 223: 38(ivec4) Load 222 224: 42(ivec2) VectorShuffle 223 223 0 1 225: 42(ivec2) SubgroupFirstInvocationKHR 224 226: 138(ptr) AccessChain 55(data) 221 79 227: 38(ivec4) Load 226 228: 38(ivec4) VectorShuffle 227 225 4 5 2 3 Store 226 228 229: 6(int) Load 8(invocation) 230: 138(ptr) AccessChain 55(data) 79 79 231: 38(ivec4) Load 230 232: 148(ivec3) VectorShuffle 231 231 0 1 2 233: 148(ivec3) SubgroupFirstInvocationKHR 232 234: 138(ptr) AccessChain 55(data) 229 79 235: 38(ivec4) Load 234 236: 38(ivec4) VectorShuffle 235 233 4 5 6 3 Store 234 236 237: 6(int) Load 8(invocation) 238: 138(ptr) AccessChain 55(data) 90 79 239: 38(ivec4) Load 238 240: 38(ivec4) SubgroupFirstInvocationKHR 239 241: 138(ptr) AccessChain 55(data) 237 79 Store 241 240 Branch 47 47: Label Return FunctionEnd