mirror of
https://github.com/RPCS3/glslang.git
synced 2024-12-19 17:26:39 +00:00
41aa19953f
Fixes #1092. Allows arrays of opaques to keep arrayness, unless needed by uniform array flattening. Can handle assignments of mixed amounts of flattening.
302 lines
16 KiB
Plaintext
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
|