glslang/Test/baseResults/hlsl.structarray.flatten.frag.out
John Kessenich 41aa19953f HLSL: Partially flatten hierarchies, instead of all or nothing.
Fixes #1092.  Allows arrays of opaques to keep arrayness, unless
needed by uniform array flattening.
Can handle assignments of mixed amounts of flattening.
2017-10-12 16:52:32 -06:00

302 lines
16 KiB
Plaintext

hlsl.structarray.flatten.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:23 Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:23 Function Parameters:
0:23 'ps_output' ( out structure{ temp 4-component vector of float color})
0:? Sequence
0:24 move second child to first child ( temp 4-component vector of float)
0:24 color: direct index for structure ( temp 4-component vector of float)
0:24 'ps_output' ( out structure{ temp 4-component vector of float color})
0:24 Constant:
0:24 0 (const int)
0:26 add ( temp 4-component vector of float)
0:25 add ( temp 4-component vector of float)
0:25 texture ( temp 4-component vector of float)
0:25 Construct combined texture-sampler ( temp sampler1D)
0:? 'g_texdata.tex' ( uniform texture1D)
0:? 'g_texdata.samp' ( uniform sampler)
0:25 Constant:
0:25 0.500000
0:26 texture ( temp 4-component vector of float)
0:26 Construct combined texture-sampler ( temp sampler1D)
0:? 'g_texdata_array[1].tex' ( uniform texture1D)
0:? 'g_texdata_array[1].samp' ( uniform sampler)
0:26 Constant:
0:26 0.400000
0:27 texture ( temp 4-component vector of float)
0:27 Construct combined texture-sampler ( temp sampler1D)
0:27 direct index ( temp texture1D)
0:? 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D)
0:27 Constant:
0:27 0 (const int)
0:27 direct index ( temp sampler)
0:? 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler)
0:27 Constant:
0:27 0 (const int)
0:27 Constant:
0:27 0.300000
0:23 Function Definition: main( ( temp void)
0:23 Function Parameters:
0:? Sequence
0:23 Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:? 'ps_output' ( temp structure{ temp 4-component vector of float color})
0:23 Sequence
0:23 move second child to first child ( temp 4-component vector of float)
0:? 'ps_output.color' (layout( location=0) out 4-component vector of float)
0:23 color: direct index for structure ( temp 4-component vector of float)
0:? 'ps_output' ( temp structure{ temp 4-component vector of float color})
0:23 Constant:
0:23 0 (const int)
0:? Linker Objects
0:? 'g_samp' ( uniform sampler)
0:? 'g_tex' ( uniform texture1D)
0:? 'g_texdata.samp' ( uniform sampler)
0:? 'g_texdata.tex' ( uniform texture1D)
0:? 'g_texdata.nonopaque_thing' ( uniform int)
0:? 'g_texdata_array[0].samp' ( uniform sampler)
0:? 'g_texdata_array[0].tex' ( uniform texture1D)
0:? 'g_texdata_array[0].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array[1].samp' ( uniform sampler)
0:? 'g_texdata_array[1].tex' ( uniform texture1D)
0:? 'g_texdata_array[1].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array[2].samp' ( uniform sampler)
0:? 'g_texdata_array[2].tex' ( uniform texture1D)
0:? 'g_texdata_array[2].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array2[0].samp' ( uniform 2-element array of sampler)
0:? 'g_texdata_array2[0].tex' ( uniform 2-element array of texture1D)
0:? 'g_texdata_array2[0].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler)
0:? 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D)
0:? 'g_texdata_array2[1].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array2[2].samp' ( uniform 2-element array of sampler)
0:? 'g_texdata_array2[2].tex' ( uniform 2-element array of texture1D)
0:? 'g_texdata_array2[2].nonopaque_thing' ( uniform int)
0:? 'ps_output.color' (layout( location=0) out 4-component vector of float)
Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:23 Function Definition: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:23 Function Parameters:
0:23 'ps_output' ( out structure{ temp 4-component vector of float color})
0:? Sequence
0:24 move second child to first child ( temp 4-component vector of float)
0:24 color: direct index for structure ( temp 4-component vector of float)
0:24 'ps_output' ( out structure{ temp 4-component vector of float color})
0:24 Constant:
0:24 0 (const int)
0:26 add ( temp 4-component vector of float)
0:25 add ( temp 4-component vector of float)
0:25 texture ( temp 4-component vector of float)
0:25 Construct combined texture-sampler ( temp sampler1D)
0:? 'g_texdata.tex' ( uniform texture1D)
0:? 'g_texdata.samp' ( uniform sampler)
0:25 Constant:
0:25 0.500000
0:26 texture ( temp 4-component vector of float)
0:26 Construct combined texture-sampler ( temp sampler1D)
0:? 'g_texdata_array[1].tex' ( uniform texture1D)
0:? 'g_texdata_array[1].samp' ( uniform sampler)
0:26 Constant:
0:26 0.400000
0:27 texture ( temp 4-component vector of float)
0:27 Construct combined texture-sampler ( temp sampler1D)
0:27 direct index ( temp texture1D)
0:? 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D)
0:27 Constant:
0:27 0 (const int)
0:27 direct index ( temp sampler)
0:? 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler)
0:27 Constant:
0:27 0 (const int)
0:27 Constant:
0:27 0.300000
0:23 Function Definition: main( ( temp void)
0:23 Function Parameters:
0:? Sequence
0:23 Function Call: @main(struct-PS_OUTPUT-vf41; ( temp void)
0:? 'ps_output' ( temp structure{ temp 4-component vector of float color})
0:23 Sequence
0:23 move second child to first child ( temp 4-component vector of float)
0:? 'ps_output.color' (layout( location=0) out 4-component vector of float)
0:23 color: direct index for structure ( temp 4-component vector of float)
0:? 'ps_output' ( temp structure{ temp 4-component vector of float color})
0:23 Constant:
0:23 0 (const int)
0:? Linker Objects
0:? 'g_samp' ( uniform sampler)
0:? 'g_tex' ( uniform texture1D)
0:? 'g_texdata.samp' ( uniform sampler)
0:? 'g_texdata.tex' ( uniform texture1D)
0:? 'g_texdata.nonopaque_thing' ( uniform int)
0:? 'g_texdata_array[0].samp' ( uniform sampler)
0:? 'g_texdata_array[0].tex' ( uniform texture1D)
0:? 'g_texdata_array[0].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array[1].samp' ( uniform sampler)
0:? 'g_texdata_array[1].tex' ( uniform texture1D)
0:? 'g_texdata_array[1].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array[2].samp' ( uniform sampler)
0:? 'g_texdata_array[2].tex' ( uniform texture1D)
0:? 'g_texdata_array[2].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array2[0].samp' ( uniform 2-element array of sampler)
0:? 'g_texdata_array2[0].tex' ( uniform 2-element array of texture1D)
0:? 'g_texdata_array2[0].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array2[1].samp' ( uniform 2-element array of sampler)
0:? 'g_texdata_array2[1].tex' ( uniform 2-element array of texture1D)
0:? 'g_texdata_array2[1].nonopaque_thing' ( uniform int)
0:? 'g_texdata_array2[2].samp' ( uniform 2-element array of sampler)
0:? 'g_texdata_array2[2].tex' ( uniform 2-element array of texture1D)
0:? 'g_texdata_array2[2].nonopaque_thing' ( uniform int)
0:? 'ps_output.color' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 80
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 59
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 8 "PS_OUTPUT"
MemberName 8(PS_OUTPUT) 0 "color"
Name 12 "@main(struct-PS_OUTPUT-vf41;"
Name 11 "ps_output"
Name 18 "g_texdata.tex"
Name 22 "g_texdata.samp"
Name 28 "g_texdata_array[1].tex"
Name 30 "g_texdata_array[1].samp"
Name 40 "g_texdata_array2[1].tex"
Name 45 "g_texdata_array2[1].samp"
Name 54 "ps_output"
Name 55 "param"
Name 59 "ps_output.color"
Name 62 "g_samp"
Name 63 "g_tex"
Name 65 "g_texdata.nonopaque_thing"
Name 66 "g_texdata_array[0].samp"
Name 67 "g_texdata_array[0].tex"
Name 68 "g_texdata_array[0].nonopaque_thing"
Name 69 "g_texdata_array[1].nonopaque_thing"
Name 70 "g_texdata_array[2].samp"
Name 71 "g_texdata_array[2].tex"
Name 72 "g_texdata_array[2].nonopaque_thing"
Name 73 "g_texdata_array2[0].samp"
Name 74 "g_texdata_array2[0].tex"
Name 75 "g_texdata_array2[0].nonopaque_thing"
Name 76 "g_texdata_array2[1].nonopaque_thing"
Name 77 "g_texdata_array2[2].samp"
Name 78 "g_texdata_array2[2].tex"
Name 79 "g_texdata_array2[2].nonopaque_thing"
Decorate 18(g_texdata.tex) DescriptorSet 0
Decorate 22(g_texdata.samp) DescriptorSet 0
Decorate 28(g_texdata_array[1].tex) DescriptorSet 0
Decorate 30(g_texdata_array[1].samp) DescriptorSet 0
Decorate 40(g_texdata_array2[1].tex) DescriptorSet 0
Decorate 45(g_texdata_array2[1].samp) DescriptorSet 0
Decorate 59(ps_output.color) Location 0
Decorate 62(g_samp) DescriptorSet 0
Decorate 63(g_tex) DescriptorSet 0
Decorate 66(g_texdata_array[0].samp) DescriptorSet 0
Decorate 67(g_texdata_array[0].tex) DescriptorSet 0
Decorate 70(g_texdata_array[2].samp) DescriptorSet 0
Decorate 71(g_texdata_array[2].tex) DescriptorSet 0
Decorate 73(g_texdata_array2[0].samp) DescriptorSet 0
Decorate 74(g_texdata_array2[0].tex) DescriptorSet 0
Decorate 77(g_texdata_array2[2].samp) DescriptorSet 0
Decorate 78(g_texdata_array2[2].tex) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8(PS_OUTPUT): TypeStruct 7(fvec4)
9: TypePointer Function 8(PS_OUTPUT)
10: TypeFunction 2 9(ptr)
14: TypeInt 32 1
15: 14(int) Constant 0
16: TypeImage 6(float) 1D sampled format:Unknown
17: TypePointer UniformConstant 16
18(g_texdata.tex): 17(ptr) Variable UniformConstant
20: TypeSampler
21: TypePointer UniformConstant 20
22(g_texdata.samp): 21(ptr) Variable UniformConstant
24: TypeSampledImage 16
26: 6(float) Constant 1056964608
28(g_texdata_array[1].tex): 17(ptr) Variable UniformConstant
30(g_texdata_array[1].samp): 21(ptr) Variable UniformConstant
33: 6(float) Constant 1053609165
36: TypeInt 32 0
37: 36(int) Constant 2
38: TypeArray 16 37
39: TypePointer UniformConstant 38
40(g_texdata_array2[1].tex): 39(ptr) Variable UniformConstant
43: TypeArray 20 37
44: TypePointer UniformConstant 43
45(g_texdata_array2[1].samp): 44(ptr) Variable UniformConstant
49: 6(float) Constant 1050253722
52: TypePointer Function 7(fvec4)
58: TypePointer Output 7(fvec4)
59(ps_output.color): 58(ptr) Variable Output
62(g_samp): 21(ptr) Variable UniformConstant
63(g_tex): 17(ptr) Variable UniformConstant
64: TypePointer UniformConstant 14(int)
65(g_texdata.nonopaque_thing): 64(ptr) Variable UniformConstant
66(g_texdata_array[0].samp): 21(ptr) Variable UniformConstant
67(g_texdata_array[0].tex): 17(ptr) Variable UniformConstant
68(g_texdata_array[0].nonopaque_thing): 64(ptr) Variable UniformConstant
69(g_texdata_array[1].nonopaque_thing): 64(ptr) Variable UniformConstant
70(g_texdata_array[2].samp): 21(ptr) Variable UniformConstant
71(g_texdata_array[2].tex): 17(ptr) Variable UniformConstant
72(g_texdata_array[2].nonopaque_thing): 64(ptr) Variable UniformConstant
73(g_texdata_array2[0].samp): 44(ptr) Variable UniformConstant
74(g_texdata_array2[0].tex): 39(ptr) Variable UniformConstant
75(g_texdata_array2[0].nonopaque_thing): 64(ptr) Variable UniformConstant
76(g_texdata_array2[1].nonopaque_thing): 64(ptr) Variable UniformConstant
77(g_texdata_array2[2].samp): 44(ptr) Variable UniformConstant
78(g_texdata_array2[2].tex): 39(ptr) Variable UniformConstant
79(g_texdata_array2[2].nonopaque_thing): 64(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
54(ps_output): 9(ptr) Variable Function
55(param): 9(ptr) Variable Function
56: 2 FunctionCall 12(@main(struct-PS_OUTPUT-vf41;) 55(param)
57:8(PS_OUTPUT) Load 55(param)
Store 54(ps_output) 57
60: 52(ptr) AccessChain 54(ps_output) 15
61: 7(fvec4) Load 60
Store 59(ps_output.color) 61
Return
FunctionEnd
12(@main(struct-PS_OUTPUT-vf41;): 2 Function None 10
11(ps_output): 9(ptr) FunctionParameter
13: Label
19: 16 Load 18(g_texdata.tex)
23: 20 Load 22(g_texdata.samp)
25: 24 SampledImage 19 23
27: 7(fvec4) ImageSampleImplicitLod 25 26
29: 16 Load 28(g_texdata_array[1].tex)
31: 20 Load 30(g_texdata_array[1].samp)
32: 24 SampledImage 29 31
34: 7(fvec4) ImageSampleImplicitLod 32 33
35: 7(fvec4) FAdd 27 34
41: 17(ptr) AccessChain 40(g_texdata_array2[1].tex) 15
42: 16 Load 41
46: 21(ptr) AccessChain 45(g_texdata_array2[1].samp) 15
47: 20 Load 46
48: 24 SampledImage 42 47
50: 7(fvec4) ImageSampleImplicitLod 48 49
51: 7(fvec4) FAdd 35 50
53: 52(ptr) AccessChain 11(ps_output) 15
Store 53 51
Return
FunctionEnd