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