
Also, remove assumption that if something is opaque that it must be in the UniformConstant storage class. This allows function declarations to know all parameters will be in the Function storage class.
287 lines
16 KiB
Plaintext
287 lines
16 KiB
Plaintext
hlsl.structbuffer.append.fn.frag
|
|
Shader version: 500
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float)
|
|
0:8 Function Parameters:
|
|
0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:? Sequence
|
|
0:9 move second child to first child ( temp 4-component vector of float)
|
|
0:9 indirect index ( buffer 4-component vector of float)
|
|
0:9 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of float)
|
|
0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:9 Constant:
|
|
0:9 0 (const uint)
|
|
0:9 AtomicAdd ( temp uint)
|
|
0:9 @count: direct index for structure ( temp int)
|
|
0:9 'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:9 Constant:
|
|
0:9 0 (const int)
|
|
0:9 Constant:
|
|
0:9 1 (const int)
|
|
0:? Constant:
|
|
0:? 1.000000
|
|
0:? 2.000000
|
|
0:? 3.000000
|
|
0:? 4.000000
|
|
0:10 Branch: Return with expression
|
|
0:10 indirect index ( buffer 4-component vector of float)
|
|
0:10 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of float)
|
|
0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:10 Constant:
|
|
0:10 0 (const uint)
|
|
0:10 add ( temp uint)
|
|
0:10 AtomicAdd ( temp uint)
|
|
0:10 @count: direct index for structure ( temp int)
|
|
0:10 'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:10 Constant:
|
|
0:10 0 (const int)
|
|
0:10 Constant:
|
|
0:10 -1 (const int)
|
|
0:10 Constant:
|
|
0:10 -1 (const int)
|
|
0:19 Function Definition: @main(u1; ( temp 4-component vector of float)
|
|
0:19 Function Parameters:
|
|
0:19 'pos' ( in uint)
|
|
0:? Sequence
|
|
0:22 Branch: Return with expression
|
|
0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float)
|
|
0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:19 Function Definition: main( ( temp void)
|
|
0:19 Function Parameters:
|
|
0:? Sequence
|
|
0:19 move second child to first child ( temp uint)
|
|
0:? 'pos' ( temp uint)
|
|
0:? 'pos' (layout( location=0) flat in uint)
|
|
0:19 move second child to first child ( temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
0:19 Function Call: @main(u1; ( temp 4-component vector of float)
|
|
0:? 'pos' ( temp uint)
|
|
0:? Linker Objects
|
|
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
|
|
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
|
|
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
0:? 'pos' (layout( location=0) flat in uint)
|
|
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
Shader version: 500
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:8 Function Definition: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float)
|
|
0:8 Function Parameters:
|
|
0:8 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:8 'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:8 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:8 'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:? Sequence
|
|
0:9 move second child to first child ( temp 4-component vector of float)
|
|
0:9 indirect index ( buffer 4-component vector of float)
|
|
0:9 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of float)
|
|
0:9 'arg_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:9 Constant:
|
|
0:9 0 (const uint)
|
|
0:9 AtomicAdd ( temp uint)
|
|
0:9 @count: direct index for structure ( temp int)
|
|
0:9 'arg_a@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:9 Constant:
|
|
0:9 0 (const int)
|
|
0:9 Constant:
|
|
0:9 1 (const int)
|
|
0:? Constant:
|
|
0:? 1.000000
|
|
0:? 2.000000
|
|
0:? 3.000000
|
|
0:? 4.000000
|
|
0:10 Branch: Return with expression
|
|
0:10 indirect index ( buffer 4-component vector of float)
|
|
0:10 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of float)
|
|
0:10 'arg_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:10 Constant:
|
|
0:10 0 (const uint)
|
|
0:10 add ( temp uint)
|
|
0:10 AtomicAdd ( temp uint)
|
|
0:10 @count: direct index for structure ( temp int)
|
|
0:10 'arg_c@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:10 Constant:
|
|
0:10 0 (const int)
|
|
0:10 Constant:
|
|
0:10 -1 (const int)
|
|
0:10 Constant:
|
|
0:10 -1 (const int)
|
|
0:19 Function Definition: @main(u1; ( temp 4-component vector of float)
|
|
0:19 Function Parameters:
|
|
0:19 'pos' ( in uint)
|
|
0:? Sequence
|
|
0:22 Branch: Return with expression
|
|
0:22 Function Call: Fn2(block--vf4[0]1;block--vf4[0]1; ( temp 4-component vector of float)
|
|
0:22 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:22 'sbuf_a@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:22 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:22 'sbuf_c@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:19 Function Definition: main( ( temp void)
|
|
0:19 Function Parameters:
|
|
0:? Sequence
|
|
0:19 move second child to first child ( temp uint)
|
|
0:? 'pos' ( temp uint)
|
|
0:? 'pos' (layout( location=0) flat in uint)
|
|
0:19 move second child to first child ( temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
0:19 Function Call: @main(u1; ( temp 4-component vector of float)
|
|
0:? 'pos' ( temp uint)
|
|
0:? Linker Objects
|
|
0:? 'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:? 'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
|
|
0:? 'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:? 'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
|
|
0:? 'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
0:? 'pos' (layout( location=0) flat in uint)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 76
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 64 67
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source HLSL 500
|
|
Name 4 "main"
|
|
Name 9 ""
|
|
MemberName 9 0 "@data"
|
|
Name 12 ""
|
|
MemberName 12 0 "@count"
|
|
Name 19 "Fn2(block--vf4[0]1;block--vf4[0]1;"
|
|
Name 15 "arg_a"
|
|
Name 16 "arg_a@count"
|
|
Name 17 "arg_c"
|
|
Name 18 "arg_c@count"
|
|
Name 25 "@main(u1;"
|
|
Name 24 "pos"
|
|
Name 50 "sbuf_a"
|
|
Name 52 "sbuf_a@count"
|
|
Name 53 "sbuf_c"
|
|
Name 54 "sbuf_c@count"
|
|
Name 55 "param"
|
|
Name 56 "param"
|
|
Name 57 "param"
|
|
Name 58 "param"
|
|
Name 62 "pos"
|
|
Name 64 "pos"
|
|
Name 67 "@entryPointOutput"
|
|
Name 68 "param"
|
|
Name 71 "sbuf_a@count"
|
|
MemberName 71(sbuf_a@count) 0 "@count"
|
|
Name 73 "sbuf_a@count"
|
|
Name 74 "sbuf_c@count"
|
|
Name 75 "sbuf_unused"
|
|
Decorate 8 ArrayStride 16
|
|
MemberDecorate 9 0 Offset 0
|
|
Decorate 9 BufferBlock
|
|
Decorate 12 BufferBlock
|
|
Decorate 50(sbuf_a) DescriptorSet 0
|
|
Decorate 52(sbuf_a@count) DescriptorSet 0
|
|
Decorate 53(sbuf_c) DescriptorSet 0
|
|
Decorate 54(sbuf_c@count) DescriptorSet 0
|
|
Decorate 64(pos) Flat
|
|
Decorate 64(pos) Location 0
|
|
Decorate 67(@entryPointOutput) Location 0
|
|
MemberDecorate 71(sbuf_a@count) 0 Offset 0
|
|
Decorate 71(sbuf_a@count) BufferBlock
|
|
Decorate 73(sbuf_a@count) DescriptorSet 0
|
|
Decorate 74(sbuf_c@count) DescriptorSet 0
|
|
Decorate 75(sbuf_unused) DescriptorSet 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypeRuntimeArray 7(fvec4)
|
|
9: TypeStruct 8
|
|
10: TypePointer Function 9(struct)
|
|
11: TypeInt 32 1
|
|
12: TypeStruct 11(int)
|
|
13: TypePointer Function 12(struct)
|
|
14: TypeFunction 7(fvec4) 10(ptr) 13(ptr) 10(ptr) 13(ptr)
|
|
21: TypeInt 32 0
|
|
22: TypePointer Function 21(int)
|
|
23: TypeFunction 7(fvec4) 22(ptr)
|
|
27: 11(int) Constant 0
|
|
28: TypePointer Function 11(int)
|
|
30: 11(int) Constant 1
|
|
31: 21(int) Constant 1
|
|
32: 21(int) Constant 0
|
|
34: 6(float) Constant 1065353216
|
|
35: 6(float) Constant 1073741824
|
|
36: 6(float) Constant 1077936128
|
|
37: 6(float) Constant 1082130432
|
|
38: 7(fvec4) ConstantComposite 34 35 36 37
|
|
39: TypePointer Function 7(fvec4)
|
|
42: 11(int) Constant 4294967295
|
|
49: TypePointer Uniform 9(struct)
|
|
50(sbuf_a): 49(ptr) Variable Uniform
|
|
51: TypePointer Uniform 12(struct)
|
|
52(sbuf_a@count): 51(ptr) Variable Uniform
|
|
53(sbuf_c): 49(ptr) Variable Uniform
|
|
54(sbuf_c@count): 51(ptr) Variable Uniform
|
|
63: TypePointer Input 21(int)
|
|
64(pos): 63(ptr) Variable Input
|
|
66: TypePointer Output 7(fvec4)
|
|
67(@entryPointOutput): 66(ptr) Variable Output
|
|
71(sbuf_a@count): TypeStruct 11(int)
|
|
72: TypePointer Uniform 71(sbuf_a@count)
|
|
73(sbuf_a@count): 72(ptr) Variable Uniform
|
|
74(sbuf_c@count): 72(ptr) Variable Uniform
|
|
75(sbuf_unused): 49(ptr) Variable Uniform
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
62(pos): 22(ptr) Variable Function
|
|
68(param): 22(ptr) Variable Function
|
|
65: 21(int) Load 64(pos)
|
|
Store 62(pos) 65
|
|
69: 21(int) Load 62(pos)
|
|
Store 68(param) 69
|
|
70: 7(fvec4) FunctionCall 25(@main(u1;) 68(param)
|
|
Store 67(@entryPointOutput) 70
|
|
Return
|
|
FunctionEnd
|
|
19(Fn2(block--vf4[0]1;block--vf4[0]1;): 7(fvec4) Function None 14
|
|
15(arg_a): 10(ptr) FunctionParameter
|
|
16(arg_a@count): 13(ptr) FunctionParameter
|
|
17(arg_c): 10(ptr) FunctionParameter
|
|
18(arg_c@count): 13(ptr) FunctionParameter
|
|
20: Label
|
|
29: 28(ptr) AccessChain 16(arg_a@count) 27
|
|
33: 21(int) AtomicIAdd 29 31 32 30
|
|
40: 39(ptr) AccessChain 15(arg_a) 27 33
|
|
Store 40 38
|
|
41: 28(ptr) AccessChain 18(arg_c@count) 27
|
|
43: 21(int) AtomicIAdd 41 31 32 42
|
|
44: 21(int) IAdd 43 42
|
|
45: 39(ptr) AccessChain 17(arg_c) 27 44
|
|
46: 7(fvec4) Load 45
|
|
ReturnValue 46
|
|
FunctionEnd
|
|
25(@main(u1;): 7(fvec4) Function None 23
|
|
24(pos): 22(ptr) FunctionParameter
|
|
26: Label
|
|
55(param): 10(ptr) Variable Function
|
|
56(param): 13(ptr) Variable Function
|
|
57(param): 10(ptr) Variable Function
|
|
58(param): 13(ptr) Variable Function
|
|
59: 7(fvec4) FunctionCall 19(Fn2(block--vf4[0]1;block--vf4[0]1;) 55(param) 56(param) 57(param) 58(param)
|
|
ReturnValue 59
|
|
FunctionEnd
|