| spv.460.subgroupEXT.task | |
| // Module Version 10400 | |
| // Generated by (magic number): 8000b | |
| // Id's are bound by 243 | |
| Capability StorageImageWriteWithoutFormat | |
| Capability GroupNonUniform | |
| Capability GroupNonUniformVote | |
| Capability GroupNonUniformArithmetic | |
| Capability GroupNonUniformBallot | |
| Capability GroupNonUniformShuffle | |
| Capability GroupNonUniformShuffleRelative | |
| Capability GroupNonUniformClustered | |
| Capability GroupNonUniformQuad | |
| Capability MeshShadingEXT | |
| Extension "SPV_EXT_mesh_shader" | |
| 1: ExtInstImport "GLSL.std.450" | |
| MemoryModel Logical GLSL450 | |
| EntryPoint TaskEXT 4 "main" 35 41 56 61 77 102 123 124 129 130 133 134 135 136 137 | |
| ExecutionMode 4 LocalSize 32 1 1 | |
| Source GLSL 460 | |
| SourceExtension "GL_EXT_mesh_shader" | |
| SourceExtension "GL_KHR_shader_subgroup_arithmetic" | |
| SourceExtension "GL_KHR_shader_subgroup_ballot" | |
| SourceExtension "GL_KHR_shader_subgroup_basic" | |
| SourceExtension "GL_KHR_shader_subgroup_clustered" | |
| SourceExtension "GL_KHR_shader_subgroup_quad" | |
| SourceExtension "GL_KHR_shader_subgroup_shuffle" | |
| SourceExtension "GL_KHR_shader_subgroup_shuffle_relative" | |
| SourceExtension "GL_KHR_shader_subgroup_vote" | |
| Name 4 "main" | |
| Name 6 "basic_works(" | |
| Name 13 "ballot_works(vf4;" | |
| Name 12 "f4" | |
| Name 16 "vote_works(vf4;" | |
| Name 15 "f4" | |
| Name 19 "shuffle_works(vf4;" | |
| Name 18 "f4" | |
| Name 22 "arith_works(vf4;" | |
| Name 21 "f4" | |
| Name 25 "clustered_works(vf4;" | |
| Name 24 "f4" | |
| Name 28 "quad_works(vf4;" | |
| Name 27 "f4" | |
| Name 32 "iid" | |
| Name 35 "gl_LocalInvocationID" | |
| Name 40 "gid" | |
| Name 41 "gl_WorkGroupID" | |
| Name 44 "i" | |
| Name 56 "mem" | |
| Name 59 "block0" | |
| MemberName 59(block0) 0 "uni_value" | |
| Name 61 "" | |
| Name 77 "uni_image" | |
| Name 100 "Task" | |
| MemberName 100(Task) 0 "dummy" | |
| MemberName 100(Task) 1 "submesh" | |
| Name 102 "mytask" | |
| Name 123 "gl_SubgroupSize" | |
| Name 124 "gl_SubgroupInvocationID" | |
| Name 129 "gl_NumSubgroups" | |
| Name 130 "gl_SubgroupID" | |
| Name 133 "gl_SubgroupEqMask" | |
| Name 134 "gl_SubgroupGeMask" | |
| Name 135 "gl_SubgroupGtMask" | |
| Name 136 "gl_SubgroupLeMask" | |
| Name 137 "gl_SubgroupLtMask" | |
| Name 143 "ballot" | |
| Name 181 "ballot" | |
| Name 216 "ballot" | |
| Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId | |
| Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId | |
| Decorate 59(block0) Block | |
| MemberDecorate 59(block0) 0 Offset 0 | |
| Decorate 61 Binding 1 | |
| Decorate 61 DescriptorSet 0 | |
| Decorate 77(uni_image) NonReadable | |
| Decorate 77(uni_image) Binding 0 | |
| Decorate 77(uni_image) DescriptorSet 0 | |
| Decorate 123(gl_SubgroupSize) RelaxedPrecision | |
| Decorate 123(gl_SubgroupSize) BuiltIn SubgroupSize | |
| Decorate 124(gl_SubgroupInvocationID) RelaxedPrecision | |
| Decorate 124(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId | |
| Decorate 129(gl_NumSubgroups) BuiltIn NumSubgroups | |
| Decorate 130(gl_SubgroupID) BuiltIn SubgroupId | |
| Decorate 133(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR | |
| Decorate 134(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR | |
| Decorate 135(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR | |
| Decorate 136(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR | |
| Decorate 137(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR | |
| Decorate 242 BuiltIn WorkgroupSize | |
| 2: TypeVoid | |
| 3: TypeFunction 2 | |
| 8: TypeFloat 32 | |
| 9: TypeVector 8(float) 4 | |
| 10: TypePointer Function 9(fvec4) | |
| 11: TypeFunction 2 10(ptr) | |
| 30: TypeInt 32 0 | |
| 31: TypePointer Function 30(int) | |
| 33: TypeVector 30(int) 3 | |
| 34: TypePointer Input 33(ivec3) | |
| 35(gl_LocalInvocationID): 34(ptr) Variable Input | |
| 36: 30(int) Constant 0 | |
| 37: TypePointer Input 30(int) | |
| 41(gl_WorkGroupID): 34(ptr) Variable Input | |
| 51: 30(int) Constant 10 | |
| 52: TypeBool | |
| 54: TypeArray 9(fvec4) 51 | |
| 55: TypePointer Workgroup 54 | |
| 56(mem): 55(ptr) Variable Workgroup | |
| 59(block0): TypeStruct 30(int) | |
| 60: TypePointer Uniform 59(block0) | |
| 61: 60(ptr) Variable Uniform | |
| 62: TypeInt 32 1 | |
| 63: 62(int) Constant 0 | |
| 64: TypePointer Uniform 30(int) | |
| 70: TypePointer Workgroup 9(fvec4) | |
| 73: 62(int) Constant 1 | |
| 75: TypeImage 8(float) 2D nonsampled format:Unknown | |
| 76: TypePointer UniformConstant 75 | |
| 77(uni_image): 76(ptr) Variable UniformConstant | |
| 81: TypeVector 62(int) 2 | |
| 91: 30(int) Constant 1 | |
| 95: 30(int) Constant 264 | |
| 96: 30(int) Constant 2 | |
| 97: TypeVector 8(float) 2 | |
| 98: 30(int) Constant 3 | |
| 99: TypeArray 97(fvec2) 98 | |
| 100(Task): TypeStruct 97(fvec2) 99 | |
| 101: TypePointer TaskPayloadWorkgroupEXT 100(Task) | |
| 102(mytask): 101(ptr) Variable TaskPayloadWorkgroupEXT | |
| 103: 8(float) Constant 1106247680 | |
| 104: 8(float) Constant 1106771968 | |
| 105: 97(fvec2) ConstantComposite 103 104 | |
| 106: TypePointer TaskPayloadWorkgroupEXT 97(fvec2) | |
| 108: 8(float) Constant 1107296256 | |
| 109: 8(float) Constant 1107558400 | |
| 110: 97(fvec2) ConstantComposite 108 109 | |
| 112: 8(float) Constant 1107820544 | |
| 113: 8(float) Constant 1108082688 | |
| 114: 97(fvec2) ConstantComposite 112 113 | |
| 116: 62(int) Constant 2 | |
| 123(gl_SubgroupSize): 37(ptr) Variable Input | |
| 124(gl_SubgroupInvocationID): 37(ptr) Variable Input | |
| 125: 30(int) Constant 3400 | |
| 126: 30(int) Constant 72 | |
| 127: 30(int) Constant 2056 | |
| 129(gl_NumSubgroups): 37(ptr) Variable Input | |
| 130(gl_SubgroupID): 37(ptr) Variable Input | |
| 131: TypeVector 30(int) 4 | |
| 132: TypePointer Input 131(ivec4) | |
| 133(gl_SubgroupEqMask): 132(ptr) Variable Input | |
| 134(gl_SubgroupGeMask): 132(ptr) Variable Input | |
| 135(gl_SubgroupGtMask): 132(ptr) Variable Input | |
| 136(gl_SubgroupLeMask): 132(ptr) Variable Input | |
| 137(gl_SubgroupLtMask): 132(ptr) Variable Input | |
| 142: TypePointer Function 131(ivec4) | |
| 144: 52(bool) ConstantFalse | |
| 146: 131(ivec4) ConstantComposite 91 91 91 91 | |
| 160: 52(bool) ConstantTrue | |
| 217: 30(int) Constant 85 | |
| 218: 131(ivec4) ConstantComposite 217 36 36 36 | |
| 241: 30(int) Constant 32 | |
| 242: 33(ivec3) ConstantComposite 241 91 91 | |
| 4(main): 2 Function None 3 | |
| 5: Label | |
| 32(iid): 31(ptr) Variable Function | |
| 40(gid): 31(ptr) Variable Function | |
| 44(i): 31(ptr) Variable Function | |
| 38: 37(ptr) AccessChain 35(gl_LocalInvocationID) 36 | |
| 39: 30(int) Load 38 | |
| Store 32(iid) 39 | |
| 42: 37(ptr) AccessChain 41(gl_WorkGroupID) 36 | |
| 43: 30(int) Load 42 | |
| Store 40(gid) 43 | |
| Store 44(i) 36 | |
| Branch 45 | |
| 45: Label | |
| LoopMerge 47 48 None | |
| Branch 49 | |
| 49: Label | |
| 50: 30(int) Load 44(i) | |
| 53: 52(bool) ULessThan 50 51 | |
| BranchConditional 53 46 47 | |
| 46: Label | |
| 57: 30(int) Load 44(i) | |
| 58: 30(int) Load 44(i) | |
| 65: 64(ptr) AccessChain 61 63 | |
| 66: 30(int) Load 65 | |
| 67: 30(int) IAdd 58 66 | |
| 68: 8(float) ConvertUToF 67 | |
| 69: 9(fvec4) CompositeConstruct 68 68 68 68 | |
| 71: 70(ptr) AccessChain 56(mem) 57 | |
| Store 71 69 | |
| Branch 48 | |
| 48: Label | |
| 72: 30(int) Load 44(i) | |
| 74: 30(int) IAdd 72 73 | |
| Store 44(i) 74 | |
| Branch 45 | |
| 47: Label | |
| 78: 75 Load 77(uni_image) | |
| 79: 30(int) Load 32(iid) | |
| 80: 62(int) Bitcast 79 | |
| 82: 81(ivec2) CompositeConstruct 80 80 | |
| 83: 30(int) Load 40(gid) | |
| 84: 70(ptr) AccessChain 56(mem) 83 | |
| 85: 9(fvec4) Load 84 | |
| ImageWrite 78 82 85 | |
| 86: 75 Load 77(uni_image) | |
| 87: 30(int) Load 32(iid) | |
| 88: 62(int) Bitcast 87 | |
| 89: 81(ivec2) CompositeConstruct 88 88 | |
| 90: 30(int) Load 40(gid) | |
| 92: 30(int) IAdd 90 91 | |
| 93: 70(ptr) AccessChain 56(mem) 92 | |
| 94: 9(fvec4) Load 93 | |
| ImageWrite 86 89 94 | |
| MemoryBarrier 91 95 | |
| ControlBarrier 96 96 95 | |
| 107: 106(ptr) AccessChain 102(mytask) 63 | |
| Store 107 105 | |
| 111: 106(ptr) AccessChain 102(mytask) 73 63 | |
| Store 111 110 | |
| 115: 106(ptr) AccessChain 102(mytask) 73 73 | |
| Store 115 114 | |
| 117: 30(int) Load 40(gid) | |
| 118: 30(int) UMod 117 96 | |
| 119: 106(ptr) AccessChain 102(mytask) 73 118 | |
| 120: 97(fvec2) Load 119 | |
| 121: 106(ptr) AccessChain 102(mytask) 73 116 | |
| Store 121 120 | |
| MemoryBarrier 91 95 | |
| ControlBarrier 96 96 95 | |
| EmitMeshTasksEXT 98 91 91 102(mytask) | |
| FunctionEnd | |
| 6(basic_works(): 2 Function None 3 | |
| 7: Label | |
| ControlBarrier 98 98 125 | |
| MemoryBarrier 98 125 | |
| MemoryBarrier 98 126 | |
| MemoryBarrier 98 127 | |
| 128: 52(bool) GroupNonUniformElect 98 | |
| MemoryBarrier 98 95 | |
| Return | |
| FunctionEnd | |
| 13(ballot_works(vf4;): 2 Function None 11 | |
| 12(f4): 10(ptr) FunctionParameter | |
| 14: Label | |
| 143(ballot): 142(ptr) Variable Function | |
| 138: 9(fvec4) Load 12(f4) | |
| 139: 9(fvec4) GroupNonUniformBroadcast 98 138 36 | |
| 140: 9(fvec4) Load 12(f4) | |
| 141: 9(fvec4) GroupNonUniformBroadcastFirst 98 140 | |
| 145: 131(ivec4) GroupNonUniformBallot 98 144 | |
| Store 143(ballot) 145 | |
| 147: 52(bool) GroupNonUniformInverseBallot 98 146 | |
| 148: 131(ivec4) Load 143(ballot) | |
| 149: 52(bool) GroupNonUniformBallotBitExtract 98 148 36 | |
| 150: 131(ivec4) Load 143(ballot) | |
| 151: 30(int) GroupNonUniformBallotBitCount 98 Reduce 150 | |
| 152: 131(ivec4) Load 143(ballot) | |
| 153: 30(int) GroupNonUniformBallotBitCount 98 InclusiveScan 152 | |
| 154: 131(ivec4) Load 143(ballot) | |
| 155: 30(int) GroupNonUniformBallotBitCount 98 ExclusiveScan 154 | |
| 156: 131(ivec4) Load 143(ballot) | |
| 157: 30(int) GroupNonUniformBallotFindLSB 98 156 | |
| 158: 131(ivec4) Load 143(ballot) | |
| 159: 30(int) GroupNonUniformBallotFindMSB 98 158 | |
| Return | |
| FunctionEnd | |
| 16(vote_works(vf4;): 2 Function None 11 | |
| 15(f4): 10(ptr) FunctionParameter | |
| 17: Label | |
| 161: 52(bool) GroupNonUniformAll 98 160 | |
| 162: 52(bool) GroupNonUniformAny 98 144 | |
| 163: 9(fvec4) Load 15(f4) | |
| 164: 52(bool) GroupNonUniformAllEqual 98 163 | |
| Return | |
| FunctionEnd | |
| 19(shuffle_works(vf4;): 2 Function None 11 | |
| 18(f4): 10(ptr) FunctionParameter | |
| 20: Label | |
| 165: 9(fvec4) Load 18(f4) | |
| 166: 9(fvec4) GroupNonUniformShuffle 98 165 36 | |
| 167: 9(fvec4) Load 18(f4) | |
| 168: 9(fvec4) GroupNonUniformShuffleXor 98 167 91 | |
| 169: 9(fvec4) Load 18(f4) | |
| 170: 9(fvec4) GroupNonUniformShuffleUp 98 169 91 | |
| 171: 9(fvec4) Load 18(f4) | |
| 172: 9(fvec4) GroupNonUniformShuffleDown 98 171 91 | |
| Return | |
| FunctionEnd | |
| 22(arith_works(vf4;): 2 Function None 11 | |
| 21(f4): 10(ptr) FunctionParameter | |
| 23: Label | |
| 181(ballot): 142(ptr) Variable Function | |
| 173: 9(fvec4) Load 21(f4) | |
| 174: 9(fvec4) GroupNonUniformFAdd 98 Reduce 173 | |
| 175: 9(fvec4) Load 21(f4) | |
| 176: 9(fvec4) GroupNonUniformFMul 98 Reduce 175 | |
| 177: 9(fvec4) Load 21(f4) | |
| 178: 9(fvec4) GroupNonUniformFMin 98 Reduce 177 | |
| 179: 9(fvec4) Load 21(f4) | |
| 180: 9(fvec4) GroupNonUniformFMax 98 Reduce 179 | |
| 182: 131(ivec4) Load 181(ballot) | |
| 183: 131(ivec4) GroupNonUniformBitwiseAnd 98 Reduce 182 | |
| 184: 131(ivec4) Load 181(ballot) | |
| 185: 131(ivec4) GroupNonUniformBitwiseOr 98 Reduce 184 | |
| 186: 131(ivec4) Load 181(ballot) | |
| 187: 131(ivec4) GroupNonUniformBitwiseXor 98 Reduce 186 | |
| 188: 9(fvec4) Load 21(f4) | |
| 189: 9(fvec4) GroupNonUniformFAdd 98 InclusiveScan 188 | |
| 190: 9(fvec4) Load 21(f4) | |
| 191: 9(fvec4) GroupNonUniformFMul 98 InclusiveScan 190 | |
| 192: 9(fvec4) Load 21(f4) | |
| 193: 9(fvec4) GroupNonUniformFMin 98 InclusiveScan 192 | |
| 194: 9(fvec4) Load 21(f4) | |
| 195: 9(fvec4) GroupNonUniformFMax 98 InclusiveScan 194 | |
| 196: 131(ivec4) Load 181(ballot) | |
| 197: 131(ivec4) GroupNonUniformBitwiseAnd 98 InclusiveScan 196 | |
| 198: 131(ivec4) Load 181(ballot) | |
| 199: 131(ivec4) GroupNonUniformBitwiseOr 98 InclusiveScan 198 | |
| 200: 131(ivec4) Load 181(ballot) | |
| 201: 131(ivec4) GroupNonUniformBitwiseXor 98 InclusiveScan 200 | |
| 202: 9(fvec4) Load 21(f4) | |
| 203: 9(fvec4) GroupNonUniformFAdd 98 ExclusiveScan 202 | |
| 204: 9(fvec4) Load 21(f4) | |
| 205: 9(fvec4) GroupNonUniformFMul 98 ExclusiveScan 204 | |
| 206: 9(fvec4) Load 21(f4) | |
| 207: 9(fvec4) GroupNonUniformFMin 98 ExclusiveScan 206 | |
| 208: 9(fvec4) Load 21(f4) | |
| 209: 9(fvec4) GroupNonUniformFMax 98 ExclusiveScan 208 | |
| 210: 131(ivec4) Load 181(ballot) | |
| 211: 131(ivec4) GroupNonUniformBitwiseAnd 98 ExclusiveScan 210 | |
| 212: 131(ivec4) Load 181(ballot) | |
| 213: 131(ivec4) GroupNonUniformBitwiseOr 98 ExclusiveScan 212 | |
| 214: 131(ivec4) Load 181(ballot) | |
| 215: 131(ivec4) GroupNonUniformBitwiseXor 98 ExclusiveScan 214 | |
| Return | |
| FunctionEnd | |
| 25(clustered_works(vf4;): 2 Function None 11 | |
| 24(f4): 10(ptr) FunctionParameter | |
| 26: Label | |
| 216(ballot): 142(ptr) Variable Function | |
| Store 216(ballot) 218 | |
| 219: 9(fvec4) Load 24(f4) | |
| 220: 9(fvec4) GroupNonUniformFAdd 98 ClusteredReduce 219 96 | |
| 221: 9(fvec4) Load 24(f4) | |
| 222: 9(fvec4) GroupNonUniformFMul 98 ClusteredReduce 221 96 | |
| 223: 9(fvec4) Load 24(f4) | |
| 224: 9(fvec4) GroupNonUniformFMin 98 ClusteredReduce 223 96 | |
| 225: 9(fvec4) Load 24(f4) | |
| 226: 9(fvec4) GroupNonUniformFMax 98 ClusteredReduce 225 96 | |
| 227: 131(ivec4) Load 216(ballot) | |
| 228: 131(ivec4) GroupNonUniformBitwiseAnd 98 ClusteredReduce 227 96 | |
| 229: 131(ivec4) Load 216(ballot) | |
| 230: 131(ivec4) GroupNonUniformBitwiseOr 98 ClusteredReduce 229 96 | |
| 231: 131(ivec4) Load 216(ballot) | |
| 232: 131(ivec4) GroupNonUniformBitwiseXor 98 ClusteredReduce 231 96 | |
| Return | |
| FunctionEnd | |
| 28(quad_works(vf4;): 2 Function None 11 | |
| 27(f4): 10(ptr) FunctionParameter | |
| 29: Label | |
| 233: 9(fvec4) Load 27(f4) | |
| 234: 9(fvec4) GroupNonUniformQuadBroadcast 98 233 36 | |
| 235: 9(fvec4) Load 27(f4) | |
| 236: 9(fvec4) GroupNonUniformQuadSwap 98 235 36 | |
| 237: 9(fvec4) Load 27(f4) | |
| 238: 9(fvec4) GroupNonUniformQuadSwap 98 237 91 | |
| 239: 9(fvec4) Load 27(f4) | |
| 240: 9(fvec4) GroupNonUniformQuadSwap 98 239 96 | |
| Return | |
| FunctionEnd |