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:
John Kessenich 2017-01-19 15:41:47 -07:00
parent 18adbdbbb8
commit 02467d8d94
171 changed files with 37604 additions and 32679 deletions

View file

@ -2,7 +2,7 @@ hlsl.load.rwtexture.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Function Definition: @main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Function Parameters:
0:? Sequence
0:44 imageLoad (temp 4-component vector of float)
@ -76,24 +76,28 @@ gl_FragCoord origin is upper left
0:59 1 (const int)
0:59 Constant:
0:59 1.000000
0:61 Sequence
0:61 Sequence
0:61 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:61 Color: direct index for structure (temp 4-component vector of float)
0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:61 Constant:
0:61 0 (const int)
0:61 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:61 Depth: direct index for structure (temp float)
0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:61 Constant:
0:61 1 (const int)
0:61 Branch: Return
0:61 Branch: Return with expression
0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Function Definition: main( (temp void)
0:40 Function Parameters:
0:? Sequence
0:40 Sequence
0:40 move second child to first child (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Function Call: @main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:40 Color: direct index for structure (temp 4-component vector of float)
0:40 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 0 (const int)
0:40 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:40 Depth: direct index for structure (temp float)
0:40 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 1 (const int)
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@ -110,6 +114,8 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@ -119,7 +125,7 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Function Definition: @main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Function Parameters:
0:? Sequence
0:44 imageLoad (temp 4-component vector of float)
@ -193,24 +199,28 @@ gl_FragCoord origin is upper left
0:59 1 (const int)
0:59 Constant:
0:59 1.000000
0:61 Sequence
0:61 Sequence
0:61 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:61 Color: direct index for structure (temp 4-component vector of float)
0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:61 Constant:
0:61 0 (const int)
0:61 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:61 Depth: direct index for structure (temp float)
0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:61 Constant:
0:61 1 (const int)
0:61 Branch: Return
0:61 Branch: Return with expression
0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Function Definition: main( (temp void)
0:40 Function Parameters:
0:? Sequence
0:40 Sequence
0:40 move second child to first child (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Function Call: @main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:40 Color: direct index for structure (temp 4-component vector of float)
0:40 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 0 (const int)
0:40 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:40 Depth: direct index for structure (temp float)
0:40 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:40 Constant:
0:40 1 (const int)
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@ -227,206 +237,219 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'Depth' (out float FragDepth)
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 125
// Id's are bound by 132
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 96 100
EntryPoint Fragment 4 "main" 104 108
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 9 "g_tTex1df4"
Name 15 "$Global"
MemberName 15($Global) 0 "c1"
MemberName 15($Global) 1 "c2"
MemberName 15($Global) 2 "c3"
MemberName 15($Global) 3 "c4"
MemberName 15($Global) 4 "o1"
MemberName 15($Global) 5 "o2"
MemberName 15($Global) 6 "o3"
MemberName 15($Global) 7 "o4"
Name 17 ""
Name 26 "g_tTex1di4"
Name 34 "g_tTex1du4"
Name 42 "g_tTex2df4"
Name 51 "g_tTex2di4"
Name 58 "g_tTex2du4"
Name 65 "g_tTex3df4"
Name 74 "g_tTex3di4"
Name 81 "g_tTex3du4"
Name 86 "PS_OUTPUT"
MemberName 86(PS_OUTPUT) 0 "Color"
MemberName 86(PS_OUTPUT) 1 "Depth"
Name 88 "psout"
Name 96 "Color"
Name 100 "Depth"
Name 106 "g_sSamp"
Name 109 "g_tTex1df4a"
Name 112 "g_tTex1di4a"
Name 115 "g_tTex1du4a"
Name 118 "g_tTex2df4a"
Name 121 "g_tTex2di4a"
Name 124 "g_tTex2du4a"
Decorate 9(g_tTex1df4) DescriptorSet 0
Decorate 9(g_tTex1df4) Binding 0
MemberDecorate 15($Global) 0 Offset 0
MemberDecorate 15($Global) 1 Offset 8
MemberDecorate 15($Global) 2 Offset 16
MemberDecorate 15($Global) 3 Offset 32
MemberDecorate 15($Global) 4 Offset 48
MemberDecorate 15($Global) 5 Offset 56
MemberDecorate 15($Global) 6 Offset 64
MemberDecorate 15($Global) 7 Offset 80
Decorate 15($Global) Block
Decorate 17 DescriptorSet 0
Decorate 26(g_tTex1di4) DescriptorSet 0
Decorate 34(g_tTex1du4) DescriptorSet 0
Decorate 42(g_tTex2df4) DescriptorSet 0
Decorate 51(g_tTex2di4) DescriptorSet 0
Decorate 58(g_tTex2du4) DescriptorSet 0
Decorate 65(g_tTex3df4) DescriptorSet 0
Decorate 74(g_tTex3di4) DescriptorSet 0
Decorate 81(g_tTex3du4) DescriptorSet 0
Decorate 96(Color) Location 0
Decorate 100(Depth) BuiltIn FragDepth
Decorate 106(g_sSamp) DescriptorSet 0
Decorate 106(g_sSamp) Binding 0
Decorate 109(g_tTex1df4a) DescriptorSet 0
Decorate 112(g_tTex1di4a) DescriptorSet 0
Decorate 115(g_tTex1du4a) DescriptorSet 0
Decorate 118(g_tTex2df4a) DescriptorSet 0
Decorate 121(g_tTex2di4a) DescriptorSet 0
Decorate 124(g_tTex2du4a) DescriptorSet 0
Name 8 "PS_OUTPUT"
MemberName 8(PS_OUTPUT) 0 "Color"
MemberName 8(PS_OUTPUT) 1 "Depth"
Name 10 "@main("
Name 14 "g_tTex1df4"
Name 20 "$Global"
MemberName 20($Global) 0 "c1"
MemberName 20($Global) 1 "c2"
MemberName 20($Global) 2 "c3"
MemberName 20($Global) 3 "c4"
MemberName 20($Global) 4 "o1"
MemberName 20($Global) 5 "o2"
MemberName 20($Global) 6 "o3"
MemberName 20($Global) 7 "o4"
Name 22 ""
Name 30 "g_tTex1di4"
Name 38 "g_tTex1du4"
Name 46 "g_tTex2df4"
Name 55 "g_tTex2di4"
Name 62 "g_tTex2du4"
Name 69 "g_tTex3df4"
Name 78 "g_tTex3di4"
Name 85 "g_tTex3du4"
Name 91 "psout"
Name 101 "flattenTemp"
Name 104 "Color"
Name 108 "Depth"
Name 113 "g_sSamp"
Name 116 "g_tTex1df4a"
Name 119 "g_tTex1di4a"
Name 122 "g_tTex1du4a"
Name 125 "g_tTex2df4a"
Name 128 "g_tTex2di4a"
Name 131 "g_tTex2du4a"
Decorate 14(g_tTex1df4) DescriptorSet 0
Decorate 14(g_tTex1df4) Binding 0
MemberDecorate 20($Global) 0 Offset 0
MemberDecorate 20($Global) 1 Offset 8
MemberDecorate 20($Global) 2 Offset 16
MemberDecorate 20($Global) 3 Offset 32
MemberDecorate 20($Global) 4 Offset 48
MemberDecorate 20($Global) 5 Offset 56
MemberDecorate 20($Global) 6 Offset 64
MemberDecorate 20($Global) 7 Offset 80
Decorate 20($Global) Block
Decorate 22 DescriptorSet 0
Decorate 30(g_tTex1di4) DescriptorSet 0
Decorate 38(g_tTex1du4) DescriptorSet 0
Decorate 46(g_tTex2df4) DescriptorSet 0
Decorate 55(g_tTex2di4) DescriptorSet 0
Decorate 62(g_tTex2du4) DescriptorSet 0
Decorate 69(g_tTex3df4) DescriptorSet 0
Decorate 78(g_tTex3di4) DescriptorSet 0
Decorate 85(g_tTex3du4) DescriptorSet 0
Decorate 104(Color) Location 0
Decorate 108(Depth) BuiltIn FragDepth
Decorate 113(g_sSamp) DescriptorSet 0
Decorate 113(g_sSamp) Binding 0
Decorate 116(g_tTex1df4a) DescriptorSet 0
Decorate 119(g_tTex1di4a) DescriptorSet 0
Decorate 122(g_tTex1du4a) DescriptorSet 0
Decorate 125(g_tTex2df4a) DescriptorSet 0
Decorate 128(g_tTex2di4a) DescriptorSet 0
Decorate 131(g_tTex2du4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeImage 6(float) 1D nonsampled format:Rgba32f
8: TypePointer UniformConstant 7
9(g_tTex1df4): 8(ptr) Variable UniformConstant
11: TypeInt 32 1
12: TypeVector 11(int) 2
13: TypeVector 11(int) 3
14: TypeVector 11(int) 4
15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4)
16: TypePointer Uniform 15($Global)
17: 16(ptr) Variable Uniform
18: 11(int) Constant 0
19: TypePointer Uniform 11(int)
22: TypeVector 6(float) 4
24: TypeImage 11(int) 1D nonsampled format:Rgba32i
25: TypePointer UniformConstant 24
26(g_tTex1di4): 25(ptr) Variable UniformConstant
31: TypeInt 32 0
32: TypeImage 31(int) 1D nonsampled format:Rgba32ui
33: TypePointer UniformConstant 32
34(g_tTex1du4): 33(ptr) Variable UniformConstant
38: TypeVector 31(int) 4
40: TypeImage 6(float) 2D nonsampled format:Rgba32f
41: TypePointer UniformConstant 40
42(g_tTex2df4): 41(ptr) Variable UniformConstant
44: 11(int) Constant 1
45: TypePointer Uniform 12(ivec2)
49: TypeImage 11(int) 2D nonsampled format:Rgba32i
50: TypePointer UniformConstant 49
51(g_tTex2di4): 50(ptr) Variable UniformConstant
56: TypeImage 31(int) 2D nonsampled format:Rgba32ui
57: TypePointer UniformConstant 56
58(g_tTex2du4): 57(ptr) Variable UniformConstant
63: TypeImage 6(float) 3D nonsampled format:Rgba32f
64: TypePointer UniformConstant 63
65(g_tTex3df4): 64(ptr) Variable UniformConstant
67: 11(int) Constant 2
68: TypePointer Uniform 13(ivec3)
72: TypeImage 11(int) 3D nonsampled format:Rgba32i
73: TypePointer UniformConstant 72
74(g_tTex3di4): 73(ptr) Variable UniformConstant
79: TypeImage 31(int) 3D nonsampled format:Rgba32ui
80: TypePointer UniformConstant 79
81(g_tTex3du4): 80(ptr) Variable UniformConstant
86(PS_OUTPUT): TypeStruct 22(fvec4) 6(float)
87: TypePointer Function 86(PS_OUTPUT)
89: 6(float) Constant 1065353216
90: 22(fvec4) ConstantComposite 89 89 89 89
91: TypePointer Function 22(fvec4)
93: TypePointer Function 6(float)
95: TypePointer Output 22(fvec4)
96(Color): 95(ptr) Variable Output
99: TypePointer Output 6(float)
100(Depth): 99(ptr) Variable Output
104: TypeSampler
105: TypePointer UniformConstant 104
106(g_sSamp): 105(ptr) Variable UniformConstant
107: TypeImage 6(float) 1D array nonsampled format:Rgba32f
108: TypePointer UniformConstant 107
109(g_tTex1df4a): 108(ptr) Variable UniformConstant
110: TypeImage 11(int) 1D array nonsampled format:Rgba32i
111: TypePointer UniformConstant 110
112(g_tTex1di4a): 111(ptr) Variable UniformConstant
113: TypeImage 31(int) 1D array nonsampled format:Rgba32ui
114: TypePointer UniformConstant 113
115(g_tTex1du4a): 114(ptr) Variable UniformConstant
116: TypeImage 6(float) 2D array nonsampled format:Rgba32f
117: TypePointer UniformConstant 116
118(g_tTex2df4a): 117(ptr) Variable UniformConstant
119: TypeImage 11(int) 2D array nonsampled format:Rgba32i
120: TypePointer UniformConstant 119
121(g_tTex2di4a): 120(ptr) Variable UniformConstant
122: TypeImage 31(int) 2D array nonsampled format:Rgba32ui
123: TypePointer UniformConstant 122
124(g_tTex2du4a): 123(ptr) Variable UniformConstant
7: TypeVector 6(float) 4
8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
9: TypeFunction 8(PS_OUTPUT)
12: TypeImage 6(float) 1D nonsampled format:Rgba32f
13: TypePointer UniformConstant 12
14(g_tTex1df4): 13(ptr) Variable UniformConstant
16: TypeInt 32 1
17: TypeVector 16(int) 2
18: TypeVector 16(int) 3
19: TypeVector 16(int) 4
20($Global): TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4)
21: TypePointer Uniform 20($Global)
22: 21(ptr) Variable Uniform
23: 16(int) Constant 0
24: TypePointer Uniform 16(int)
28: TypeImage 16(int) 1D nonsampled format:Rgba32i
29: TypePointer UniformConstant 28
30(g_tTex1di4): 29(ptr) Variable UniformConstant
35: TypeInt 32 0
36: TypeImage 35(int) 1D nonsampled format:Rgba32ui
37: TypePointer UniformConstant 36
38(g_tTex1du4): 37(ptr) Variable UniformConstant
42: TypeVector 35(int) 4
44: TypeImage 6(float) 2D nonsampled format:Rgba32f
45: TypePointer UniformConstant 44
46(g_tTex2df4): 45(ptr) Variable UniformConstant
48: 16(int) Constant 1
49: TypePointer Uniform 17(ivec2)
53: TypeImage 16(int) 2D nonsampled format:Rgba32i
54: TypePointer UniformConstant 53
55(g_tTex2di4): 54(ptr) Variable UniformConstant
60: TypeImage 35(int) 2D nonsampled format:Rgba32ui
61: TypePointer UniformConstant 60
62(g_tTex2du4): 61(ptr) Variable UniformConstant
67: TypeImage 6(float) 3D nonsampled format:Rgba32f
68: TypePointer UniformConstant 67
69(g_tTex3df4): 68(ptr) Variable UniformConstant
71: 16(int) Constant 2
72: TypePointer Uniform 18(ivec3)
76: TypeImage 16(int) 3D nonsampled format:Rgba32i
77: TypePointer UniformConstant 76
78(g_tTex3di4): 77(ptr) Variable UniformConstant
83: TypeImage 35(int) 3D nonsampled format:Rgba32ui
84: TypePointer UniformConstant 83
85(g_tTex3du4): 84(ptr) Variable UniformConstant
90: TypePointer Function 8(PS_OUTPUT)
92: 6(float) Constant 1065353216
93: 7(fvec4) ConstantComposite 92 92 92 92
94: TypePointer Function 7(fvec4)
96: TypePointer Function 6(float)
103: TypePointer Output 7(fvec4)
104(Color): 103(ptr) Variable Output
107: TypePointer Output 6(float)
108(Depth): 107(ptr) Variable Output
111: TypeSampler
112: TypePointer UniformConstant 111
113(g_sSamp): 112(ptr) Variable UniformConstant
114: TypeImage 6(float) 1D array nonsampled format:Rgba32f
115: TypePointer UniformConstant 114
116(g_tTex1df4a): 115(ptr) Variable UniformConstant
117: TypeImage 16(int) 1D array nonsampled format:Rgba32i
118: TypePointer UniformConstant 117
119(g_tTex1di4a): 118(ptr) Variable UniformConstant
120: TypeImage 35(int) 1D array nonsampled format:Rgba32ui
121: TypePointer UniformConstant 120
122(g_tTex1du4a): 121(ptr) Variable UniformConstant
123: TypeImage 6(float) 2D array nonsampled format:Rgba32f
124: TypePointer UniformConstant 123
125(g_tTex2df4a): 124(ptr) Variable UniformConstant
126: TypeImage 16(int) 2D array nonsampled format:Rgba32i
127: TypePointer UniformConstant 126
128(g_tTex2di4a): 127(ptr) Variable UniformConstant
129: TypeImage 35(int) 2D array nonsampled format:Rgba32ui
130: TypePointer UniformConstant 129
131(g_tTex2du4a): 130(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
88(psout): 87(ptr) Variable Function
10: 7 Load 9(g_tTex1df4)
20: 19(ptr) AccessChain 17 18
21: 11(int) Load 20
23: 22(fvec4) ImageRead 10 21
27: 24 Load 26(g_tTex1di4)
28: 19(ptr) AccessChain 17 18
29: 11(int) Load 28
30: 14(ivec4) ImageRead 27 29
35: 32 Load 34(g_tTex1du4)
36: 19(ptr) AccessChain 17 18
37: 11(int) Load 36
39: 38(ivec4) ImageRead 35 37
43: 40 Load 42(g_tTex2df4)
46: 45(ptr) AccessChain 17 44
47: 12(ivec2) Load 46
48: 22(fvec4) ImageRead 43 47
52: 49 Load 51(g_tTex2di4)
53: 45(ptr) AccessChain 17 44
54: 12(ivec2) Load 53
55: 14(ivec4) ImageRead 52 54
59: 56 Load 58(g_tTex2du4)
60: 45(ptr) AccessChain 17 44
61: 12(ivec2) Load 60
62: 38(ivec4) ImageRead 59 61
66: 63 Load 65(g_tTex3df4)
69: 68(ptr) AccessChain 17 67
70: 13(ivec3) Load 69
71: 22(fvec4) ImageRead 66 70
75: 72 Load 74(g_tTex3di4)
76: 68(ptr) AccessChain 17 67
77: 13(ivec3) Load 76
78: 14(ivec4) ImageRead 75 77
82: 79 Load 81(g_tTex3du4)
83: 68(ptr) AccessChain 17 67
84: 13(ivec3) Load 83
85: 38(ivec4) ImageRead 82 84
92: 91(ptr) AccessChain 88(psout) 18
Store 92 90
94: 93(ptr) AccessChain 88(psout) 44
Store 94 89
97: 91(ptr) AccessChain 88(psout) 18
98: 22(fvec4) Load 97
Store 96(Color) 98
101: 93(ptr) AccessChain 88(psout) 44
102: 6(float) Load 101
Store 100(Depth) 102
101(flattenTemp): 90(ptr) Variable Function
102:8(PS_OUTPUT) FunctionCall 10(@main()
Store 101(flattenTemp) 102
105: 94(ptr) AccessChain 101(flattenTemp) 23
106: 7(fvec4) Load 105
Store 104(Color) 106
109: 96(ptr) AccessChain 101(flattenTemp) 48
110: 6(float) Load 109
Store 108(Depth) 110
Return
FunctionEnd
10(@main():8(PS_OUTPUT) Function None 9
11: Label
91(psout): 90(ptr) Variable Function
15: 12 Load 14(g_tTex1df4)
25: 24(ptr) AccessChain 22 23
26: 16(int) Load 25
27: 7(fvec4) ImageRead 15 26
31: 28 Load 30(g_tTex1di4)
32: 24(ptr) AccessChain 22 23
33: 16(int) Load 32
34: 19(ivec4) ImageRead 31 33
39: 36 Load 38(g_tTex1du4)
40: 24(ptr) AccessChain 22 23
41: 16(int) Load 40
43: 42(ivec4) ImageRead 39 41
47: 44 Load 46(g_tTex2df4)
50: 49(ptr) AccessChain 22 48
51: 17(ivec2) Load 50
52: 7(fvec4) ImageRead 47 51
56: 53 Load 55(g_tTex2di4)
57: 49(ptr) AccessChain 22 48
58: 17(ivec2) Load 57
59: 19(ivec4) ImageRead 56 58
63: 60 Load 62(g_tTex2du4)
64: 49(ptr) AccessChain 22 48
65: 17(ivec2) Load 64
66: 42(ivec4) ImageRead 63 65
70: 67 Load 69(g_tTex3df4)
73: 72(ptr) AccessChain 22 71
74: 18(ivec3) Load 73
75: 7(fvec4) ImageRead 70 74
79: 76 Load 78(g_tTex3di4)
80: 72(ptr) AccessChain 22 71
81: 18(ivec3) Load 80
82: 19(ivec4) ImageRead 79 81
86: 83 Load 85(g_tTex3du4)
87: 72(ptr) AccessChain 22 71
88: 18(ivec3) Load 87
89: 42(ivec4) ImageRead 86 88
95: 94(ptr) AccessChain 91(psout) 23
Store 95 93
97: 96(ptr) AccessChain 91(psout) 48
Store 97 92
98:8(PS_OUTPUT) Load 91(psout)
ReturnValue 98
FunctionEnd