HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.
This needs some render testing, but is destined to be part of master. This also leads to a variety of other simplifications. - IO are global symbols, so only need one list of linkage nodes (deferred) - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized - several parts of splitting/flattening are now localized
This commit is contained in:
@@ -230,16 +230,16 @@ local_size = (1, 1, 1)
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
|
||||
0:105 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
|
||||
0:105 Function Parameters:
|
||||
0:105 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:105 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:105 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:105 'inU0' (layout(location=3 ) in 4-component vector of uint)
|
||||
0:105 'inU1' (layout(location=4 ) in 4-component vector of uint)
|
||||
0:105 'inF0' (in 4-component vector of float)
|
||||
0:105 'inF1' (in 4-component vector of float)
|
||||
0:105 'inF2' (in 4-component vector of float)
|
||||
0:105 'inU0' (in 4-component vector of uint)
|
||||
0:105 'inU1' (in 4-component vector of uint)
|
||||
0:? Sequence
|
||||
0:109 all (temp bool)
|
||||
0:109 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:109 'inF0' (in 4-component vector of float)
|
||||
0:112 AtomicAdd (temp void)
|
||||
0:112 'gs_ua4' (shared 4-component vector of uint)
|
||||
0:112 'gs_ub4' (shared 4-component vector of uint)
|
||||
@@ -299,22 +299,39 @@ local_size = (1, 1, 1)
|
||||
0:125 AtomicXor (temp 4-component vector of uint)
|
||||
0:125 'gs_ua4' (shared 4-component vector of uint)
|
||||
0:125 'gs_ub4' (shared 4-component vector of uint)
|
||||
0:128 Sequence
|
||||
0:128 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:128 Branch: Return
|
||||
0:128 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:105 Function Definition: ComputeShaderFunction( (temp void)
|
||||
0:105 Function Parameters:
|
||||
0:? Sequence
|
||||
0:105 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'inF0' (temp 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:105 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'inF1' (temp 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:105 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'inF2' (temp 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:105 move second child to first child (temp 4-component vector of uint)
|
||||
0:? 'inU0' (temp 4-component vector of uint)
|
||||
0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
|
||||
0:105 move second child to first child (temp 4-component vector of uint)
|
||||
0:? 'inU1' (temp 4-component vector of uint)
|
||||
0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
|
||||
0:105 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:105 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
|
||||
0:? 'inF0' (temp 4-component vector of float)
|
||||
0:? 'inF1' (temp 4-component vector of float)
|
||||
0:? 'inF2' (temp 4-component vector of float)
|
||||
0:? 'inU0' (temp 4-component vector of uint)
|
||||
0:? 'inU1' (temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
|
||||
0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
|
||||
0:? 'gs_ua' (shared uint)
|
||||
0:? 'gs_ub' (shared uint)
|
||||
0:? 'gs_uc' (shared uint)
|
||||
@@ -327,6 +344,12 @@ local_size = (1, 1, 1)
|
||||
0:? 'gs_ua4' (shared 4-component vector of uint)
|
||||
0:? 'gs_ub4' (shared 4-component vector of uint)
|
||||
0:? 'gs_uc4' (shared 4-component vector of uint)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
|
||||
0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
@@ -563,16 +586,16 @@ local_size = (1, 1, 1)
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
|
||||
0:105 Function Definition: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
|
||||
0:105 Function Parameters:
|
||||
0:105 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:105 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:105 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:105 'inU0' (layout(location=3 ) in 4-component vector of uint)
|
||||
0:105 'inU1' (layout(location=4 ) in 4-component vector of uint)
|
||||
0:105 'inF0' (in 4-component vector of float)
|
||||
0:105 'inF1' (in 4-component vector of float)
|
||||
0:105 'inF2' (in 4-component vector of float)
|
||||
0:105 'inU0' (in 4-component vector of uint)
|
||||
0:105 'inU1' (in 4-component vector of uint)
|
||||
0:? Sequence
|
||||
0:109 all (temp bool)
|
||||
0:109 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:109 'inF0' (in 4-component vector of float)
|
||||
0:112 AtomicAdd (temp void)
|
||||
0:112 'gs_ua4' (shared 4-component vector of uint)
|
||||
0:112 'gs_ub4' (shared 4-component vector of uint)
|
||||
@@ -632,22 +655,39 @@ local_size = (1, 1, 1)
|
||||
0:125 AtomicXor (temp 4-component vector of uint)
|
||||
0:125 'gs_ua4' (shared 4-component vector of uint)
|
||||
0:125 'gs_ub4' (shared 4-component vector of uint)
|
||||
0:128 Sequence
|
||||
0:128 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:128 Branch: Return
|
||||
0:128 Branch: Return with expression
|
||||
0:? Constant:
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:105 Function Definition: ComputeShaderFunction( (temp void)
|
||||
0:105 Function Parameters:
|
||||
0:? Sequence
|
||||
0:105 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'inF0' (temp 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:105 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'inF1' (temp 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:105 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'inF2' (temp 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:105 move second child to first child (temp 4-component vector of uint)
|
||||
0:? 'inU0' (temp 4-component vector of uint)
|
||||
0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
|
||||
0:105 move second child to first child (temp 4-component vector of uint)
|
||||
0:? 'inU1' (temp 4-component vector of uint)
|
||||
0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
|
||||
0:105 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:105 Function Call: @ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
|
||||
0:? 'inF0' (temp 4-component vector of float)
|
||||
0:? 'inF1' (temp 4-component vector of float)
|
||||
0:? 'inF2' (temp 4-component vector of float)
|
||||
0:? 'inU0' (temp 4-component vector of uint)
|
||||
0:? 'inU1' (temp 4-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
|
||||
0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
|
||||
0:? 'gs_ua' (shared uint)
|
||||
0:? 'gs_ub' (shared uint)
|
||||
0:? 'gs_uc' (shared uint)
|
||||
@@ -660,15 +700,21 @@ local_size = (1, 1, 1)
|
||||
0:? 'gs_ua4' (shared 4-component vector of uint)
|
||||
0:? 'gs_ub4' (shared 4-component vector of uint)
|
||||
0:? 'gs_uc4' (shared 4-component vector of uint)
|
||||
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
|
||||
0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
|
||||
0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
|
||||
0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
|
||||
0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
|
||||
0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 224
|
||||
// Id's are bound by 255
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "ComputeShaderFunction" 175 215 219 220 222 223
|
||||
EntryPoint GLCompute 4 "ComputeShaderFunction" 227 230 233 237 240 243
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Name 4 "ComputeShaderFunction"
|
||||
Name 16 "ComputeShaderFunctionS(f1;f1;f1;u1;u1;"
|
||||
@@ -693,34 +739,50 @@ local_size = (1, 1, 1)
|
||||
Name 43 "inF2"
|
||||
Name 44 "inU0"
|
||||
Name 45 "inU1"
|
||||
Name 52 "gs_ua"
|
||||
Name 53 "gs_ub"
|
||||
Name 58 "out_u1"
|
||||
Name 66 "gs_uc"
|
||||
Name 95 "gs_ua2"
|
||||
Name 96 "gs_ub2"
|
||||
Name 99 "out_u2"
|
||||
Name 107 "gs_uc2"
|
||||
Name 136 "gs_ua3"
|
||||
Name 137 "gs_ub3"
|
||||
Name 140 "out_u3"
|
||||
Name 148 "gs_uc3"
|
||||
Name 175 "inF0"
|
||||
Name 180 "gs_ua4"
|
||||
Name 181 "gs_ub4"
|
||||
Name 185 "out_u4"
|
||||
Name 193 "gs_uc4"
|
||||
Name 215 "@entryPointOutput"
|
||||
Name 219 "inF1"
|
||||
Name 220 "inF2"
|
||||
Name 222 "inU0"
|
||||
Name 223 "inU1"
|
||||
Decorate 175(inF0) Location 0
|
||||
Decorate 215(@entryPointOutput) Location 0
|
||||
Decorate 219(inF1) Location 1
|
||||
Decorate 220(inF2) Location 2
|
||||
Decorate 222(inU0) Location 3
|
||||
Decorate 223(inU1) Location 4
|
||||
Name 58 "@ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4;"
|
||||
Name 53 "inF0"
|
||||
Name 54 "inF1"
|
||||
Name 55 "inF2"
|
||||
Name 56 "inU0"
|
||||
Name 57 "inU1"
|
||||
Name 64 "gs_ua"
|
||||
Name 65 "gs_ub"
|
||||
Name 70 "out_u1"
|
||||
Name 78 "gs_uc"
|
||||
Name 107 "gs_ua2"
|
||||
Name 108 "gs_ub2"
|
||||
Name 111 "out_u2"
|
||||
Name 119 "gs_uc2"
|
||||
Name 148 "gs_ua3"
|
||||
Name 149 "gs_ub3"
|
||||
Name 152 "out_u3"
|
||||
Name 160 "gs_uc3"
|
||||
Name 188 "gs_ua4"
|
||||
Name 189 "gs_ub4"
|
||||
Name 192 "out_u4"
|
||||
Name 200 "gs_uc4"
|
||||
Name 225 "inF0"
|
||||
Name 227 "inF0"
|
||||
Name 229 "inF1"
|
||||
Name 230 "inF1"
|
||||
Name 232 "inF2"
|
||||
Name 233 "inF2"
|
||||
Name 235 "inU0"
|
||||
Name 237 "inU0"
|
||||
Name 239 "inU1"
|
||||
Name 240 "inU1"
|
||||
Name 243 "@entryPointOutput"
|
||||
Name 244 "param"
|
||||
Name 246 "param"
|
||||
Name 248 "param"
|
||||
Name 250 "param"
|
||||
Name 252 "param"
|
||||
Decorate 227(inF0) Location 0
|
||||
Decorate 230(inF1) Location 1
|
||||
Decorate 233(inF2) Location 2
|
||||
Decorate 237(inU0) Location 3
|
||||
Decorate 240(inU1) Location 4
|
||||
Decorate 243(@entryPointOutput) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -739,88 +801,81 @@ local_size = (1, 1, 1)
|
||||
38: TypeVector 8(int) 3
|
||||
39: TypePointer Function 38(ivec3)
|
||||
40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr)
|
||||
49: TypeBool
|
||||
51: TypePointer Workgroup 8(int)
|
||||
52(gs_ua): 51(ptr) Variable Workgroup
|
||||
53(gs_ub): 51(ptr) Variable Workgroup
|
||||
55: 8(int) Constant 1
|
||||
56: 8(int) Constant 0
|
||||
66(gs_uc): 51(ptr) Variable Workgroup
|
||||
87: 6(float) Constant 0
|
||||
94: TypePointer Workgroup 26(ivec2)
|
||||
95(gs_ua2): 94(ptr) Variable Workgroup
|
||||
96(gs_ub2): 94(ptr) Variable Workgroup
|
||||
107(gs_uc2): 94(ptr) Variable Workgroup
|
||||
128: 6(float) Constant 1065353216
|
||||
129: 6(float) Constant 1073741824
|
||||
130: 24(fvec2) ConstantComposite 128 129
|
||||
135: TypePointer Workgroup 38(ivec3)
|
||||
136(gs_ua3): 135(ptr) Variable Workgroup
|
||||
137(gs_ub3): 135(ptr) Variable Workgroup
|
||||
148(gs_uc3): 135(ptr) Variable Workgroup
|
||||
169: 6(float) Constant 1077936128
|
||||
170: 36(fvec3) ConstantComposite 128 129 169
|
||||
173: TypeVector 6(float) 4
|
||||
174: TypePointer Input 173(fvec4)
|
||||
175(inF0): 174(ptr) Variable Input
|
||||
178: TypeVector 8(int) 4
|
||||
179: TypePointer Workgroup 178(ivec4)
|
||||
180(gs_ua4): 179(ptr) Variable Workgroup
|
||||
181(gs_ub4): 179(ptr) Variable Workgroup
|
||||
184: TypePointer Function 178(ivec4)
|
||||
193(gs_uc4): 179(ptr) Variable Workgroup
|
||||
214: TypePointer Output 173(fvec4)
|
||||
215(@entryPointOutput): 214(ptr) Variable Output
|
||||
216: 6(float) Constant 1082130432
|
||||
217: 173(fvec4) ConstantComposite 128 129 169 216
|
||||
219(inF1): 174(ptr) Variable Input
|
||||
220(inF2): 174(ptr) Variable Input
|
||||
221: TypePointer Input 178(ivec4)
|
||||
222(inU0): 221(ptr) Variable Input
|
||||
223(inU1): 221(ptr) Variable Input
|
||||
48: TypeVector 6(float) 4
|
||||
49: TypePointer Function 48(fvec4)
|
||||
50: TypeVector 8(int) 4
|
||||
51: TypePointer Function 50(ivec4)
|
||||
52: TypeFunction 48(fvec4) 49(ptr) 49(ptr) 49(ptr) 51(ptr) 51(ptr)
|
||||
61: TypeBool
|
||||
63: TypePointer Workgroup 8(int)
|
||||
64(gs_ua): 63(ptr) Variable Workgroup
|
||||
65(gs_ub): 63(ptr) Variable Workgroup
|
||||
67: 8(int) Constant 1
|
||||
68: 8(int) Constant 0
|
||||
78(gs_uc): 63(ptr) Variable Workgroup
|
||||
99: 6(float) Constant 0
|
||||
106: TypePointer Workgroup 26(ivec2)
|
||||
107(gs_ua2): 106(ptr) Variable Workgroup
|
||||
108(gs_ub2): 106(ptr) Variable Workgroup
|
||||
119(gs_uc2): 106(ptr) Variable Workgroup
|
||||
140: 6(float) Constant 1065353216
|
||||
141: 6(float) Constant 1073741824
|
||||
142: 24(fvec2) ConstantComposite 140 141
|
||||
147: TypePointer Workgroup 38(ivec3)
|
||||
148(gs_ua3): 147(ptr) Variable Workgroup
|
||||
149(gs_ub3): 147(ptr) Variable Workgroup
|
||||
160(gs_uc3): 147(ptr) Variable Workgroup
|
||||
181: 6(float) Constant 1077936128
|
||||
182: 36(fvec3) ConstantComposite 140 141 181
|
||||
187: TypePointer Workgroup 50(ivec4)
|
||||
188(gs_ua4): 187(ptr) Variable Workgroup
|
||||
189(gs_ub4): 187(ptr) Variable Workgroup
|
||||
200(gs_uc4): 187(ptr) Variable Workgroup
|
||||
221: 6(float) Constant 1082130432
|
||||
222: 48(fvec4) ConstantComposite 140 141 181 221
|
||||
226: TypePointer Input 48(fvec4)
|
||||
227(inF0): 226(ptr) Variable Input
|
||||
230(inF1): 226(ptr) Variable Input
|
||||
233(inF2): 226(ptr) Variable Input
|
||||
236: TypePointer Input 50(ivec4)
|
||||
237(inU0): 236(ptr) Variable Input
|
||||
240(inU1): 236(ptr) Variable Input
|
||||
242: TypePointer Output 48(fvec4)
|
||||
243(@entryPointOutput): 242(ptr) Variable Output
|
||||
4(ComputeShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
185(out_u4): 184(ptr) Variable Function
|
||||
176: 173(fvec4) Load 175(inF0)
|
||||
177: 49(bool) All 176
|
||||
182: 178(ivec4) Load 181(gs_ub4)
|
||||
183: 2 AtomicIAdd 180(gs_ua4) 55 56 182
|
||||
186: 178(ivec4) Load 181(gs_ub4)
|
||||
187: 178(ivec4) AtomicIAdd 180(gs_ua4) 55 56 186
|
||||
Store 185(out_u4) 187
|
||||
188: 178(ivec4) Load 181(gs_ub4)
|
||||
189: 2 AtomicAnd 180(gs_ua4) 55 56 188
|
||||
190: 178(ivec4) Load 181(gs_ub4)
|
||||
191: 178(ivec4) AtomicAnd 180(gs_ua4) 55 56 190
|
||||
Store 185(out_u4) 191
|
||||
192: 178(ivec4) Load 181(gs_ub4)
|
||||
194: 178(ivec4) Load 193(gs_uc4)
|
||||
195: 178(ivec4) AtomicCompareExchange 180(gs_ua4) 55 56 56 194 192
|
||||
Store 185(out_u4) 195
|
||||
196: 178(ivec4) Load 181(gs_ub4)
|
||||
197: 178(ivec4) AtomicExchange 180(gs_ua4) 55 56 196
|
||||
Store 185(out_u4) 197
|
||||
198: 178(ivec4) Load 181(gs_ub4)
|
||||
199: 2 AtomicSMax 180(gs_ua4) 55 56 198
|
||||
200: 178(ivec4) Load 181(gs_ub4)
|
||||
201: 178(ivec4) AtomicUMax 180(gs_ua4) 55 56 200
|
||||
Store 185(out_u4) 201
|
||||
202: 178(ivec4) Load 181(gs_ub4)
|
||||
203: 2 AtomicSMin 180(gs_ua4) 55 56 202
|
||||
204: 178(ivec4) Load 181(gs_ub4)
|
||||
205: 178(ivec4) AtomicUMin 180(gs_ua4) 55 56 204
|
||||
Store 185(out_u4) 205
|
||||
206: 178(ivec4) Load 181(gs_ub4)
|
||||
207: 2 AtomicOr 180(gs_ua4) 55 56 206
|
||||
208: 178(ivec4) Load 181(gs_ub4)
|
||||
209: 178(ivec4) AtomicOr 180(gs_ua4) 55 56 208
|
||||
Store 185(out_u4) 209
|
||||
210: 178(ivec4) Load 181(gs_ub4)
|
||||
211: 2 AtomicXor 180(gs_ua4) 55 56 210
|
||||
212: 178(ivec4) Load 181(gs_ub4)
|
||||
213: 178(ivec4) AtomicXor 180(gs_ua4) 55 56 212
|
||||
Store 185(out_u4) 213
|
||||
Store 215(@entryPointOutput) 217
|
||||
225(inF0): 49(ptr) Variable Function
|
||||
229(inF1): 49(ptr) Variable Function
|
||||
232(inF2): 49(ptr) Variable Function
|
||||
235(inU0): 51(ptr) Variable Function
|
||||
239(inU1): 51(ptr) Variable Function
|
||||
244(param): 49(ptr) Variable Function
|
||||
246(param): 49(ptr) Variable Function
|
||||
248(param): 49(ptr) Variable Function
|
||||
250(param): 51(ptr) Variable Function
|
||||
252(param): 51(ptr) Variable Function
|
||||
228: 48(fvec4) Load 227(inF0)
|
||||
Store 225(inF0) 228
|
||||
231: 48(fvec4) Load 230(inF1)
|
||||
Store 229(inF1) 231
|
||||
234: 48(fvec4) Load 233(inF2)
|
||||
Store 232(inF2) 234
|
||||
238: 50(ivec4) Load 237(inU0)
|
||||
Store 235(inU0) 238
|
||||
241: 50(ivec4) Load 240(inU1)
|
||||
Store 239(inU1) 241
|
||||
245: 48(fvec4) Load 225(inF0)
|
||||
Store 244(param) 245
|
||||
247: 48(fvec4) Load 229(inF1)
|
||||
Store 246(param) 247
|
||||
249: 48(fvec4) Load 232(inF2)
|
||||
Store 248(param) 249
|
||||
251: 50(ivec4) Load 235(inU0)
|
||||
Store 250(param) 251
|
||||
253: 50(ivec4) Load 239(inU1)
|
||||
Store 252(param) 253
|
||||
254: 48(fvec4) FunctionCall 58(@ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4;) 244(param) 246(param) 248(param) 250(param) 252(param)
|
||||
Store 243(@entryPointOutput) 254
|
||||
Return
|
||||
FunctionEnd
|
||||
16(ComputeShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10
|
||||
@@ -830,54 +885,54 @@ local_size = (1, 1, 1)
|
||||
14(inU0): 9(ptr) FunctionParameter
|
||||
15(inU1): 9(ptr) FunctionParameter
|
||||
17: Label
|
||||
58(out_u1): 9(ptr) Variable Function
|
||||
48: 6(float) Load 11(inF0)
|
||||
50: 49(bool) All 48
|
||||
54: 8(int) Load 53(gs_ub)
|
||||
57: 2 AtomicIAdd 52(gs_ua) 55 56 54
|
||||
59: 8(int) Load 53(gs_ub)
|
||||
60: 8(int) AtomicIAdd 52(gs_ua) 55 56 59
|
||||
Store 58(out_u1) 60
|
||||
61: 8(int) Load 53(gs_ub)
|
||||
62: 2 AtomicAnd 52(gs_ua) 55 56 61
|
||||
63: 8(int) Load 53(gs_ub)
|
||||
64: 8(int) AtomicAnd 52(gs_ua) 55 56 63
|
||||
Store 58(out_u1) 64
|
||||
65: 8(int) Load 53(gs_ub)
|
||||
67: 8(int) Load 66(gs_uc)
|
||||
68: 8(int) AtomicCompareExchange 52(gs_ua) 55 56 56 67 65
|
||||
Store 58(out_u1) 68
|
||||
69: 8(int) Load 53(gs_ub)
|
||||
70: 8(int) AtomicExchange 52(gs_ua) 55 56 69
|
||||
Store 58(out_u1) 70
|
||||
71: 8(int) Load 53(gs_ub)
|
||||
72: 2 AtomicSMax 52(gs_ua) 55 56 71
|
||||
73: 8(int) Load 53(gs_ub)
|
||||
74: 8(int) AtomicUMax 52(gs_ua) 55 56 73
|
||||
Store 58(out_u1) 74
|
||||
75: 8(int) Load 53(gs_ub)
|
||||
76: 2 AtomicSMin 52(gs_ua) 55 56 75
|
||||
77: 8(int) Load 53(gs_ub)
|
||||
78: 8(int) AtomicUMin 52(gs_ua) 55 56 77
|
||||
Store 58(out_u1) 78
|
||||
79: 8(int) Load 53(gs_ub)
|
||||
80: 2 AtomicOr 52(gs_ua) 55 56 79
|
||||
81: 8(int) Load 53(gs_ub)
|
||||
82: 8(int) AtomicOr 52(gs_ua) 55 56 81
|
||||
Store 58(out_u1) 82
|
||||
83: 8(int) Load 53(gs_ub)
|
||||
84: 2 AtomicXor 52(gs_ua) 55 56 83
|
||||
85: 8(int) Load 53(gs_ub)
|
||||
86: 8(int) AtomicXor 52(gs_ua) 55 56 85
|
||||
Store 58(out_u1) 86
|
||||
ReturnValue 87
|
||||
70(out_u1): 9(ptr) Variable Function
|
||||
60: 6(float) Load 11(inF0)
|
||||
62: 61(bool) All 60
|
||||
66: 8(int) Load 65(gs_ub)
|
||||
69: 2 AtomicIAdd 64(gs_ua) 67 68 66
|
||||
71: 8(int) Load 65(gs_ub)
|
||||
72: 8(int) AtomicIAdd 64(gs_ua) 67 68 71
|
||||
Store 70(out_u1) 72
|
||||
73: 8(int) Load 65(gs_ub)
|
||||
74: 2 AtomicAnd 64(gs_ua) 67 68 73
|
||||
75: 8(int) Load 65(gs_ub)
|
||||
76: 8(int) AtomicAnd 64(gs_ua) 67 68 75
|
||||
Store 70(out_u1) 76
|
||||
77: 8(int) Load 65(gs_ub)
|
||||
79: 8(int) Load 78(gs_uc)
|
||||
80: 8(int) AtomicCompareExchange 64(gs_ua) 67 68 68 79 77
|
||||
Store 70(out_u1) 80
|
||||
81: 8(int) Load 65(gs_ub)
|
||||
82: 8(int) AtomicExchange 64(gs_ua) 67 68 81
|
||||
Store 70(out_u1) 82
|
||||
83: 8(int) Load 65(gs_ub)
|
||||
84: 2 AtomicSMax 64(gs_ua) 67 68 83
|
||||
85: 8(int) Load 65(gs_ub)
|
||||
86: 8(int) AtomicUMax 64(gs_ua) 67 68 85
|
||||
Store 70(out_u1) 86
|
||||
87: 8(int) Load 65(gs_ub)
|
||||
88: 2 AtomicSMin 64(gs_ua) 67 68 87
|
||||
89: 8(int) Load 65(gs_ub)
|
||||
90: 8(int) AtomicUMin 64(gs_ua) 67 68 89
|
||||
Store 70(out_u1) 90
|
||||
91: 8(int) Load 65(gs_ub)
|
||||
92: 2 AtomicOr 64(gs_ua) 67 68 91
|
||||
93: 8(int) Load 65(gs_ub)
|
||||
94: 8(int) AtomicOr 64(gs_ua) 67 68 93
|
||||
Store 70(out_u1) 94
|
||||
95: 8(int) Load 65(gs_ub)
|
||||
96: 2 AtomicXor 64(gs_ua) 67 68 95
|
||||
97: 8(int) Load 65(gs_ub)
|
||||
98: 8(int) AtomicXor 64(gs_ua) 67 68 97
|
||||
Store 70(out_u1) 98
|
||||
ReturnValue 99
|
||||
FunctionEnd
|
||||
22(ComputeShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18
|
||||
19(inF0): 7(ptr) FunctionParameter
|
||||
20(inF1): 7(ptr) FunctionParameter
|
||||
21(inF2): 7(ptr) FunctionParameter
|
||||
23: Label
|
||||
ReturnValue 87
|
||||
ReturnValue 99
|
||||
FunctionEnd
|
||||
34(ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28
|
||||
29(inF0): 25(ptr) FunctionParameter
|
||||
@@ -886,47 +941,47 @@ local_size = (1, 1, 1)
|
||||
32(inU0): 27(ptr) FunctionParameter
|
||||
33(inU1): 27(ptr) FunctionParameter
|
||||
35: Label
|
||||
99(out_u2): 27(ptr) Variable Function
|
||||
92: 24(fvec2) Load 29(inF0)
|
||||
93: 49(bool) All 92
|
||||
97: 26(ivec2) Load 96(gs_ub2)
|
||||
98: 2 AtomicIAdd 95(gs_ua2) 55 56 97
|
||||
100: 26(ivec2) Load 96(gs_ub2)
|
||||
101: 26(ivec2) AtomicIAdd 95(gs_ua2) 55 56 100
|
||||
Store 99(out_u2) 101
|
||||
102: 26(ivec2) Load 96(gs_ub2)
|
||||
103: 2 AtomicAnd 95(gs_ua2) 55 56 102
|
||||
104: 26(ivec2) Load 96(gs_ub2)
|
||||
105: 26(ivec2) AtomicAnd 95(gs_ua2) 55 56 104
|
||||
Store 99(out_u2) 105
|
||||
106: 26(ivec2) Load 96(gs_ub2)
|
||||
108: 26(ivec2) Load 107(gs_uc2)
|
||||
109: 26(ivec2) AtomicCompareExchange 95(gs_ua2) 55 56 56 108 106
|
||||
Store 99(out_u2) 109
|
||||
110: 26(ivec2) Load 96(gs_ub2)
|
||||
111: 26(ivec2) AtomicExchange 95(gs_ua2) 55 56 110
|
||||
Store 99(out_u2) 111
|
||||
112: 26(ivec2) Load 96(gs_ub2)
|
||||
113: 2 AtomicSMax 95(gs_ua2) 55 56 112
|
||||
114: 26(ivec2) Load 96(gs_ub2)
|
||||
115: 26(ivec2) AtomicUMax 95(gs_ua2) 55 56 114
|
||||
Store 99(out_u2) 115
|
||||
116: 26(ivec2) Load 96(gs_ub2)
|
||||
117: 2 AtomicSMin 95(gs_ua2) 55 56 116
|
||||
118: 26(ivec2) Load 96(gs_ub2)
|
||||
119: 26(ivec2) AtomicUMin 95(gs_ua2) 55 56 118
|
||||
Store 99(out_u2) 119
|
||||
120: 26(ivec2) Load 96(gs_ub2)
|
||||
121: 2 AtomicOr 95(gs_ua2) 55 56 120
|
||||
122: 26(ivec2) Load 96(gs_ub2)
|
||||
123: 26(ivec2) AtomicOr 95(gs_ua2) 55 56 122
|
||||
Store 99(out_u2) 123
|
||||
124: 26(ivec2) Load 96(gs_ub2)
|
||||
125: 2 AtomicXor 95(gs_ua2) 55 56 124
|
||||
126: 26(ivec2) Load 96(gs_ub2)
|
||||
127: 26(ivec2) AtomicXor 95(gs_ua2) 55 56 126
|
||||
Store 99(out_u2) 127
|
||||
ReturnValue 130
|
||||
111(out_u2): 27(ptr) Variable Function
|
||||
104: 24(fvec2) Load 29(inF0)
|
||||
105: 61(bool) All 104
|
||||
109: 26(ivec2) Load 108(gs_ub2)
|
||||
110: 2 AtomicIAdd 107(gs_ua2) 67 68 109
|
||||
112: 26(ivec2) Load 108(gs_ub2)
|
||||
113: 26(ivec2) AtomicIAdd 107(gs_ua2) 67 68 112
|
||||
Store 111(out_u2) 113
|
||||
114: 26(ivec2) Load 108(gs_ub2)
|
||||
115: 2 AtomicAnd 107(gs_ua2) 67 68 114
|
||||
116: 26(ivec2) Load 108(gs_ub2)
|
||||
117: 26(ivec2) AtomicAnd 107(gs_ua2) 67 68 116
|
||||
Store 111(out_u2) 117
|
||||
118: 26(ivec2) Load 108(gs_ub2)
|
||||
120: 26(ivec2) Load 119(gs_uc2)
|
||||
121: 26(ivec2) AtomicCompareExchange 107(gs_ua2) 67 68 68 120 118
|
||||
Store 111(out_u2) 121
|
||||
122: 26(ivec2) Load 108(gs_ub2)
|
||||
123: 26(ivec2) AtomicExchange 107(gs_ua2) 67 68 122
|
||||
Store 111(out_u2) 123
|
||||
124: 26(ivec2) Load 108(gs_ub2)
|
||||
125: 2 AtomicSMax 107(gs_ua2) 67 68 124
|
||||
126: 26(ivec2) Load 108(gs_ub2)
|
||||
127: 26(ivec2) AtomicUMax 107(gs_ua2) 67 68 126
|
||||
Store 111(out_u2) 127
|
||||
128: 26(ivec2) Load 108(gs_ub2)
|
||||
129: 2 AtomicSMin 107(gs_ua2) 67 68 128
|
||||
130: 26(ivec2) Load 108(gs_ub2)
|
||||
131: 26(ivec2) AtomicUMin 107(gs_ua2) 67 68 130
|
||||
Store 111(out_u2) 131
|
||||
132: 26(ivec2) Load 108(gs_ub2)
|
||||
133: 2 AtomicOr 107(gs_ua2) 67 68 132
|
||||
134: 26(ivec2) Load 108(gs_ub2)
|
||||
135: 26(ivec2) AtomicOr 107(gs_ua2) 67 68 134
|
||||
Store 111(out_u2) 135
|
||||
136: 26(ivec2) Load 108(gs_ub2)
|
||||
137: 2 AtomicXor 107(gs_ua2) 67 68 136
|
||||
138: 26(ivec2) Load 108(gs_ub2)
|
||||
139: 26(ivec2) AtomicXor 107(gs_ua2) 67 68 138
|
||||
Store 111(out_u2) 139
|
||||
ReturnValue 142
|
||||
FunctionEnd
|
||||
46(ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40
|
||||
41(inF0): 37(ptr) FunctionParameter
|
||||
@@ -935,45 +990,94 @@ local_size = (1, 1, 1)
|
||||
44(inU0): 39(ptr) FunctionParameter
|
||||
45(inU1): 39(ptr) FunctionParameter
|
||||
47: Label
|
||||
140(out_u3): 39(ptr) Variable Function
|
||||
133: 36(fvec3) Load 41(inF0)
|
||||
134: 49(bool) All 133
|
||||
138: 38(ivec3) Load 137(gs_ub3)
|
||||
139: 2 AtomicIAdd 136(gs_ua3) 55 56 138
|
||||
141: 38(ivec3) Load 137(gs_ub3)
|
||||
142: 38(ivec3) AtomicIAdd 136(gs_ua3) 55 56 141
|
||||
Store 140(out_u3) 142
|
||||
143: 38(ivec3) Load 137(gs_ub3)
|
||||
144: 2 AtomicAnd 136(gs_ua3) 55 56 143
|
||||
145: 38(ivec3) Load 137(gs_ub3)
|
||||
146: 38(ivec3) AtomicAnd 136(gs_ua3) 55 56 145
|
||||
Store 140(out_u3) 146
|
||||
147: 38(ivec3) Load 137(gs_ub3)
|
||||
149: 38(ivec3) Load 148(gs_uc3)
|
||||
150: 38(ivec3) AtomicCompareExchange 136(gs_ua3) 55 56 56 149 147
|
||||
Store 140(out_u3) 150
|
||||
151: 38(ivec3) Load 137(gs_ub3)
|
||||
152: 38(ivec3) AtomicExchange 136(gs_ua3) 55 56 151
|
||||
Store 140(out_u3) 152
|
||||
153: 38(ivec3) Load 137(gs_ub3)
|
||||
154: 2 AtomicSMax 136(gs_ua3) 55 56 153
|
||||
155: 38(ivec3) Load 137(gs_ub3)
|
||||
156: 38(ivec3) AtomicUMax 136(gs_ua3) 55 56 155
|
||||
Store 140(out_u3) 156
|
||||
157: 38(ivec3) Load 137(gs_ub3)
|
||||
158: 2 AtomicSMin 136(gs_ua3) 55 56 157
|
||||
159: 38(ivec3) Load 137(gs_ub3)
|
||||
160: 38(ivec3) AtomicUMin 136(gs_ua3) 55 56 159
|
||||
Store 140(out_u3) 160
|
||||
161: 38(ivec3) Load 137(gs_ub3)
|
||||
162: 2 AtomicOr 136(gs_ua3) 55 56 161
|
||||
163: 38(ivec3) Load 137(gs_ub3)
|
||||
164: 38(ivec3) AtomicOr 136(gs_ua3) 55 56 163
|
||||
Store 140(out_u3) 164
|
||||
165: 38(ivec3) Load 137(gs_ub3)
|
||||
166: 2 AtomicXor 136(gs_ua3) 55 56 165
|
||||
167: 38(ivec3) Load 137(gs_ub3)
|
||||
168: 38(ivec3) AtomicXor 136(gs_ua3) 55 56 167
|
||||
Store 140(out_u3) 168
|
||||
ReturnValue 170
|
||||
152(out_u3): 39(ptr) Variable Function
|
||||
145: 36(fvec3) Load 41(inF0)
|
||||
146: 61(bool) All 145
|
||||
150: 38(ivec3) Load 149(gs_ub3)
|
||||
151: 2 AtomicIAdd 148(gs_ua3) 67 68 150
|
||||
153: 38(ivec3) Load 149(gs_ub3)
|
||||
154: 38(ivec3) AtomicIAdd 148(gs_ua3) 67 68 153
|
||||
Store 152(out_u3) 154
|
||||
155: 38(ivec3) Load 149(gs_ub3)
|
||||
156: 2 AtomicAnd 148(gs_ua3) 67 68 155
|
||||
157: 38(ivec3) Load 149(gs_ub3)
|
||||
158: 38(ivec3) AtomicAnd 148(gs_ua3) 67 68 157
|
||||
Store 152(out_u3) 158
|
||||
159: 38(ivec3) Load 149(gs_ub3)
|
||||
161: 38(ivec3) Load 160(gs_uc3)
|
||||
162: 38(ivec3) AtomicCompareExchange 148(gs_ua3) 67 68 68 161 159
|
||||
Store 152(out_u3) 162
|
||||
163: 38(ivec3) Load 149(gs_ub3)
|
||||
164: 38(ivec3) AtomicExchange 148(gs_ua3) 67 68 163
|
||||
Store 152(out_u3) 164
|
||||
165: 38(ivec3) Load 149(gs_ub3)
|
||||
166: 2 AtomicSMax 148(gs_ua3) 67 68 165
|
||||
167: 38(ivec3) Load 149(gs_ub3)
|
||||
168: 38(ivec3) AtomicUMax 148(gs_ua3) 67 68 167
|
||||
Store 152(out_u3) 168
|
||||
169: 38(ivec3) Load 149(gs_ub3)
|
||||
170: 2 AtomicSMin 148(gs_ua3) 67 68 169
|
||||
171: 38(ivec3) Load 149(gs_ub3)
|
||||
172: 38(ivec3) AtomicUMin 148(gs_ua3) 67 68 171
|
||||
Store 152(out_u3) 172
|
||||
173: 38(ivec3) Load 149(gs_ub3)
|
||||
174: 2 AtomicOr 148(gs_ua3) 67 68 173
|
||||
175: 38(ivec3) Load 149(gs_ub3)
|
||||
176: 38(ivec3) AtomicOr 148(gs_ua3) 67 68 175
|
||||
Store 152(out_u3) 176
|
||||
177: 38(ivec3) Load 149(gs_ub3)
|
||||
178: 2 AtomicXor 148(gs_ua3) 67 68 177
|
||||
179: 38(ivec3) Load 149(gs_ub3)
|
||||
180: 38(ivec3) AtomicXor 148(gs_ua3) 67 68 179
|
||||
Store 152(out_u3) 180
|
||||
ReturnValue 182
|
||||
FunctionEnd
|
||||
58(@ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52
|
||||
53(inF0): 49(ptr) FunctionParameter
|
||||
54(inF1): 49(ptr) FunctionParameter
|
||||
55(inF2): 49(ptr) FunctionParameter
|
||||
56(inU0): 51(ptr) FunctionParameter
|
||||
57(inU1): 51(ptr) FunctionParameter
|
||||
59: Label
|
||||
192(out_u4): 51(ptr) Variable Function
|
||||
185: 48(fvec4) Load 53(inF0)
|
||||
186: 61(bool) All 185
|
||||
190: 50(ivec4) Load 189(gs_ub4)
|
||||
191: 2 AtomicIAdd 188(gs_ua4) 67 68 190
|
||||
193: 50(ivec4) Load 189(gs_ub4)
|
||||
194: 50(ivec4) AtomicIAdd 188(gs_ua4) 67 68 193
|
||||
Store 192(out_u4) 194
|
||||
195: 50(ivec4) Load 189(gs_ub4)
|
||||
196: 2 AtomicAnd 188(gs_ua4) 67 68 195
|
||||
197: 50(ivec4) Load 189(gs_ub4)
|
||||
198: 50(ivec4) AtomicAnd 188(gs_ua4) 67 68 197
|
||||
Store 192(out_u4) 198
|
||||
199: 50(ivec4) Load 189(gs_ub4)
|
||||
201: 50(ivec4) Load 200(gs_uc4)
|
||||
202: 50(ivec4) AtomicCompareExchange 188(gs_ua4) 67 68 68 201 199
|
||||
Store 192(out_u4) 202
|
||||
203: 50(ivec4) Load 189(gs_ub4)
|
||||
204: 50(ivec4) AtomicExchange 188(gs_ua4) 67 68 203
|
||||
Store 192(out_u4) 204
|
||||
205: 50(ivec4) Load 189(gs_ub4)
|
||||
206: 2 AtomicSMax 188(gs_ua4) 67 68 205
|
||||
207: 50(ivec4) Load 189(gs_ub4)
|
||||
208: 50(ivec4) AtomicUMax 188(gs_ua4) 67 68 207
|
||||
Store 192(out_u4) 208
|
||||
209: 50(ivec4) Load 189(gs_ub4)
|
||||
210: 2 AtomicSMin 188(gs_ua4) 67 68 209
|
||||
211: 50(ivec4) Load 189(gs_ub4)
|
||||
212: 50(ivec4) AtomicUMin 188(gs_ua4) 67 68 211
|
||||
Store 192(out_u4) 212
|
||||
213: 50(ivec4) Load 189(gs_ub4)
|
||||
214: 2 AtomicOr 188(gs_ua4) 67 68 213
|
||||
215: 50(ivec4) Load 189(gs_ub4)
|
||||
216: 50(ivec4) AtomicOr 188(gs_ua4) 67 68 215
|
||||
Store 192(out_u4) 216
|
||||
217: 50(ivec4) Load 189(gs_ub4)
|
||||
218: 2 AtomicXor 188(gs_ua4) 67 68 217
|
||||
219: 50(ivec4) Load 189(gs_ub4)
|
||||
220: 50(ivec4) AtomicXor 188(gs_ua4) 67 68 219
|
||||
Store 192(out_u4) 220
|
||||
ReturnValue 222
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user