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.basic.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Function Definition: @main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Function Parameters:
0:? Sequence
0:52 textureFetch (temp 4-component vector of float)
@@ -193,24 +193,28 @@ gl_FragCoord origin is upper left
0:73 1 (const int)
0:73 Constant:
0:73 1.000000
0:75 Sequence
0:75 Sequence
0:75 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:75 Color: direct index for structure (temp 4-component vector of float)
0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:75 Constant:
0:75 0 (const int)
0:75 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:75 Depth: direct index for structure (temp float)
0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:75 Constant:
0:75 1 (const int)
0:75 Branch: Return
0:75 Branch: Return with expression
0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Function Definition: main( (temp void)
0:48 Function Parameters:
0:? Sequence
0:48 Sequence
0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Function Call: @main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:48 Color: direct index for structure (temp 4-component vector of float)
0:48 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Constant:
0:48 0 (const int)
0:48 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:48 Depth: direct index for structure (temp float)
0:48 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Constant:
0:48 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 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -233,6 +237,8 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
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})
@@ -242,7 +248,7 @@ Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Function Definition: @main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Function Parameters:
0:? Sequence
0:52 textureFetch (temp 4-component vector of float)
@@ -433,24 +439,28 @@ gl_FragCoord origin is upper left
0:73 1 (const int)
0:73 Constant:
0:73 1.000000
0:75 Sequence
0:75 Sequence
0:75 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:75 Color: direct index for structure (temp 4-component vector of float)
0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:75 Constant:
0:75 0 (const int)
0:75 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:75 Depth: direct index for structure (temp float)
0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:75 Constant:
0:75 1 (const int)
0:75 Branch: Return
0:75 Branch: Return with expression
0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Function Definition: main( (temp void)
0:48 Function Parameters:
0:? Sequence
0:48 Sequence
0:48 move second child to first child (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Function Call: @main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:48 Color: direct index for structure (temp 4-component vector of float)
0:48 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Constant:
0:48 0 (const int)
0:48 move second child to first child (temp float)
0:? 'Depth' (out float FragDepth)
0:48 Depth: direct index for structure (temp float)
0:48 'flattenTemp' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:48 Constant:
0:48 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 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -473,266 +483,279 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
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 172
// Id's are bound by 179
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 125 129
EntryPoint Fragment 4 "main" 133 137
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 31 "g_tTex1di4"
Name 40 "g_tTex1du4"
Name 50 "g_tTex2df4"
Name 63 "g_tTex2di4"
Name 73 "g_tTex2du4"
Name 83 "g_tTex3df4"
Name 96 "g_tTex3di4"
Name 106 "g_tTex3du4"
Name 114 "PS_OUTPUT"
MemberName 114(PS_OUTPUT) 0 "Color"
MemberName 114(PS_OUTPUT) 1 "Depth"
Name 116 "psout"
Name 125 "Color"
Name 129 "Depth"
Name 135 "g_sSamp"
Name 138 "g_tTexcdf4"
Name 141 "g_tTexcdi4"
Name 144 "g_tTexcdu4"
Name 147 "g_tTex1df4a"
Name 150 "g_tTex1di4a"
Name 153 "g_tTex1du4a"
Name 156 "g_tTex2df4a"
Name 159 "g_tTex2di4a"
Name 162 "g_tTex2du4a"
Name 165 "g_tTexcdf4a"
Name 168 "g_tTexcdi4a"
Name 171 "g_tTexcdu4a"
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 31(g_tTex1di4) DescriptorSet 0
Decorate 40(g_tTex1du4) DescriptorSet 0
Decorate 50(g_tTex2df4) DescriptorSet 0
Decorate 63(g_tTex2di4) DescriptorSet 0
Decorate 73(g_tTex2du4) DescriptorSet 0
Decorate 83(g_tTex3df4) DescriptorSet 0
Decorate 96(g_tTex3di4) DescriptorSet 0
Decorate 106(g_tTex3du4) DescriptorSet 0
Decorate 125(Color) Location 0
Decorate 129(Depth) BuiltIn FragDepth
Decorate 135(g_sSamp) DescriptorSet 0
Decorate 135(g_sSamp) Binding 0
Decorate 138(g_tTexcdf4) DescriptorSet 0
Decorate 141(g_tTexcdi4) DescriptorSet 0
Decorate 144(g_tTexcdu4) DescriptorSet 0
Decorate 147(g_tTex1df4a) DescriptorSet 0
Decorate 150(g_tTex1di4a) DescriptorSet 0
Decorate 153(g_tTex1du4a) DescriptorSet 0
Decorate 156(g_tTex2df4a) DescriptorSet 0
Decorate 159(g_tTex2di4a) DescriptorSet 0
Decorate 162(g_tTex2du4a) DescriptorSet 0
Decorate 165(g_tTexcdf4a) DescriptorSet 0
Decorate 168(g_tTexcdi4a) DescriptorSet 0
Decorate 171(g_tTexcdu4a) 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 35 "g_tTex1di4"
Name 44 "g_tTex1du4"
Name 54 "g_tTex2df4"
Name 67 "g_tTex2di4"
Name 77 "g_tTex2du4"
Name 87 "g_tTex3df4"
Name 100 "g_tTex3di4"
Name 110 "g_tTex3du4"
Name 119 "psout"
Name 130 "flattenTemp"
Name 133 "Color"
Name 137 "Depth"
Name 142 "g_sSamp"
Name 145 "g_tTexcdf4"
Name 148 "g_tTexcdi4"
Name 151 "g_tTexcdu4"
Name 154 "g_tTex1df4a"
Name 157 "g_tTex1di4a"
Name 160 "g_tTex1du4a"
Name 163 "g_tTex2df4a"
Name 166 "g_tTex2di4a"
Name 169 "g_tTex2du4a"
Name 172 "g_tTexcdf4a"
Name 175 "g_tTexcdi4a"
Name 178 "g_tTexcdu4a"
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 35(g_tTex1di4) DescriptorSet 0
Decorate 44(g_tTex1du4) DescriptorSet 0
Decorate 54(g_tTex2df4) DescriptorSet 0
Decorate 67(g_tTex2di4) DescriptorSet 0
Decorate 77(g_tTex2du4) DescriptorSet 0
Decorate 87(g_tTex3df4) DescriptorSet 0
Decorate 100(g_tTex3di4) DescriptorSet 0
Decorate 110(g_tTex3du4) DescriptorSet 0
Decorate 133(Color) Location 0
Decorate 137(Depth) BuiltIn FragDepth
Decorate 142(g_sSamp) DescriptorSet 0
Decorate 142(g_sSamp) Binding 0
Decorate 145(g_tTexcdf4) DescriptorSet 0
Decorate 148(g_tTexcdi4) DescriptorSet 0
Decorate 151(g_tTexcdu4) DescriptorSet 0
Decorate 154(g_tTex1df4a) DescriptorSet 0
Decorate 157(g_tTex1di4a) DescriptorSet 0
Decorate 160(g_tTex1du4a) DescriptorSet 0
Decorate 163(g_tTex2df4a) DescriptorSet 0
Decorate 166(g_tTex2di4a) DescriptorSet 0
Decorate 169(g_tTex2du4a) DescriptorSet 0
Decorate 172(g_tTexcdf4a) DescriptorSet 0
Decorate 175(g_tTexcdi4a) DescriptorSet 0
Decorate 178(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeImage 6(float) 1D sampled format:Unknown
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 1
19: TypeInt 32 0
20: 19(int) Constant 0
21: TypePointer Uniform 11(int)
24: 19(int) Constant 1
27: TypeVector 6(float) 4
29: TypeImage 11(int) 1D sampled format:Unknown
30: TypePointer UniformConstant 29
31(g_tTex1di4): 30(ptr) Variable UniformConstant
38: TypeImage 19(int) 1D sampled format:Unknown
39: TypePointer UniformConstant 38
40(g_tTex1du4): 39(ptr) Variable UniformConstant
46: TypeVector 19(int) 4
48: TypeImage 6(float) 2D sampled format:Unknown
49: TypePointer UniformConstant 48
50(g_tTex2df4): 49(ptr) Variable UniformConstant
52: 11(int) Constant 2
53: TypePointer Uniform 13(ivec3)
57: 19(int) Constant 2
61: TypeImage 11(int) 2D sampled format:Unknown
62: TypePointer UniformConstant 61
63(g_tTex2di4): 62(ptr) Variable UniformConstant
71: TypeImage 19(int) 2D sampled format:Unknown
72: TypePointer UniformConstant 71
73(g_tTex2du4): 72(ptr) Variable UniformConstant
81: TypeImage 6(float) 3D sampled format:Unknown
82: TypePointer UniformConstant 81
83(g_tTex3df4): 82(ptr) Variable UniformConstant
85: 11(int) Constant 3
86: TypePointer Uniform 14(ivec4)
90: 19(int) Constant 3
94: TypeImage 11(int) 3D sampled format:Unknown
95: TypePointer UniformConstant 94
96(g_tTex3di4): 95(ptr) Variable UniformConstant
104: TypeImage 19(int) 3D sampled format:Unknown
105: TypePointer UniformConstant 104
106(g_tTex3du4): 105(ptr) Variable UniformConstant
114(PS_OUTPUT): TypeStruct 27(fvec4) 6(float)
115: TypePointer Function 114(PS_OUTPUT)
117: 11(int) Constant 0
118: 6(float) Constant 1065353216
119: 27(fvec4) ConstantComposite 118 118 118 118
120: TypePointer Function 27(fvec4)
122: TypePointer Function 6(float)
124: TypePointer Output 27(fvec4)
125(Color): 124(ptr) Variable Output
128: TypePointer Output 6(float)
129(Depth): 128(ptr) Variable Output
133: TypeSampler
134: TypePointer UniformConstant 133
135(g_sSamp): 134(ptr) Variable UniformConstant
136: TypeImage 6(float) Cube sampled format:Unknown
137: TypePointer UniformConstant 136
138(g_tTexcdf4): 137(ptr) Variable UniformConstant
139: TypeImage 11(int) Cube sampled format:Unknown
140: TypePointer UniformConstant 139
141(g_tTexcdi4): 140(ptr) Variable UniformConstant
142: TypeImage 19(int) Cube sampled format:Unknown
143: TypePointer UniformConstant 142
144(g_tTexcdu4): 143(ptr) Variable UniformConstant
145: TypeImage 6(float) 1D array sampled format:Unknown
146: TypePointer UniformConstant 145
147(g_tTex1df4a): 146(ptr) Variable UniformConstant
148: TypeImage 11(int) 1D array sampled format:Unknown
149: TypePointer UniformConstant 148
150(g_tTex1di4a): 149(ptr) Variable UniformConstant
151: TypeImage 19(int) 1D array sampled format:Unknown
152: TypePointer UniformConstant 151
153(g_tTex1du4a): 152(ptr) Variable UniformConstant
154: TypeImage 6(float) 2D array sampled format:Unknown
155: TypePointer UniformConstant 154
156(g_tTex2df4a): 155(ptr) Variable UniformConstant
157: TypeImage 11(int) 2D array sampled format:Unknown
158: TypePointer UniformConstant 157
159(g_tTex2di4a): 158(ptr) Variable UniformConstant
160: TypeImage 19(int) 2D array sampled format:Unknown
161: TypePointer UniformConstant 160
162(g_tTex2du4a): 161(ptr) Variable UniformConstant
163: TypeImage 6(float) Cube array sampled format:Unknown
164: TypePointer UniformConstant 163
165(g_tTexcdf4a): 164(ptr) Variable UniformConstant
166: TypeImage 11(int) Cube array sampled format:Unknown
167: TypePointer UniformConstant 166
168(g_tTexcdi4a): 167(ptr) Variable UniformConstant
169: TypeImage 19(int) Cube array sampled format:Unknown
170: TypePointer UniformConstant 169
171(g_tTexcdu4a): 170(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 sampled format:Unknown
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 1
24: TypeInt 32 0
25: 24(int) Constant 0
26: TypePointer Uniform 16(int)
29: 24(int) Constant 1
33: TypeImage 16(int) 1D sampled format:Unknown
34: TypePointer UniformConstant 33
35(g_tTex1di4): 34(ptr) Variable UniformConstant
42: TypeImage 24(int) 1D sampled format:Unknown
43: TypePointer UniformConstant 42
44(g_tTex1du4): 43(ptr) Variable UniformConstant
50: TypeVector 24(int) 4
52: TypeImage 6(float) 2D sampled format:Unknown
53: TypePointer UniformConstant 52
54(g_tTex2df4): 53(ptr) Variable UniformConstant
56: 16(int) Constant 2
57: TypePointer Uniform 18(ivec3)
61: 24(int) Constant 2
65: TypeImage 16(int) 2D sampled format:Unknown
66: TypePointer UniformConstant 65
67(g_tTex2di4): 66(ptr) Variable UniformConstant
75: TypeImage 24(int) 2D sampled format:Unknown
76: TypePointer UniformConstant 75
77(g_tTex2du4): 76(ptr) Variable UniformConstant
85: TypeImage 6(float) 3D sampled format:Unknown
86: TypePointer UniformConstant 85
87(g_tTex3df4): 86(ptr) Variable UniformConstant
89: 16(int) Constant 3
90: TypePointer Uniform 19(ivec4)
94: 24(int) Constant 3
98: TypeImage 16(int) 3D sampled format:Unknown
99: TypePointer UniformConstant 98
100(g_tTex3di4): 99(ptr) Variable UniformConstant
108: TypeImage 24(int) 3D sampled format:Unknown
109: TypePointer UniformConstant 108
110(g_tTex3du4): 109(ptr) Variable UniformConstant
118: TypePointer Function 8(PS_OUTPUT)
120: 16(int) Constant 0
121: 6(float) Constant 1065353216
122: 7(fvec4) ConstantComposite 121 121 121 121
123: TypePointer Function 7(fvec4)
125: TypePointer Function 6(float)
132: TypePointer Output 7(fvec4)
133(Color): 132(ptr) Variable Output
136: TypePointer Output 6(float)
137(Depth): 136(ptr) Variable Output
140: TypeSampler
141: TypePointer UniformConstant 140
142(g_sSamp): 141(ptr) Variable UniformConstant
143: TypeImage 6(float) Cube sampled format:Unknown
144: TypePointer UniformConstant 143
145(g_tTexcdf4): 144(ptr) Variable UniformConstant
146: TypeImage 16(int) Cube sampled format:Unknown
147: TypePointer UniformConstant 146
148(g_tTexcdi4): 147(ptr) Variable UniformConstant
149: TypeImage 24(int) Cube sampled format:Unknown
150: TypePointer UniformConstant 149
151(g_tTexcdu4): 150(ptr) Variable UniformConstant
152: TypeImage 6(float) 1D array sampled format:Unknown
153: TypePointer UniformConstant 152
154(g_tTex1df4a): 153(ptr) Variable UniformConstant
155: TypeImage 16(int) 1D array sampled format:Unknown
156: TypePointer UniformConstant 155
157(g_tTex1di4a): 156(ptr) Variable UniformConstant
158: TypeImage 24(int) 1D array sampled format:Unknown
159: TypePointer UniformConstant 158
160(g_tTex1du4a): 159(ptr) Variable UniformConstant
161: TypeImage 6(float) 2D array sampled format:Unknown
162: TypePointer UniformConstant 161
163(g_tTex2df4a): 162(ptr) Variable UniformConstant
164: TypeImage 16(int) 2D array sampled format:Unknown
165: TypePointer UniformConstant 164
166(g_tTex2di4a): 165(ptr) Variable UniformConstant
167: TypeImage 24(int) 2D array sampled format:Unknown
168: TypePointer UniformConstant 167
169(g_tTex2du4a): 168(ptr) Variable UniformConstant
170: TypeImage 6(float) Cube array sampled format:Unknown
171: TypePointer UniformConstant 170
172(g_tTexcdf4a): 171(ptr) Variable UniformConstant
173: TypeImage 16(int) Cube array sampled format:Unknown
174: TypePointer UniformConstant 173
175(g_tTexcdi4a): 174(ptr) Variable UniformConstant
176: TypeImage 24(int) Cube array sampled format:Unknown
177: TypePointer UniformConstant 176
178(g_tTexcdu4a): 177(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
116(psout): 115(ptr) Variable Function
10: 7 Load 9(g_tTex1df4)
22: 21(ptr) AccessChain 17 18 20
23: 11(int) Load 22
25: 21(ptr) AccessChain 17 18 24
26: 11(int) Load 25
28: 27(fvec4) ImageFetch 10 23 Lod 26
32: 29 Load 31(g_tTex1di4)
33: 21(ptr) AccessChain 17 18 20
34: 11(int) Load 33
35: 21(ptr) AccessChain 17 18 24
36: 11(int) Load 35
37: 14(ivec4) ImageFetch 32 34 Lod 36
41: 38 Load 40(g_tTex1du4)
42: 21(ptr) AccessChain 17 18 20
43: 11(int) Load 42
44: 21(ptr) AccessChain 17 18 24
45: 11(int) Load 44
47: 46(ivec4) ImageFetch 41 43 Lod 45
51: 48 Load 50(g_tTex2df4)
54: 53(ptr) AccessChain 17 52
55: 13(ivec3) Load 54
56: 12(ivec2) VectorShuffle 55 55 0 1
58: 21(ptr) AccessChain 17 52 57
59: 11(int) Load 58
60: 27(fvec4) ImageFetch 51 56 Lod 59
64: 61 Load 63(g_tTex2di4)
65: 53(ptr) AccessChain 17 52
66: 13(ivec3) Load 65
67: 12(ivec2) VectorShuffle 66 66 0 1
68: 21(ptr) AccessChain 17 52 57
69: 11(int) Load 68
70: 14(ivec4) ImageFetch 64 67 Lod 69
74: 71 Load 73(g_tTex2du4)
75: 53(ptr) AccessChain 17 52
76: 13(ivec3) Load 75
77: 12(ivec2) VectorShuffle 76 76 0 1
78: 21(ptr) AccessChain 17 52 57
79: 11(int) Load 78
80: 46(ivec4) ImageFetch 74 77 Lod 79
84: 81 Load 83(g_tTex3df4)
87: 86(ptr) AccessChain 17 85
88: 14(ivec4) Load 87
89: 13(ivec3) VectorShuffle 88 88 0 1 2
91: 21(ptr) AccessChain 17 85 90
92: 11(int) Load 91
93: 27(fvec4) ImageFetch 84 89 Lod 92
97: 94 Load 96(g_tTex3di4)
98: 86(ptr) AccessChain 17 85
99: 14(ivec4) Load 98
100: 13(ivec3) VectorShuffle 99 99 0 1 2
101: 21(ptr) AccessChain 17 85 90
102: 11(int) Load 101
103: 14(ivec4) ImageFetch 97 100 Lod 102
107: 104 Load 106(g_tTex3du4)
108: 86(ptr) AccessChain 17 85
109: 14(ivec4) Load 108
110: 13(ivec3) VectorShuffle 109 109 0 1 2
111: 21(ptr) AccessChain 17 85 90
112: 11(int) Load 111
113: 46(ivec4) ImageFetch 107 110 Lod 112
121: 120(ptr) AccessChain 116(psout) 117
Store 121 119
123: 122(ptr) AccessChain 116(psout) 18
Store 123 118
126: 120(ptr) AccessChain 116(psout) 117
127: 27(fvec4) Load 126
Store 125(Color) 127
130: 122(ptr) AccessChain 116(psout) 18
131: 6(float) Load 130
Store 129(Depth) 131
130(flattenTemp): 118(ptr) Variable Function
131:8(PS_OUTPUT) FunctionCall 10(@main()
Store 130(flattenTemp) 131
134: 123(ptr) AccessChain 130(flattenTemp) 120
135: 7(fvec4) Load 134
Store 133(Color) 135
138: 125(ptr) AccessChain 130(flattenTemp) 23
139: 6(float) Load 138
Store 137(Depth) 139
Return
FunctionEnd
10(@main():8(PS_OUTPUT) Function None 9
11: Label
119(psout): 118(ptr) Variable Function
15: 12 Load 14(g_tTex1df4)
27: 26(ptr) AccessChain 22 23 25
28: 16(int) Load 27
30: 26(ptr) AccessChain 22 23 29
31: 16(int) Load 30
32: 7(fvec4) ImageFetch 15 28 Lod 31
36: 33 Load 35(g_tTex1di4)
37: 26(ptr) AccessChain 22 23 25
38: 16(int) Load 37
39: 26(ptr) AccessChain 22 23 29
40: 16(int) Load 39
41: 19(ivec4) ImageFetch 36 38 Lod 40
45: 42 Load 44(g_tTex1du4)
46: 26(ptr) AccessChain 22 23 25
47: 16(int) Load 46
48: 26(ptr) AccessChain 22 23 29
49: 16(int) Load 48
51: 50(ivec4) ImageFetch 45 47 Lod 49
55: 52 Load 54(g_tTex2df4)
58: 57(ptr) AccessChain 22 56
59: 18(ivec3) Load 58
60: 17(ivec2) VectorShuffle 59 59 0 1
62: 26(ptr) AccessChain 22 56 61
63: 16(int) Load 62
64: 7(fvec4) ImageFetch 55 60 Lod 63
68: 65 Load 67(g_tTex2di4)
69: 57(ptr) AccessChain 22 56
70: 18(ivec3) Load 69
71: 17(ivec2) VectorShuffle 70 70 0 1
72: 26(ptr) AccessChain 22 56 61
73: 16(int) Load 72
74: 19(ivec4) ImageFetch 68 71 Lod 73
78: 75 Load 77(g_tTex2du4)
79: 57(ptr) AccessChain 22 56
80: 18(ivec3) Load 79
81: 17(ivec2) VectorShuffle 80 80 0 1
82: 26(ptr) AccessChain 22 56 61
83: 16(int) Load 82
84: 50(ivec4) ImageFetch 78 81 Lod 83
88: 85 Load 87(g_tTex3df4)
91: 90(ptr) AccessChain 22 89
92: 19(ivec4) Load 91
93: 18(ivec3) VectorShuffle 92 92 0 1 2
95: 26(ptr) AccessChain 22 89 94
96: 16(int) Load 95
97: 7(fvec4) ImageFetch 88 93 Lod 96
101: 98 Load 100(g_tTex3di4)
102: 90(ptr) AccessChain 22 89
103: 19(ivec4) Load 102
104: 18(ivec3) VectorShuffle 103 103 0 1 2
105: 26(ptr) AccessChain 22 89 94
106: 16(int) Load 105
107: 19(ivec4) ImageFetch 101 104 Lod 106
111: 108 Load 110(g_tTex3du4)
112: 90(ptr) AccessChain 22 89
113: 19(ivec4) Load 112
114: 18(ivec3) VectorShuffle 113 113 0 1 2
115: 26(ptr) AccessChain 22 89 94
116: 16(int) Load 115
117: 50(ivec4) ImageFetch 111 114 Lod 116
124: 123(ptr) AccessChain 119(psout) 120
Store 124 122
126: 125(ptr) AccessChain 119(psout) 23
Store 126 121
127:8(PS_OUTPUT) Load 119(psout)
ReturnValue 127
FunctionEnd