| 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 |