
Added following updates to GL_EXT_mesh_shader implementation: 1. Added SPIRV and GLSL test cases 2. Added checks to ensure NV and EXT mesh shader builtins cannot be used interchangeably. 3. Updated the language name by removing the postfix "NV" to MeshShader and TaskShader. 4. Added checks for grammar checking to comply with the spec. 5. Added gl_NumWorkGroups builtin to Mesh shader 6. Fixed data type of gl_PrimitiveLineIndicesEXT and gl_PrimitiveTriangleIndicesEXT 7. Added new constants to the resources table 8. Updates to handle new storage qualifier "taskPayloadSharedEXT" 9. Updated test cases by replacing "taskEXT" with storage qualifier "taskPayloadSharedEXT" Addressed Review comments 1. Fixed instruction description used by glslang disassembly. 2. Updated OpEmitMeshTasksEXT as per spec update 3. Fixed implementation that errors out if there are more then one taskPayloadSharedEXT varjables. 4. Fixed miscellaneous error logs and removed unwanted code. SPIRV 1.6 related build failure fixes - Update SPIRV header to 1.6 - Fix conflict wiht SPIRV 1.6 change, where localSizeId is used for execution mode for mesh/task shaders Enable SPIRV generated for EXT_mesh_shader to be version 1.4 GL_EXT_mesh_shader: Add checks for atomic support and corresponding test cases
449 lines
25 KiB
Plaintext
449 lines
25 KiB
Plaintext
spv.460.subgroupEXT.mesh
|
|
// Module Version 10400
|
|
// Generated by (magic number): 8000a
|
|
// Id's are bound by 280
|
|
|
|
Capability ClipDistance
|
|
Capability CullDistance
|
|
Capability GroupNonUniform
|
|
Capability GroupNonUniformVote
|
|
Capability GroupNonUniformArithmetic
|
|
Capability GroupNonUniformBallot
|
|
Capability GroupNonUniformShuffle
|
|
Capability GroupNonUniformShuffleRelative
|
|
Capability GroupNonUniformClustered
|
|
Capability GroupNonUniformQuad
|
|
Capability FragmentShadingRateKHR
|
|
Capability MeshShadingEXT
|
|
Extension "SPV_EXT_mesh_shader"
|
|
Extension "SPV_KHR_fragment_shading_rate"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint MeshEXT 4 "main" 35 41 57 109 148 162 163 168 169 172 173 174 175 176
|
|
ExecutionMode 4 LocalSize 32 1 1
|
|
ExecutionMode 4 OutputVertices 81
|
|
ExecutionMode 4 OutputPrimitivesNV 32
|
|
ExecutionMode 4 OutputTrianglesNV
|
|
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 "vertexCount"
|
|
Name 46 "primitiveCount"
|
|
Name 54 "gl_MeshPerVertexEXT"
|
|
MemberName 54(gl_MeshPerVertexEXT) 0 "gl_Position"
|
|
MemberName 54(gl_MeshPerVertexEXT) 1 "gl_PointSize"
|
|
MemberName 54(gl_MeshPerVertexEXT) 2 "gl_ClipDistance"
|
|
MemberName 54(gl_MeshPerVertexEXT) 3 "gl_CullDistance"
|
|
Name 57 "gl_MeshVerticesEXT"
|
|
Name 106 "gl_MeshPerPrimitiveEXT"
|
|
MemberName 106(gl_MeshPerPrimitiveEXT) 0 "gl_PrimitiveID"
|
|
MemberName 106(gl_MeshPerPrimitiveEXT) 1 "gl_Layer"
|
|
MemberName 106(gl_MeshPerPrimitiveEXT) 2 "gl_ViewportIndex"
|
|
MemberName 106(gl_MeshPerPrimitiveEXT) 3 "gl_CullPrimitiveEXT"
|
|
MemberName 106(gl_MeshPerPrimitiveEXT) 4 "gl_PrimitiveShadingRateEXT"
|
|
Name 109 "gl_MeshPrimitivesEXT"
|
|
Name 148 "gl_PrimitiveTriangleIndicesEXT"
|
|
Name 162 "gl_SubgroupSize"
|
|
Name 163 "gl_SubgroupInvocationID"
|
|
Name 168 "gl_NumSubgroups"
|
|
Name 169 "gl_SubgroupID"
|
|
Name 172 "gl_SubgroupEqMask"
|
|
Name 173 "gl_SubgroupGeMask"
|
|
Name 174 "gl_SubgroupGtMask"
|
|
Name 175 "gl_SubgroupLeMask"
|
|
Name 176 "gl_SubgroupLtMask"
|
|
Name 182 "ballot"
|
|
Name 219 "ballot"
|
|
Name 254 "ballot"
|
|
Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
|
Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
|
|
MemberDecorate 54(gl_MeshPerVertexEXT) 0 BuiltIn Position
|
|
MemberDecorate 54(gl_MeshPerVertexEXT) 1 BuiltIn PointSize
|
|
MemberDecorate 54(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance
|
|
MemberDecorate 54(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance
|
|
Decorate 54(gl_MeshPerVertexEXT) Block
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
|
|
MemberDecorate 106(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
|
|
Decorate 106(gl_MeshPerPrimitiveEXT) Block
|
|
Decorate 148(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
|
|
Decorate 162(gl_SubgroupSize) RelaxedPrecision
|
|
Decorate 162(gl_SubgroupSize) BuiltIn SubgroupSize
|
|
Decorate 163(gl_SubgroupInvocationID) RelaxedPrecision
|
|
Decorate 163(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
|
|
Decorate 168(gl_NumSubgroups) BuiltIn NumSubgroups
|
|
Decorate 169(gl_SubgroupID) BuiltIn SubgroupId
|
|
Decorate 172(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
|
|
Decorate 173(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
|
|
Decorate 174(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
|
|
Decorate 175(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
|
|
Decorate 176(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
|
|
Decorate 279 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
|
|
45: 30(int) Constant 81
|
|
47: 30(int) Constant 32
|
|
50: 30(int) Constant 4
|
|
51: TypeArray 8(float) 50
|
|
52: 30(int) Constant 3
|
|
53: TypeArray 8(float) 52
|
|
54(gl_MeshPerVertexEXT): TypeStruct 9(fvec4) 8(float) 51 53
|
|
55: TypeArray 54(gl_MeshPerVertexEXT) 45
|
|
56: TypePointer Output 55
|
|
57(gl_MeshVerticesEXT): 56(ptr) Variable Output
|
|
59: TypeInt 32 1
|
|
60: 59(int) Constant 0
|
|
61: 8(float) Constant 1065353216
|
|
62: 9(fvec4) ConstantComposite 61 61 61 61
|
|
63: TypePointer Output 9(fvec4)
|
|
66: 59(int) Constant 1
|
|
67: 8(float) Constant 1073741824
|
|
68: TypePointer Output 8(float)
|
|
71: 59(int) Constant 2
|
|
72: 59(int) Constant 3
|
|
73: 8(float) Constant 1077936128
|
|
76: 8(float) Constant 1082130432
|
|
78: 30(int) Constant 1
|
|
79: 30(int) Constant 264
|
|
80: 30(int) Constant 2
|
|
105: TypeBool
|
|
106(gl_MeshPerPrimitiveEXT): TypeStruct 59(int) 59(int) 59(int) 105(bool) 59(int)
|
|
107: TypeArray 106(gl_MeshPerPrimitiveEXT) 47
|
|
108: TypePointer Output 107
|
|
109(gl_MeshPrimitivesEXT): 108(ptr) Variable Output
|
|
111: 59(int) Constant 6
|
|
112: TypePointer Output 59(int)
|
|
115: 59(int) Constant 7
|
|
118: 59(int) Constant 8
|
|
121: 105(bool) ConstantFalse
|
|
122: TypePointer Output 105(bool)
|
|
145: 30(int) Constant 96
|
|
146: TypeArray 33(ivec3) 145
|
|
147: TypePointer Output 146
|
|
148(gl_PrimitiveTriangleIndicesEXT): 147(ptr) Variable Output
|
|
149: 33(ivec3) ConstantComposite 78 78 78
|
|
150: TypePointer Output 33(ivec3)
|
|
154: 33(ivec3) ConstantComposite 80 80 80
|
|
162(gl_SubgroupSize): 37(ptr) Variable Input
|
|
163(gl_SubgroupInvocationID): 37(ptr) Variable Input
|
|
164: 30(int) Constant 3400
|
|
165: 30(int) Constant 72
|
|
166: 30(int) Constant 2056
|
|
168(gl_NumSubgroups): 37(ptr) Variable Input
|
|
169(gl_SubgroupID): 37(ptr) Variable Input
|
|
170: TypeVector 30(int) 4
|
|
171: TypePointer Input 170(ivec4)
|
|
172(gl_SubgroupEqMask): 171(ptr) Variable Input
|
|
173(gl_SubgroupGeMask): 171(ptr) Variable Input
|
|
174(gl_SubgroupGtMask): 171(ptr) Variable Input
|
|
175(gl_SubgroupLeMask): 171(ptr) Variable Input
|
|
176(gl_SubgroupLtMask): 171(ptr) Variable Input
|
|
181: TypePointer Function 170(ivec4)
|
|
184: 170(ivec4) ConstantComposite 78 78 78 78
|
|
198: 105(bool) ConstantTrue
|
|
255: 30(int) Constant 85
|
|
256: 170(ivec4) ConstantComposite 255 36 36 36
|
|
279: 33(ivec3) ConstantComposite 47 78 78
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
32(iid): 31(ptr) Variable Function
|
|
40(gid): 31(ptr) Variable Function
|
|
44(vertexCount): 31(ptr) Variable Function
|
|
46(primitiveCount): 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(vertexCount) 45
|
|
Store 46(primitiveCount) 47
|
|
48: 30(int) Load 44(vertexCount)
|
|
49: 30(int) Load 46(primitiveCount)
|
|
SetMeshOutputsEXT 48 49
|
|
58: 30(int) Load 32(iid)
|
|
64: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 58 60
|
|
Store 64 62
|
|
65: 30(int) Load 32(iid)
|
|
69: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 65 66
|
|
Store 69 67
|
|
70: 30(int) Load 32(iid)
|
|
74: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 70 71 72
|
|
Store 74 73
|
|
75: 30(int) Load 32(iid)
|
|
77: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 75 72 71
|
|
Store 77 76
|
|
MemoryBarrier 78 79
|
|
ControlBarrier 80 80 79
|
|
81: 30(int) Load 32(iid)
|
|
82: 30(int) IAdd 81 78
|
|
83: 30(int) Load 32(iid)
|
|
84: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 83 60
|
|
85: 9(fvec4) Load 84
|
|
86: 63(ptr) AccessChain 57(gl_MeshVerticesEXT) 82 60
|
|
Store 86 85
|
|
87: 30(int) Load 32(iid)
|
|
88: 30(int) IAdd 87 78
|
|
89: 30(int) Load 32(iid)
|
|
90: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 89 66
|
|
91: 8(float) Load 90
|
|
92: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 88 66
|
|
Store 92 91
|
|
93: 30(int) Load 32(iid)
|
|
94: 30(int) IAdd 93 78
|
|
95: 30(int) Load 32(iid)
|
|
96: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 95 71 72
|
|
97: 8(float) Load 96
|
|
98: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 94 71 72
|
|
Store 98 97
|
|
99: 30(int) Load 32(iid)
|
|
100: 30(int) IAdd 99 78
|
|
101: 30(int) Load 32(iid)
|
|
102: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 101 72 71
|
|
103: 8(float) Load 102
|
|
104: 68(ptr) AccessChain 57(gl_MeshVerticesEXT) 100 72 71
|
|
Store 104 103
|
|
MemoryBarrier 78 79
|
|
ControlBarrier 80 80 79
|
|
110: 30(int) Load 32(iid)
|
|
113: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 110 60
|
|
Store 113 111
|
|
114: 30(int) Load 32(iid)
|
|
116: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 114 66
|
|
Store 116 115
|
|
117: 30(int) Load 32(iid)
|
|
119: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 117 71
|
|
Store 119 118
|
|
120: 30(int) Load 32(iid)
|
|
123: 122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 120 72
|
|
Store 123 121
|
|
MemoryBarrier 78 79
|
|
ControlBarrier 80 80 79
|
|
124: 30(int) Load 32(iid)
|
|
125: 30(int) IAdd 124 78
|
|
126: 30(int) Load 32(iid)
|
|
127: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 126 60
|
|
128: 59(int) Load 127
|
|
129: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 125 60
|
|
Store 129 128
|
|
130: 30(int) Load 32(iid)
|
|
131: 30(int) IAdd 130 78
|
|
132: 30(int) Load 32(iid)
|
|
133: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 132 66
|
|
134: 59(int) Load 133
|
|
135: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 131 66
|
|
Store 135 134
|
|
136: 30(int) Load 32(iid)
|
|
137: 30(int) IAdd 136 78
|
|
138: 30(int) Load 32(iid)
|
|
139: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 138 71
|
|
140: 59(int) Load 139
|
|
141: 112(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 137 71
|
|
Store 141 140
|
|
142: 30(int) Load 32(iid)
|
|
143: 30(int) IAdd 142 78
|
|
144: 122(ptr) AccessChain 109(gl_MeshPrimitivesEXT) 143 72
|
|
Store 144 121
|
|
MemoryBarrier 78 79
|
|
ControlBarrier 80 80 79
|
|
151: 150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 60
|
|
Store 151 149
|
|
152: 30(int) Load 46(primitiveCount)
|
|
153: 30(int) ISub 152 78
|
|
155: 150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 153
|
|
Store 155 154
|
|
156: 30(int) Load 40(gid)
|
|
157: 30(int) Load 40(gid)
|
|
158: 30(int) ISub 157 78
|
|
159: 150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 158
|
|
160: 33(ivec3) Load 159
|
|
161: 150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 156
|
|
Store 161 160
|
|
MemoryBarrier 78 79
|
|
ControlBarrier 80 80 79
|
|
Return
|
|
FunctionEnd
|
|
6(basic_works(): 2 Function None 3
|
|
7: Label
|
|
ControlBarrier 52 52 164
|
|
MemoryBarrier 52 164
|
|
MemoryBarrier 52 165
|
|
MemoryBarrier 52 166
|
|
167: 105(bool) GroupNonUniformElect 52
|
|
MemoryBarrier 52 79
|
|
Return
|
|
FunctionEnd
|
|
13(ballot_works(vf4;): 2 Function None 11
|
|
12(f4): 10(ptr) FunctionParameter
|
|
14: Label
|
|
182(ballot): 181(ptr) Variable Function
|
|
177: 9(fvec4) Load 12(f4)
|
|
178: 9(fvec4) GroupNonUniformBroadcast 52 177 36
|
|
179: 9(fvec4) Load 12(f4)
|
|
180: 9(fvec4) GroupNonUniformBroadcastFirst 52 179
|
|
183: 170(ivec4) GroupNonUniformBallot 52 121
|
|
Store 182(ballot) 183
|
|
185: 105(bool) GroupNonUniformInverseBallot 52 184
|
|
186: 170(ivec4) Load 182(ballot)
|
|
187: 105(bool) GroupNonUniformBallotBitExtract 52 186 36
|
|
188: 170(ivec4) Load 182(ballot)
|
|
189: 30(int) GroupNonUniformBallotBitCount 52 Reduce 188
|
|
190: 170(ivec4) Load 182(ballot)
|
|
191: 30(int) GroupNonUniformBallotBitCount 52 InclusiveScan 190
|
|
192: 170(ivec4) Load 182(ballot)
|
|
193: 30(int) GroupNonUniformBallotBitCount 52 ExclusiveScan 192
|
|
194: 170(ivec4) Load 182(ballot)
|
|
195: 30(int) GroupNonUniformBallotFindLSB 52 194
|
|
196: 170(ivec4) Load 182(ballot)
|
|
197: 30(int) GroupNonUniformBallotFindMSB 52 196
|
|
Return
|
|
FunctionEnd
|
|
16(vote_works(vf4;): 2 Function None 11
|
|
15(f4): 10(ptr) FunctionParameter
|
|
17: Label
|
|
199: 105(bool) GroupNonUniformAll 52 198
|
|
200: 105(bool) GroupNonUniformAny 52 121
|
|
201: 9(fvec4) Load 15(f4)
|
|
202: 105(bool) GroupNonUniformAllEqual 52 201
|
|
Return
|
|
FunctionEnd
|
|
19(shuffle_works(vf4;): 2 Function None 11
|
|
18(f4): 10(ptr) FunctionParameter
|
|
20: Label
|
|
203: 9(fvec4) Load 18(f4)
|
|
204: 9(fvec4) GroupNonUniformShuffle 52 203 36
|
|
205: 9(fvec4) Load 18(f4)
|
|
206: 9(fvec4) GroupNonUniformShuffleXor 52 205 78
|
|
207: 9(fvec4) Load 18(f4)
|
|
208: 9(fvec4) GroupNonUniformShuffleUp 52 207 78
|
|
209: 9(fvec4) Load 18(f4)
|
|
210: 9(fvec4) GroupNonUniformShuffleDown 52 209 78
|
|
Return
|
|
FunctionEnd
|
|
22(arith_works(vf4;): 2 Function None 11
|
|
21(f4): 10(ptr) FunctionParameter
|
|
23: Label
|
|
219(ballot): 181(ptr) Variable Function
|
|
211: 9(fvec4) Load 21(f4)
|
|
212: 9(fvec4) GroupNonUniformFAdd 52 Reduce 211
|
|
213: 9(fvec4) Load 21(f4)
|
|
214: 9(fvec4) GroupNonUniformFMul 52 Reduce 213
|
|
215: 9(fvec4) Load 21(f4)
|
|
216: 9(fvec4) GroupNonUniformFMin 52 Reduce 215
|
|
217: 9(fvec4) Load 21(f4)
|
|
218: 9(fvec4) GroupNonUniformFMax 52 Reduce 217
|
|
220: 170(ivec4) Load 219(ballot)
|
|
221: 170(ivec4) GroupNonUniformBitwiseAnd 52 Reduce 220
|
|
222: 170(ivec4) Load 219(ballot)
|
|
223: 170(ivec4) GroupNonUniformBitwiseOr 52 Reduce 222
|
|
224: 170(ivec4) Load 219(ballot)
|
|
225: 170(ivec4) GroupNonUniformBitwiseXor 52 Reduce 224
|
|
226: 9(fvec4) Load 21(f4)
|
|
227: 9(fvec4) GroupNonUniformFAdd 52 InclusiveScan 226
|
|
228: 9(fvec4) Load 21(f4)
|
|
229: 9(fvec4) GroupNonUniformFMul 52 InclusiveScan 228
|
|
230: 9(fvec4) Load 21(f4)
|
|
231: 9(fvec4) GroupNonUniformFMin 52 InclusiveScan 230
|
|
232: 9(fvec4) Load 21(f4)
|
|
233: 9(fvec4) GroupNonUniformFMax 52 InclusiveScan 232
|
|
234: 170(ivec4) Load 219(ballot)
|
|
235: 170(ivec4) GroupNonUniformBitwiseAnd 52 InclusiveScan 234
|
|
236: 170(ivec4) Load 219(ballot)
|
|
237: 170(ivec4) GroupNonUniformBitwiseOr 52 InclusiveScan 236
|
|
238: 170(ivec4) Load 219(ballot)
|
|
239: 170(ivec4) GroupNonUniformBitwiseXor 52 InclusiveScan 238
|
|
240: 9(fvec4) Load 21(f4)
|
|
241: 9(fvec4) GroupNonUniformFAdd 52 ExclusiveScan 240
|
|
242: 9(fvec4) Load 21(f4)
|
|
243: 9(fvec4) GroupNonUniformFMul 52 ExclusiveScan 242
|
|
244: 9(fvec4) Load 21(f4)
|
|
245: 9(fvec4) GroupNonUniformFMin 52 ExclusiveScan 244
|
|
246: 9(fvec4) Load 21(f4)
|
|
247: 9(fvec4) GroupNonUniformFMax 52 ExclusiveScan 246
|
|
248: 170(ivec4) Load 219(ballot)
|
|
249: 170(ivec4) GroupNonUniformBitwiseAnd 52 ExclusiveScan 248
|
|
250: 170(ivec4) Load 219(ballot)
|
|
251: 170(ivec4) GroupNonUniformBitwiseOr 52 ExclusiveScan 250
|
|
252: 170(ivec4) Load 219(ballot)
|
|
253: 170(ivec4) GroupNonUniformBitwiseXor 52 ExclusiveScan 252
|
|
Return
|
|
FunctionEnd
|
|
25(clustered_works(vf4;): 2 Function None 11
|
|
24(f4): 10(ptr) FunctionParameter
|
|
26: Label
|
|
254(ballot): 181(ptr) Variable Function
|
|
Store 254(ballot) 256
|
|
257: 9(fvec4) Load 24(f4)
|
|
258: 9(fvec4) GroupNonUniformFAdd 52 ClusteredReduce 257 80
|
|
259: 9(fvec4) Load 24(f4)
|
|
260: 9(fvec4) GroupNonUniformFMul 52 ClusteredReduce 259 80
|
|
261: 9(fvec4) Load 24(f4)
|
|
262: 9(fvec4) GroupNonUniformFMin 52 ClusteredReduce 261 80
|
|
263: 9(fvec4) Load 24(f4)
|
|
264: 9(fvec4) GroupNonUniformFMax 52 ClusteredReduce 263 80
|
|
265: 170(ivec4) Load 254(ballot)
|
|
266: 170(ivec4) GroupNonUniformBitwiseAnd 52 ClusteredReduce 265 80
|
|
267: 170(ivec4) Load 254(ballot)
|
|
268: 170(ivec4) GroupNonUniformBitwiseOr 52 ClusteredReduce 267 80
|
|
269: 170(ivec4) Load 254(ballot)
|
|
270: 170(ivec4) GroupNonUniformBitwiseXor 52 ClusteredReduce 269 80
|
|
Return
|
|
FunctionEnd
|
|
28(quad_works(vf4;): 2 Function None 11
|
|
27(f4): 10(ptr) FunctionParameter
|
|
29: Label
|
|
271: 9(fvec4) Load 27(f4)
|
|
272: 9(fvec4) GroupNonUniformQuadBroadcast 52 271 36
|
|
273: 9(fvec4) Load 27(f4)
|
|
274: 9(fvec4) GroupNonUniformQuadSwap 52 273 36
|
|
275: 9(fvec4) Load 27(f4)
|
|
276: 9(fvec4) GroupNonUniformQuadSwap 52 275 78
|
|
277: 9(fvec4) Load 27(f4)
|
|
278: 9(fvec4) GroupNonUniformQuadSwap 52 277 80
|
|
Return
|
|
FunctionEnd
|