
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.
303 lines
16 KiB
Plaintext
303 lines
16 KiB
Plaintext
hlsl.structbuffer.fn.frag
|
|
Shader version: 500
|
|
gl_FragCoord origin is upper left
|
|
0:? Sequence
|
|
0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint)
|
|
0:5 Function Parameters:
|
|
0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:5 'bufferOffset' ( in uint)
|
|
0:? Sequence
|
|
0:6 Branch: Return with expression
|
|
0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint)
|
|
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
|
|
0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:6 Constant:
|
|
0:6 0 (const uint)
|
|
0:6 'bufferOffset' ( in uint)
|
|
0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void)
|
|
0:10 Function Parameters:
|
|
0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:10 'sb@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:10 'bufferOffset' ( in uint)
|
|
0:10 'data' ( in 4-component vector of uint)
|
|
0:? Sequence
|
|
0:11 move second child to first child ( temp 4-component vector of uint)
|
|
0:11 indirect index ( buffer 4-component vector of uint)
|
|
0:11 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of uint)
|
|
0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:11 Constant:
|
|
0:11 0 (const uint)
|
|
0:11 'bufferOffset' ( in uint)
|
|
0:11 'data' ( in 4-component vector of uint)
|
|
0:20 Function Definition: @main(u1; ( temp 4-component vector of float)
|
|
0:20 Function Parameters:
|
|
0:20 'pos' ( in uint)
|
|
0:? Sequence
|
|
0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void)
|
|
0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:21 Constant:
|
|
0:21 2 (const uint)
|
|
0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint)
|
|
0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:21 Constant:
|
|
0:21 3 (const uint)
|
|
0:23 Branch: Return with expression
|
|
0:23 Constant:
|
|
0:23 0.000000
|
|
0:23 0.000000
|
|
0:23 0.000000
|
|
0:23 0.000000
|
|
0:20 Function Definition: main( ( temp void)
|
|
0:20 Function Parameters:
|
|
0:? Sequence
|
|
0:20 move second child to first child ( temp uint)
|
|
0:? 'pos' ( temp uint)
|
|
0:? 'pos' (layout( location=0) flat in uint)
|
|
0:20 move second child to first child ( temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
0:20 Function Call: @main(u1; ( temp 4-component vector of float)
|
|
0:? 'pos' ( temp uint)
|
|
0:? Linker Objects
|
|
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
|
|
0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 3-component vector of uint @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:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint)
|
|
0:5 Function Parameters:
|
|
0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:5 'bufferOffset' ( in uint)
|
|
0:? Sequence
|
|
0:6 Branch: Return with expression
|
|
0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint)
|
|
0:6 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint)
|
|
0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:6 Constant:
|
|
0:6 0 (const uint)
|
|
0:6 'bufferOffset' ( in uint)
|
|
0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void)
|
|
0:10 Function Parameters:
|
|
0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:10 'sb@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:10 'bufferOffset' ( in uint)
|
|
0:10 'data' ( in 4-component vector of uint)
|
|
0:? Sequence
|
|
0:11 move second child to first child ( temp 4-component vector of uint)
|
|
0:11 indirect index ( buffer 4-component vector of uint)
|
|
0:11 @data: direct index for structure ( buffer implicitly-sized array of 4-component vector of uint)
|
|
0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:11 Constant:
|
|
0:11 0 (const uint)
|
|
0:11 'bufferOffset' ( in uint)
|
|
0:11 'data' ( in 4-component vector of uint)
|
|
0:20 Function Definition: @main(u1; ( temp 4-component vector of float)
|
|
0:20 Function Parameters:
|
|
0:20 'pos' ( in uint)
|
|
0:? Sequence
|
|
0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void)
|
|
0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer int @count})
|
|
0:21 Constant:
|
|
0:21 2 (const uint)
|
|
0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint)
|
|
0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:21 Constant:
|
|
0:21 3 (const uint)
|
|
0:23 Branch: Return with expression
|
|
0:23 Constant:
|
|
0:23 0.000000
|
|
0:23 0.000000
|
|
0:23 0.000000
|
|
0:23 0.000000
|
|
0:20 Function Definition: main( ( temp void)
|
|
0:20 Function Parameters:
|
|
0:? Sequence
|
|
0:20 move second child to first child ( temp uint)
|
|
0:? 'pos' ( temp uint)
|
|
0:? 'pos' (layout( location=0) flat in uint)
|
|
0:20 move second child to first child ( temp 4-component vector of float)
|
|
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
|
|
0:20 Function Call: @main(u1; ( temp 4-component vector of float)
|
|
0:? 'pos' ( temp uint)
|
|
0:? Linker Objects
|
|
0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of uint @data})
|
|
0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
|
|
0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of 3-component vector of uint @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 83
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 68 71
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source HLSL 500
|
|
Name 4 "main"
|
|
Name 9 ""
|
|
MemberName 9 0 "@data"
|
|
Name 15 "get(block--vu4[0]1;u1;"
|
|
Name 13 "sb"
|
|
Name 14 "bufferOffset"
|
|
Name 18 ""
|
|
MemberName 18 0 "@data"
|
|
Name 21 ""
|
|
MemberName 21 0 "@count"
|
|
Name 29 "set(block--vu4[0]1;u1;vu4;"
|
|
Name 25 "sb"
|
|
Name 26 "sb@count"
|
|
Name 27 "bufferOffset"
|
|
Name 28 "data"
|
|
Name 35 "@main(u1;"
|
|
Name 34 "pos"
|
|
Name 47 "sbuf2"
|
|
Name 49 "sbuf2@count"
|
|
Name 52 "sbuf"
|
|
Name 54 "param"
|
|
Name 55 "param"
|
|
Name 57 "param"
|
|
Name 58 "param"
|
|
Name 59 "param"
|
|
Name 60 "param"
|
|
Name 66 "pos"
|
|
Name 68 "pos"
|
|
Name 71 "@entryPointOutput"
|
|
Name 72 "param"
|
|
Name 75 "sbuf2@count"
|
|
MemberName 75(sbuf2@count) 0 "@count"
|
|
Name 77 "sbuf2@count"
|
|
Name 80 "sbuf3"
|
|
MemberName 80(sbuf3) 0 "@data"
|
|
Name 82 "sbuf3"
|
|
Decorate 8 ArrayStride 16
|
|
MemberDecorate 9 0 NonWritable
|
|
MemberDecorate 9 0 Offset 0
|
|
Decorate 9 BufferBlock
|
|
Decorate 13(sb) NonWritable
|
|
Decorate 17 ArrayStride 16
|
|
MemberDecorate 18 0 Offset 0
|
|
Decorate 18 BufferBlock
|
|
Decorate 21 BufferBlock
|
|
Decorate 47(sbuf2) DescriptorSet 0
|
|
Decorate 49(sbuf2@count) DescriptorSet 0
|
|
Decorate 52(sbuf) DescriptorSet 0
|
|
Decorate 52(sbuf) Binding 10
|
|
Decorate 68(pos) Flat
|
|
Decorate 68(pos) Location 0
|
|
Decorate 71(@entryPointOutput) Location 0
|
|
MemberDecorate 75(sbuf2@count) 0 Offset 0
|
|
Decorate 75(sbuf2@count) BufferBlock
|
|
Decorate 77(sbuf2@count) DescriptorSet 0
|
|
Decorate 79 ArrayStride 16
|
|
MemberDecorate 80(sbuf3) 0 NonWritable
|
|
MemberDecorate 80(sbuf3) 0 Offset 0
|
|
Decorate 80(sbuf3) BufferBlock
|
|
Decorate 82(sbuf3) DescriptorSet 0
|
|
Decorate 82(sbuf3) Binding 12
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 0
|
|
7: TypeVector 6(int) 4
|
|
8: TypeRuntimeArray 7(ivec4)
|
|
9: TypeStruct 8
|
|
10: TypePointer Function 9(struct)
|
|
11: TypePointer Function 6(int)
|
|
12: TypeFunction 7(ivec4) 10(ptr) 11(ptr)
|
|
17: TypeRuntimeArray 7(ivec4)
|
|
18: TypeStruct 17
|
|
19: TypePointer Function 18(struct)
|
|
20: TypeInt 32 1
|
|
21: TypeStruct 20(int)
|
|
22: TypePointer Function 21(struct)
|
|
23: TypePointer Function 7(ivec4)
|
|
24: TypeFunction 2 19(ptr) 22(ptr) 11(ptr) 23(ptr)
|
|
31: TypeFloat 32
|
|
32: TypeVector 31(float) 4
|
|
33: TypeFunction 32(fvec4) 11(ptr)
|
|
37: 20(int) Constant 0
|
|
46: TypePointer Uniform 18(struct)
|
|
47(sbuf2): 46(ptr) Variable Uniform
|
|
48: TypePointer Uniform 21(struct)
|
|
49(sbuf2@count): 48(ptr) Variable Uniform
|
|
50: 6(int) Constant 2
|
|
51: TypePointer Uniform 9(struct)
|
|
52(sbuf): 51(ptr) Variable Uniform
|
|
53: 6(int) Constant 3
|
|
62: 31(float) Constant 0
|
|
63: 32(fvec4) ConstantComposite 62 62 62 62
|
|
67: TypePointer Input 6(int)
|
|
68(pos): 67(ptr) Variable Input
|
|
70: TypePointer Output 32(fvec4)
|
|
71(@entryPointOutput): 70(ptr) Variable Output
|
|
75(sbuf2@count): TypeStruct 20(int)
|
|
76: TypePointer Uniform 75(sbuf2@count)
|
|
77(sbuf2@count): 76(ptr) Variable Uniform
|
|
78: TypeVector 6(int) 3
|
|
79: TypeRuntimeArray 78(ivec3)
|
|
80(sbuf3): TypeStruct 79
|
|
81: TypePointer Uniform 80(sbuf3)
|
|
82(sbuf3): 81(ptr) Variable Uniform
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
66(pos): 11(ptr) Variable Function
|
|
72(param): 11(ptr) Variable Function
|
|
69: 6(int) Load 68(pos)
|
|
Store 66(pos) 69
|
|
73: 6(int) Load 66(pos)
|
|
Store 72(param) 73
|
|
74: 32(fvec4) FunctionCall 35(@main(u1;) 72(param)
|
|
Store 71(@entryPointOutput) 74
|
|
Return
|
|
FunctionEnd
|
|
15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12
|
|
13(sb): 10(ptr) FunctionParameter
|
|
14(bufferOffset): 11(ptr) FunctionParameter
|
|
16: Label
|
|
38: 6(int) Load 14(bufferOffset)
|
|
39: 23(ptr) AccessChain 13(sb) 37 38
|
|
40: 7(ivec4) Load 39
|
|
ReturnValue 40
|
|
FunctionEnd
|
|
29(set(block--vu4[0]1;u1;vu4;): 2 Function None 24
|
|
25(sb): 19(ptr) FunctionParameter
|
|
26(sb@count): 22(ptr) FunctionParameter
|
|
27(bufferOffset): 11(ptr) FunctionParameter
|
|
28(data): 23(ptr) FunctionParameter
|
|
30: Label
|
|
43: 6(int) Load 27(bufferOffset)
|
|
44: 7(ivec4) Load 28(data)
|
|
45: 23(ptr) AccessChain 25(sb) 37 43
|
|
Store 45 44
|
|
Return
|
|
FunctionEnd
|
|
35(@main(u1;): 32(fvec4) Function None 33
|
|
34(pos): 11(ptr) FunctionParameter
|
|
36: Label
|
|
54(param): 10(ptr) Variable Function
|
|
55(param): 11(ptr) Variable Function
|
|
57(param): 19(ptr) Variable Function
|
|
58(param): 22(ptr) Variable Function
|
|
59(param): 11(ptr) Variable Function
|
|
60(param): 23(ptr) Variable Function
|
|
Store 55(param) 53
|
|
56: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 54(param) 55(param)
|
|
Store 59(param) 50
|
|
Store 60(param) 56
|
|
61: 2 FunctionCall 29(set(block--vu4[0]1;u1;vu4;) 57(param) 58(param) 59(param) 60(param)
|
|
ReturnValue 63
|
|
FunctionEnd
|