HLSL: Stop flattening non-IO structs containing opaques.

This makes struct returns from functions work, but breaks
structs containing arrays, due to limitations in subsequent
transforms in spirv-opt. This is expected to be fixed soon.
This commit is contained in:
John Kessenich 2017-11-16 16:03:18 -07:00
parent 471bfed062
commit dc005fb083
18 changed files with 1610 additions and 1419 deletions

View File

@ -2,49 +2,54 @@ hlsl.aliasOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 81 // Id's are bound by 87
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 57 EntryPoint Fragment 4 "main" 62
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 37 "gss2" Name 9 "OS"
Name 39 "gss" MemberName 9(OS) 0 "ss"
Name 43 "gtex" MemberName 9(OS) 1 "a"
Name 57 "@entryPointOutput" MemberName 9(OS) 2 "tex"
Decorate 37(gss2) DescriptorSet 0 Name 44 "gss2"
Decorate 39(gss) DescriptorSet 0 Name 47 "gss"
Decorate 43(gtex) DescriptorSet 0 Name 51 "gtex"
Decorate 57(@entryPointOutput) Location 0 Name 62 "@entryPointOutput"
Decorate 44(gss2) DescriptorSet 0
Decorate 47(gss) DescriptorSet 0
Decorate 51(gtex) DescriptorSet 0
Decorate 62(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeSampler 6: TypeSampler
8: TypeFloat 32 7: TypeFloat 32
10: TypeImage 8(float) 2D sampled format:Unknown 8: TypeImage 7(float) 2D sampled format:Unknown
12: TypeVector 8(float) 4 9(OS): TypeStruct 6 7(float) 8
25: TypeSampledImage 10 11: TypeVector 7(float) 4
27: TypeVector 8(float) 2 32: TypeSampledImage 8
28: 8(float) Constant 1045220557 34: TypeVector 7(float) 2
29: 8(float) Constant 1050253722 35: 7(float) Constant 1045220557
30: 27(fvec2) ConstantComposite 28 29 36: 7(float) Constant 1050253722
36: TypePointer UniformConstant 6 37: 34(fvec2) ConstantComposite 35 36
37(gss2): 36(ptr) Variable UniformConstant 43: TypePointer UniformConstant 6
39(gss): 36(ptr) Variable UniformConstant 44(gss2): 43(ptr) Variable UniformConstant
42: TypePointer UniformConstant 10 47(gss): 43(ptr) Variable UniformConstant
43(gtex): 42(ptr) Variable UniformConstant 50: TypePointer UniformConstant 8
46: 8(float) Constant 1077936128 51(gtex): 50(ptr) Variable UniformConstant
56: TypePointer Output 12(fvec4) 54: 7(float) Constant 1077936128
57(@entryPointOutput): 56(ptr) Variable Output 61: TypePointer Output 11(fvec4)
62(@entryPointOutput): 61(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
68: 6 Load 39(gss) 70: 6 Load 47(gss)
69: 10 Load 43(gtex) 72: 8 Load 51(gtex)
78: 25 SampledImage 69 68 84: 32 SampledImage 72 70
79: 12(fvec4) ImageSampleImplicitLod 78 30 85: 11(fvec4) ImageSampleImplicitLod 84 37
80: 12(fvec4) VectorTimesScalar 79 46 86: 11(fvec4) VectorTimesScalar 85 54
Store 57(@entryPointOutput) 80 Store 62(@entryPointOutput) 86
Return Return
FunctionEnd FunctionEnd

View File

@ -1,65 +1,73 @@
hlsl.flattenOpaque.frag hlsl.flattenOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 144 // Id's are bound by 185
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 97 EntryPoint Fragment 4 "main" 120
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 7 "os"
MemberName 7(os) 0 "s2D"
Name 23 "os2"
MemberName 23(os2) 0 "s2D"
MemberName 23(os2) 1 "tex"
Name 38 "tex" Name 38 "tex"
Name 70 "s.s2D" Name 82 "s.s2D"
Name 79 "s2.s2D" Name 97 "s2.s2D"
Name 80 "s2.tex" Name 100 "s2.tex"
Name 97 "@entryPointOutput" Name 120 "@entryPointOutput"
Decorate 38(tex) DescriptorSet 0 Decorate 38(tex) DescriptorSet 0
Decorate 70(s.s2D) DescriptorSet 0 Decorate 82(s.s2D) DescriptorSet 0
Decorate 79(s2.s2D) DescriptorSet 0 Decorate 97(s2.s2D) DescriptorSet 0
Decorate 80(s2.tex) DescriptorSet 0 Decorate 100(s2.tex) DescriptorSet 0
Decorate 97(@entryPointOutput) Location 0 Decorate 120(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeSampler 6: TypeSampler
8: TypeFloat 32 7(os): TypeStruct 6
9: TypeVector 8(float) 4 9: TypeFloat 32
14: TypeVector 8(float) 2 10: TypeVector 9(float) 4
21: TypeImage 8(float) 2D sampled format:Unknown 15: TypeVector 9(float) 2
37: TypePointer UniformConstant 21 22: TypeImage 9(float) 2D sampled format:Unknown
23(os2): TypeStruct 6 22
37: TypePointer UniformConstant 22
38(tex): 37(ptr) Variable UniformConstant 38(tex): 37(ptr) Variable UniformConstant
41: TypeSampledImage 21 45: TypeSampledImage 22
43: 8(float) Constant 1045220557 47: 9(float) Constant 1045220557
44: 8(float) Constant 1050253722 48: 9(float) Constant 1050253722
45: 14(fvec2) ConstantComposite 43 44 49: 15(fvec2) ConstantComposite 47 48
69: TypePointer UniformConstant 6 81: TypePointer UniformConstant 6
70(s.s2D): 69(ptr) Variable UniformConstant 82(s.s2D): 81(ptr) Variable UniformConstant
79(s2.s2D): 69(ptr) Variable UniformConstant 97(s2.s2D): 81(ptr) Variable UniformConstant
80(s2.tex): 37(ptr) Variable UniformConstant 100(s2.tex): 37(ptr) Variable UniformConstant
96: TypePointer Output 9(fvec4) 119: TypePointer Output 10(fvec4)
97(@entryPointOutput): 96(ptr) Variable Output 120(@entryPointOutput): 119(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
109: 6 Load 70(s.s2D) 134: 6 Load 82(s.s2D)
123: 21 Load 38(tex) 158: 22 Load 38(tex)
125: 41 SampledImage 123 109 161: 45 SampledImage 158 134
126: 9(fvec4) ImageSampleImplicitLod 125 45 162: 10(fvec4) ImageSampleImplicitLod 161 49
111: 6 Load 70(s.s2D) 138: 6 Load 82(s.s2D)
128: 21 Load 38(tex) 164: 22 Load 38(tex)
130: 41 SampledImage 128 111 167: 45 SampledImage 164 138
132: 9(fvec4) ImageSampleImplicitLod 130 45 169: 10(fvec4) ImageSampleImplicitLod 167 49
113: 9(fvec4) FAdd 126 132 142: 10(fvec4) FAdd 162 169
114: 6 Load 79(s2.s2D) 143: 6 Load 97(s2.s2D)
115: 21 Load 80(s2.tex) 145: 22 Load 100(s2.tex)
136: 41 SampledImage 115 114 175: 45 SampledImage 145 143
137: 9(fvec4) ImageSampleImplicitLod 136 45 176: 10(fvec4) ImageSampleImplicitLod 175 49
117: 9(fvec4) FAdd 113 137 149: 10(fvec4) FAdd 142 176
118: 6 Load 79(s2.s2D) 150: 6 Load 97(s2.s2D)
119: 21 Load 80(s2.tex) 152: 22 Load 100(s2.tex)
141: 41 SampledImage 119 118 182: 45 SampledImage 152 150
143: 9(fvec4) ImageSampleImplicitLod 141 45 184: 10(fvec4) ImageSampleImplicitLod 182 49
121: 9(fvec4) FAdd 117 143 156: 10(fvec4) FAdd 149 184
Store 97(@entryPointOutput) 121 Store 120(@entryPointOutput) 156
Return Return
FunctionEnd FunctionEnd

View File

@ -2,57 +2,56 @@ hlsl.flattenOpaqueInit.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 176 // Id's are bound by 134
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 99 EntryPoint Vertex 4 "main" 80
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 17 "FxaaTex" Name 9 "FxaaTex"
MemberName 17(FxaaTex) 0 "smpl" MemberName 9(FxaaTex) 0 "smpl"
MemberName 17(FxaaTex) 1 "tex" MemberName 9(FxaaTex) 1 "tex"
Name 38 "g_tInputTexture_sampler" Name 43 "g_tInputTexture_sampler"
Name 42 "g_tInputTexture" Name 47 "g_tInputTexture"
Name 99 "@entryPointOutput" Name 80 "@entryPointOutput"
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0 Decorate 43(g_tInputTexture_sampler) DescriptorSet 0
Decorate 42(g_tInputTexture) DescriptorSet 0 Decorate 47(g_tInputTexture) DescriptorSet 0
Decorate 99(@entryPointOutput) Location 0 Decorate 80(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeSampler 6: TypeSampler
8: TypeFloat 32 7: TypeFloat 32
9: TypeImage 8(float) 2D sampled format:Unknown 8: TypeImage 7(float) 2D sampled format:Unknown
11: TypeVector 8(float) 4 9(FxaaTex): TypeStruct 6 8
17(FxaaTex): TypeStruct 6 9 11: TypeVector 7(float) 4
26: TypeSampledImage 9 31: TypeSampledImage 8
28: TypeVector 8(float) 2 33: TypeVector 7(float) 2
29: 8(float) Constant 1050253722 34: 7(float) Constant 1050253722
30: 8(float) Constant 1053609165 35: 7(float) Constant 1053609165
31: 28(fvec2) ConstantComposite 29 30 36: 33(fvec2) ConstantComposite 34 35
32: 8(float) Constant 0 37: 7(float) Constant 0
37: TypePointer UniformConstant 6 42: TypePointer UniformConstant 6
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant 43(g_tInputTexture_sampler): 42(ptr) Variable UniformConstant
41: TypePointer UniformConstant 9 46: TypePointer UniformConstant 8
42(g_tInputTexture): 41(ptr) Variable UniformConstant 47(g_tInputTexture): 46(ptr) Variable UniformConstant
98: TypePointer Output 11(fvec4) 79: TypePointer Output 11(fvec4)
99(@entryPointOutput): 98(ptr) Variable Output 80(@entryPointOutput): 79(ptr) Variable Output
175: 17(FxaaTex) Undef
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
117: 6 Load 38(g_tInputTexture_sampler) 90: 6 Load 43(g_tInputTexture_sampler)
118: 9 Load 42(g_tInputTexture) 91: 8 Load 47(g_tInputTexture)
148: 26 SampledImage 118 117 111: 31 SampledImage 91 90
149: 11(fvec4) ImageSampleExplicitLod 148 31 Lod 32 112: 11(fvec4) ImageSampleExplicitLod 111 36 Lod 37
172: 6 CompositeExtract 175 0 115: 6 Load 43(g_tInputTexture_sampler)
174: 9 CompositeExtract 175 1 117: 8 Load 47(g_tInputTexture)
160: 26 SampledImage 174 172 125: 31 SampledImage 117 115
161: 11(fvec4) ImageSampleExplicitLod 160 31 Lod 32 126: 11(fvec4) ImageSampleExplicitLod 125 36 Lod 37
136: 11(fvec4) FAdd 149 161 99: 11(fvec4) FAdd 112 126
165: 26 SampledImage 118 117 132: 31 SampledImage 91 90
166: 11(fvec4) ImageSampleExplicitLod 165 31 Lod 32 133: 11(fvec4) ImageSampleExplicitLod 132 36 Lod 37
143: 11(fvec4) FAdd 136 166 104: 11(fvec4) FAdd 99 133
Store 99(@entryPointOutput) 143 Store 80(@entryPointOutput) 104
Return Return
FunctionEnd FunctionEnd

View File

@ -2,48 +2,48 @@ hlsl.flattenOpaqueInitMix.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 100 // Id's are bound by 80
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 68 EntryPoint Vertex 4 "main" 57
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 34 "FxaaTex" Name 9 "FxaaTex"
MemberName 34(FxaaTex) 0 "smpl" MemberName 9(FxaaTex) 0 "smpl"
MemberName 34(FxaaTex) 1 "tex" MemberName 9(FxaaTex) 1 "tex"
MemberName 34(FxaaTex) 2 "f" MemberName 9(FxaaTex) 2 "f"
Name 38 "g_tInputTexture_sampler" Name 44 "g_tInputTexture_sampler"
Name 41 "g_tInputTexture" Name 47 "g_tInputTexture"
Name 68 "@entryPointOutput" Name 57 "@entryPointOutput"
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0 Decorate 44(g_tInputTexture_sampler) DescriptorSet 0
Decorate 41(g_tInputTexture) DescriptorSet 0 Decorate 47(g_tInputTexture) DescriptorSet 0
Decorate 68(@entryPointOutput) Location 0 Decorate 57(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeSampler 6: TypeSampler
8: TypeFloat 32 7: TypeFloat 32
9: TypeImage 8(float) 2D sampled format:Unknown 8: TypeImage 7(float) 2D sampled format:Unknown
12: TypeVector 8(float) 4 9(FxaaTex): TypeStruct 6 8 7(float)
24: TypeSampledImage 9 11: TypeVector 7(float) 4
28: TypeVector 8(float) 2 28: TypeSampledImage 8
30: 8(float) Constant 0 36: TypeVector 7(float) 2
34(FxaaTex): TypeStruct 6 9 8(float) 38: 7(float) Constant 0
37: TypePointer UniformConstant 6 43: TypePointer UniformConstant 6
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant 44(g_tInputTexture_sampler): 43(ptr) Variable UniformConstant
40: TypePointer UniformConstant 9 46: TypePointer UniformConstant 8
41(g_tInputTexture): 40(ptr) Variable UniformConstant 47(g_tInputTexture): 46(ptr) Variable UniformConstant
43: 8(float) Constant 1056964608 49: 7(float) Constant 1056964608
67: TypePointer Output 12(fvec4) 56: TypePointer Output 11(fvec4)
68(@entryPointOutput): 67(ptr) Variable Output 57(@entryPointOutput): 56(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
79: 6 Load 38(g_tInputTexture_sampler) 63: 6 Load 44(g_tInputTexture_sampler)
80: 9 Load 41(g_tInputTexture) 64: 8 Load 47(g_tInputTexture)
95: 24 SampledImage 80 79 73: 28 SampledImage 64 63
98: 28(fvec2) CompositeConstruct 43 43 78: 36(fvec2) CompositeConstruct 49 49
99: 12(fvec4) ImageSampleExplicitLod 95 98 Lod 30 79: 11(fvec4) ImageSampleExplicitLod 73 78 Lod 38
Store 68(@entryPointOutput) 99 Store 57(@entryPointOutput) 79
Return Return
FunctionEnd FunctionEnd

View File

@ -2,47 +2,67 @@ hlsl.flattenSubset.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 85 // Id's are bound by 66
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 54 57 EntryPoint Fragment 4 "main" 47 50
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 17 "samp" Name 15 "S0"
Name 41 "tex" MemberName 15(S0) 0 "x"
Name 54 "vpos" MemberName 15(S0) 1 "y"
Name 57 "@entryPointOutput" MemberName 15(S0) 2 "ss"
Decorate 17(samp) DescriptorSet 0 Name 16 "S1"
Decorate 41(tex) DescriptorSet 0 MemberName 16(S1) 0 "b"
Decorate 54(vpos) Location 0 MemberName 16(S1) 1 "samplerState"
Decorate 57(@entryPointOutput) Location 0 MemberName 16(S1) 2 "s0"
MemberName 16(S1) 3 "a"
Name 21 "samp"
Name 25 "S2"
MemberName 25(S2) 0 "a1"
MemberName 25(S2) 1 "a2"
MemberName 25(S2) 2 "a3"
MemberName 25(S2) 3 "a4"
MemberName 25(S2) 4 "a5"
MemberName 25(S2) 5 "resources"
Name 33 "tex"
Name 47 "vpos"
Name 50 "@entryPointOutput"
Decorate 21(samp) DescriptorSet 0
Decorate 33(tex) DescriptorSet 0
Decorate 47(vpos) Location 0
Decorate 50(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
7: TypeVector 6(float) 4 7: TypeVector 6(float) 4
13: TypeSampler 13: TypeSampler
16: TypePointer UniformConstant 13 14: TypeInt 32 1
17(samp): 16(ptr) Variable UniformConstant 15(S0): TypeStruct 14(int) 14(int) 13
39: TypeImage 6(float) 2D sampled format:Unknown 16(S1): TypeStruct 6(float) 13 15(S0) 14(int)
40: TypePointer UniformConstant 39 20: TypePointer UniformConstant 13
41(tex): 40(ptr) Variable UniformConstant 21(samp): 20(ptr) Variable UniformConstant
44: TypeSampledImage 39 25(S2): TypeStruct 14(int) 14(int) 14(int) 14(int) 14(int) 16(S1)
46: TypeVector 6(float) 2 31: TypeImage 6(float) 2D sampled format:Unknown
47: 6(float) Constant 1056964608 32: TypePointer UniformConstant 31
48: 46(fvec2) ConstantComposite 47 47 33(tex): 32(ptr) Variable UniformConstant
53: TypePointer Input 7(fvec4) 37: TypeSampledImage 31
54(vpos): 53(ptr) Variable Input 39: TypeVector 6(float) 2
56: TypePointer Output 7(fvec4) 40: 6(float) Constant 1056964608
57(@entryPointOutput): 56(ptr) Variable Output 41: 39(fvec2) ConstantComposite 40 40
46: TypePointer Input 7(fvec4)
47(vpos): 46(ptr) Variable Input
49: TypePointer Output 7(fvec4)
50(@entryPointOutput): 49(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
74: 13 Load 17(samp) 57: 13 Load 21(samp)
81: 39 Load 41(tex) 61: 31 Load 33(tex)
83: 44 SampledImage 81 74 64: 37 SampledImage 61 57
84: 7(fvec4) ImageSampleImplicitLod 83 48 65: 7(fvec4) ImageSampleImplicitLod 64 41
Store 57(@entryPointOutput) 84 Store 50(@entryPointOutput) 65
Return Return
FunctionEnd FunctionEnd

View File

@ -2,36 +2,48 @@ hlsl.flattenSubset2.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 44 // Id's are bound by 53
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 40 43 EntryPoint Fragment 4 "main" 49 52
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 31 "someTex" Name 14 "Nested"
Name 40 "vpos" MemberName 14(Nested) 0 "y"
Name 43 "@entryPointOutput" MemberName 14(Nested) 1 "texNested"
Decorate 31(someTex) DescriptorSet 0 Name 15 "A"
Decorate 40(vpos) Location 0 MemberName 15(A) 0 "n"
Decorate 43(@entryPointOutput) Location 0 MemberName 15(A) 1 "x"
Name 25 "B"
MemberName 25(B) 0 "n"
MemberName 25(B) 1 "tex"
Name 36 "someTex"
Name 49 "vpos"
Name 52 "@entryPointOutput"
Decorate 36(someTex) DescriptorSet 0
Decorate 49(vpos) Location 0
Decorate 52(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
7: TypeVector 6(float) 4 7: TypeVector 6(float) 4
17: TypeImage 6(float) 2D sampled format:Unknown 13: TypeImage 6(float) 2D sampled format:Unknown
30: TypePointer UniformConstant 17 14(Nested): TypeStruct 6(float) 13
31(someTex): 30(ptr) Variable UniformConstant 15(A): TypeStruct 14(Nested) 6(float)
34: 6(float) Constant 0 25(B): TypeStruct 14(Nested) 13
35: 7(fvec4) ConstantComposite 34 34 34 34 35: TypePointer UniformConstant 13
39: TypePointer Input 7(fvec4) 36(someTex): 35(ptr) Variable UniformConstant
40(vpos): 39(ptr) Variable Input 43: 6(float) Constant 0
42: TypePointer Output 7(fvec4) 44: 7(fvec4) ConstantComposite 43 43 43 43
43(@entryPointOutput): 42(ptr) Variable Output 48: TypePointer Input 7(fvec4)
49(vpos): 48(ptr) Variable Input
51: TypePointer Output 7(fvec4)
52(@entryPointOutput): 51(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
Store 43(@entryPointOutput) 35 Store 52(@entryPointOutput) 44
Return Return
FunctionEnd FunctionEnd

View File

@ -2,90 +2,108 @@ hlsl.partialFlattenLocal.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 148 // Id's are bound by 132
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 90 93 EntryPoint Vertex 4 "main" 83 86
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 17 "tex" Name 22 "Packed"
Name 90 "pos" MemberName 22(Packed) 0 "tex"
Name 93 "@entryPointOutput" MemberName 22(Packed) 1 "pos"
Decorate 17(tex) DescriptorSet 0 MemberName 22(Packed) 2 "uv"
Decorate 90(pos) Location 0 MemberName 22(Packed) 3 "x"
Decorate 93(@entryPointOutput) BuiltIn Position MemberName 22(Packed) 4 "n"
Name 27 "tex"
Name 83 "pos"
Name 86 "@entryPointOutput"
Decorate 27(tex) DescriptorSet 0
Decorate 83(pos) Location 0
Decorate 86(@entryPointOutput) BuiltIn Position
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
7: TypeVector 6(float) 4 7: TypeVector 6(float) 4
13: TypeImage 6(float) 2D sampled format:Unknown 13: TypeImage 6(float) 2D sampled format:Unknown
16: TypePointer UniformConstant 13 14: TypeVector 6(float) 3
17(tex): 16(ptr) Variable UniformConstant 15: TypeInt 32 0
19: TypeVector 6(float) 3 16: 15(int) Constant 3
20: TypeInt 32 0 17: TypeArray 14(fvec3) 16
21: 20(int) Constant 3 18: TypeVector 6(float) 2
22: TypeArray 19(fvec3) 21 19: 15(int) Constant 2
23: TypePointer Function 22 20: TypeArray 18(fvec2) 19
25: TypeInt 32 1 21: TypeInt 32 1
26: 25(int) Constant 0 22(Packed): TypeStruct 13 17 20 6(float) 21(int)
27: 6(float) Constant 0 23: TypePointer Function 22(Packed)
28: 19(fvec3) ConstantComposite 27 27 27 25: 21(int) Constant 0
29: TypePointer Function 19(fvec3) 26: TypePointer UniformConstant 13
31: TypeVector 6(float) 2 27(tex): 26(ptr) Variable UniformConstant
32: 20(int) Constant 2 29: TypePointer Function 13
33: TypeArray 31(fvec2) 32 31: 21(int) Constant 1
34: TypePointer Function 33 32: 6(float) Constant 0
36: 6(float) Constant 1065353216 33: 14(fvec3) ConstantComposite 32 32 32
37: 31(fvec2) ConstantComposite 27 36 34: TypePointer Function 14(fvec3)
38: TypePointer Function 31(fvec2) 36: 21(int) Constant 2
52: 25(int) Constant 1 37: 6(float) Constant 1065353216
53: TypeBool 38: 18(fvec2) ConstantComposite 32 37
89: TypePointer Input 7(fvec4) 39: TypePointer Function 18(fvec2)
90(pos): 89(ptr) Variable Input 41: 21(int) Constant 3
92: TypePointer Output 7(fvec4) 42: TypePointer Function 6(float)
93(@entryPointOutput): 92(ptr) Variable Output 44: 21(int) Constant 4
45: TypePointer Function 21(int)
54: TypeBool
82: TypePointer Input 7(fvec4)
83(pos): 82(ptr) Variable Input
85: TypePointer Output 7(fvec4)
86(@entryPointOutput): 85(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
98: 23(ptr) Variable Function 90: 23(ptr) Variable Function
99: 34(ptr) Variable Function 84: 7(fvec4) Load 83(pos)
91: 7(fvec4) Load 90(pos) 94: 13 Load 27(tex)
110: 29(ptr) AccessChain 98 26 95: 29(ptr) AccessChain 90 25
Store 110 28 Store 95 94
111: 38(ptr) AccessChain 99 26 96: 34(ptr) AccessChain 90 31 25
Store 111 37 Store 96 33
Branch 112 97: 39(ptr) AccessChain 90 36 25
112: Label Store 97 38
147: 25(int) Phi 26 5 131 114 98: 42(ptr) AccessChain 90 41
LoopMerge 113 114 None Store 98 37
Branch 115 99: 45(ptr) AccessChain 90 44
115: Label Store 99 41
117: 53(bool) SLessThan 147 52 Branch 100
BranchConditional 117 118 113 100: Label
118: Label 131: 21(int) Phi 25 5 119 102
121: 38(ptr) AccessChain 99 147 LoopMerge 101 102 None
122: 31(fvec2) Load 121 Branch 103
123: 29(ptr) AccessChain 98 147 103: Label
124: 19(fvec3) Load 123 105: 54(bool) SLessThan 131 31
125: 31(fvec2) VectorShuffle 124 124 0 1 BranchConditional 105 106 101
126: 31(fvec2) FAdd 125 122 106: Label
127: 29(ptr) AccessChain 98 147 109: 39(ptr) AccessChain 90 36 131
128: 19(fvec3) Load 127 110: 18(fvec2) Load 109
129: 19(fvec3) VectorShuffle 128 126 3 4 2 111: 34(ptr) AccessChain 90 31 131
Store 127 129 112: 14(fvec3) Load 111
Branch 114 113: 18(fvec2) VectorShuffle 112 112 0 1
114: Label 114: 18(fvec2) FAdd 113 110
131: 25(int) IAdd 147 52 115: 34(ptr) AccessChain 90 31 131
Branch 112 116: 14(fvec3) Load 115
113: Label 117: 14(fvec3) VectorShuffle 116 114 3 4 2
133: 22 Load 98 Store 115 117
146: 19(fvec3) CompositeExtract 133 0 Branch 102
140: 6(float) CompositeExtract 146 0 102: Label
141: 6(float) CompositeExtract 146 1 119: 21(int) IAdd 131 31
142: 6(float) CompositeExtract 146 2 Branch 100
143: 7(fvec4) CompositeConstruct 140 141 142 27 101: Label
144: 7(fvec4) FAdd 91 143 120: 22(Packed) Load 90
Store 93(@entryPointOutput) 144 130: 14(fvec3) CompositeExtract 120 1 0
124: 6(float) CompositeExtract 130 0
125: 6(float) CompositeExtract 130 1
126: 6(float) CompositeExtract 130 2
127: 7(fvec4) CompositeConstruct 124 125 126 32
128: 7(fvec4) FAdd 84 127
Store 86(@entryPointOutput) 128
Return Return
FunctionEnd FunctionEnd

View File

@ -2,37 +2,43 @@ hlsl.partialFlattenMixed.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 31 // Id's are bound by 36
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 27 30 EntryPoint Vertex 4 "main" 32 35
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 20 "tex" Name 18 "Packed"
Name 27 "pos" MemberName 18(Packed) 0 "a"
Name 30 "@entryPointOutput" MemberName 18(Packed) 1 "membTex"
Decorate 20(tex) DescriptorSet 0 MemberName 18(Packed) 2 "b"
Decorate 27(pos) Location 0 Name 23 "tex"
Decorate 30(@entryPointOutput) BuiltIn Position Name 32 "pos"
Name 35 "@entryPointOutput"
Decorate 23(tex) DescriptorSet 0
Decorate 32(pos) Location 0
Decorate 35(@entryPointOutput) BuiltIn Position
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
7: TypeVector 6(float) 4 7: TypeVector 6(float) 4
13: TypeImage 6(float) 2D sampled format:Unknown 13: TypeInt 32 1
14: TypeInt 32 0 14: TypeImage 6(float) 2D sampled format:Unknown
15: 14(int) Constant 2 15: TypeInt 32 0
16: TypeArray 13 15 16: 15(int) Constant 2
19: TypePointer UniformConstant 16 17: TypeArray 14 16
20(tex): 19(ptr) Variable UniformConstant 18(Packed): TypeStruct 13(int) 17 13(int)
26: TypePointer Input 7(fvec4) 22: TypePointer UniformConstant 17
27(pos): 26(ptr) Variable Input 23(tex): 22(ptr) Variable UniformConstant
29: TypePointer Output 7(fvec4) 31: TypePointer Input 7(fvec4)
30(@entryPointOutput): 29(ptr) Variable Output 32(pos): 31(ptr) Variable Input
34: TypePointer Output 7(fvec4)
35(@entryPointOutput): 34(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
28: 7(fvec4) Load 27(pos) 33: 7(fvec4) Load 32(pos)
Store 30(@entryPointOutput) 28 Store 35(@entryPointOutput) 33
Return Return
FunctionEnd FunctionEnd

View File

@ -5,17 +5,24 @@ gl_FragCoord origin is upper left
0:? Sequence 0:? Sequence
0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) 0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
0:12 Function Parameters: 0:12 Function Parameters:
0:? 's.ss' ( in sampler) 0:12 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex})
0:? 's.a' ( in float)
0:? 's.tex' ( in texture2D)
0:? Sequence 0:? Sequence
0:13 Branch: Return with expression 0:13 Branch: Return with expression
0:13 vector-scale ( temp 4-component vector of float) 0:13 vector-scale ( temp 4-component vector of float)
0:? 's.a' ( in float) 0:13 a: direct index for structure ( temp float)
0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex})
0:13 Constant:
0:13 1 (const int)
0:13 texture ( temp 4-component vector of float) 0:13 texture ( temp 4-component vector of float)
0:13 Construct combined texture-sampler ( temp sampler2D) 0:13 Construct combined texture-sampler ( temp sampler2D)
0:? 's.tex' ( in texture2D) 0:13 tex: direct index for structure ( temp texture2D)
0:? 's.ss' ( in sampler) 0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex})
0:13 Constant:
0:13 2 (const int)
0:13 ss: direct index for structure ( temp sampler)
0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex})
0:13 Constant:
0:13 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
@ -23,23 +30,33 @@ gl_FragCoord origin is upper left
0:17 Function Parameters: 0:17 Function Parameters:
0:? Sequence 0:? Sequence
0:19 move second child to first child ( temp sampler) 0:19 move second child to first child ( temp sampler)
0:? 'os.ss' ( temp sampler) 0:19 ss: direct index for structure ( temp sampler)
0:19 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:19 Constant:
0:19 0 (const int)
0:19 'gss2' ( uniform sampler) 0:19 'gss2' ( uniform sampler)
0:20 move second child to first child ( temp sampler) 0:20 move second child to first child ( temp sampler)
0:? 'os.ss' ( temp sampler) 0:20 ss: direct index for structure ( temp sampler)
0:20 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:20 Constant:
0:20 0 (const int)
0:20 'gss' ( uniform sampler) 0:20 'gss' ( uniform sampler)
0:21 move second child to first child ( temp texture2D) 0:21 move second child to first child ( temp texture2D)
0:? 'os.tex' ( temp texture2D) 0:21 tex: direct index for structure ( temp texture2D)
0:21 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:21 Constant:
0:21 2 (const int)
0:21 'gtex' ( uniform texture2D) 0:21 'gtex' ( uniform texture2D)
0:22 move second child to first child ( temp float) 0:22 move second child to first child ( temp float)
0:? 'os.a' ( temp float) 0:22 a: direct index for structure ( temp float)
0:22 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:22 Constant:
0:22 1 (const int)
0:22 Constant: 0:22 Constant:
0:22 3.000000 0:22 3.000000
0:28 Branch: Return with expression 0:28 Branch: Return with expression
0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) 0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
0:? 'os.ss' ( temp sampler) 0:28 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:? 'os.a' ( temp float)
0:? 'os.tex' ( temp texture2D)
0:17 Function Definition: main( ( temp void) 0:17 Function Definition: main( ( temp void)
0:17 Function Parameters: 0:17 Function Parameters:
0:? Sequence 0:? Sequence
@ -61,17 +78,24 @@ gl_FragCoord origin is upper left
0:? Sequence 0:? Sequence
0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) 0:12 Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
0:12 Function Parameters: 0:12 Function Parameters:
0:? 's.ss' ( in sampler) 0:12 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex})
0:? 's.a' ( in float)
0:? 's.tex' ( in texture2D)
0:? Sequence 0:? Sequence
0:13 Branch: Return with expression 0:13 Branch: Return with expression
0:13 vector-scale ( temp 4-component vector of float) 0:13 vector-scale ( temp 4-component vector of float)
0:? 's.a' ( in float) 0:13 a: direct index for structure ( temp float)
0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex})
0:13 Constant:
0:13 1 (const int)
0:13 texture ( temp 4-component vector of float) 0:13 texture ( temp 4-component vector of float)
0:13 Construct combined texture-sampler ( temp sampler2D) 0:13 Construct combined texture-sampler ( temp sampler2D)
0:? 's.tex' ( in texture2D) 0:13 tex: direct index for structure ( temp texture2D)
0:? 's.ss' ( in sampler) 0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex})
0:13 Constant:
0:13 2 (const int)
0:13 ss: direct index for structure ( temp sampler)
0:13 's' ( in structure{ temp sampler ss, temp float a, temp texture2D tex})
0:13 Constant:
0:13 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
@ -79,23 +103,33 @@ gl_FragCoord origin is upper left
0:17 Function Parameters: 0:17 Function Parameters:
0:? Sequence 0:? Sequence
0:19 move second child to first child ( temp sampler) 0:19 move second child to first child ( temp sampler)
0:? 'os.ss' ( temp sampler) 0:19 ss: direct index for structure ( temp sampler)
0:19 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:19 Constant:
0:19 0 (const int)
0:19 'gss2' ( uniform sampler) 0:19 'gss2' ( uniform sampler)
0:20 move second child to first child ( temp sampler) 0:20 move second child to first child ( temp sampler)
0:? 'os.ss' ( temp sampler) 0:20 ss: direct index for structure ( temp sampler)
0:20 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:20 Constant:
0:20 0 (const int)
0:20 'gss' ( uniform sampler) 0:20 'gss' ( uniform sampler)
0:21 move second child to first child ( temp texture2D) 0:21 move second child to first child ( temp texture2D)
0:? 'os.tex' ( temp texture2D) 0:21 tex: direct index for structure ( temp texture2D)
0:21 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:21 Constant:
0:21 2 (const int)
0:21 'gtex' ( uniform texture2D) 0:21 'gtex' ( uniform texture2D)
0:22 move second child to first child ( temp float) 0:22 move second child to first child ( temp float)
0:? 'os.a' ( temp float) 0:22 a: direct index for structure ( temp float)
0:22 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:22 Constant:
0:22 1 (const int)
0:22 Constant: 0:22 Constant:
0:22 3.000000 0:22 3.000000
0:28 Branch: Return with expression 0:28 Branch: Return with expression
0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float) 0:28 Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
0:? 'os.ss' ( temp sampler) 0:28 'os' ( temp structure{ temp sampler ss, temp float a, temp texture2D tex})
0:? 'os.a' ( temp float)
0:? 'os.tex' ( temp texture2D)
0:17 Function Definition: main( ( temp void) 0:17 Function Definition: main( ( temp void)
0:17 Function Parameters: 0:17 Function Parameters:
0:? Sequence 0:? Sequence
@ -110,98 +144,99 @@ gl_FragCoord origin is upper left
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 59 // Id's are bound by 64
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 57 EntryPoint Fragment 4 "main" 62
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 17 "osCall(struct-OS-p1-f1-t211;" Name 9 "OS"
Name 14 "s.ss" MemberName 9(OS) 0 "ss"
Name 15 "s.a" MemberName 9(OS) 1 "a"
Name 16 "s.tex" MemberName 9(OS) 2 "tex"
Name 20 "@main(" Name 14 "osCall(struct-OS-p1-f1-t211;"
Name 35 "os.ss" Name 13 "s"
Name 37 "gss2" Name 17 "@main("
Name 39 "gss" Name 42 "os"
Name 41 "os.tex" Name 44 "gss2"
Name 43 "gtex" Name 47 "gss"
Name 45 "os.a" Name 51 "gtex"
Name 47 "param" Name 56 "param"
Name 49 "param" Name 62 "@entryPointOutput"
Name 51 "param" Decorate 44(gss2) DescriptorSet 0
Name 57 "@entryPointOutput" Decorate 47(gss) DescriptorSet 0
Decorate 37(gss2) DescriptorSet 0 Decorate 51(gtex) DescriptorSet 0
Decorate 39(gss) DescriptorSet 0 Decorate 62(@entryPointOutput) Location 0
Decorate 43(gtex) DescriptorSet 0
Decorate 57(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeSampler 6: TypeSampler
7: TypePointer Function 6 7: TypeFloat 32
8: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown
9: TypePointer Function 8(float) 9(OS): TypeStruct 6 7(float) 8
10: TypeImage 8(float) 2D sampled format:Unknown 10: TypePointer Function 9(OS)
11: TypePointer Function 10 11: TypeVector 7(float) 4
12: TypeVector 8(float) 4 12: TypeFunction 11(fvec4) 10(ptr)
13: TypeFunction 12(fvec4) 7(ptr) 9(ptr) 11(ptr) 16: TypeFunction 11(fvec4)
19: TypeFunction 12(fvec4) 19: TypeInt 32 1
25: TypeSampledImage 10 20: 19(int) Constant 1
27: TypeVector 8(float) 2 21: TypePointer Function 7(float)
28: 8(float) Constant 1045220557 24: 19(int) Constant 2
29: 8(float) Constant 1050253722 25: TypePointer Function 8
30: 27(fvec2) ConstantComposite 28 29 28: 19(int) Constant 0
36: TypePointer UniformConstant 6 29: TypePointer Function 6
37(gss2): 36(ptr) Variable UniformConstant 32: TypeSampledImage 8
39(gss): 36(ptr) Variable UniformConstant 34: TypeVector 7(float) 2
42: TypePointer UniformConstant 10 35: 7(float) Constant 1045220557
43(gtex): 42(ptr) Variable UniformConstant 36: 7(float) Constant 1050253722
46: 8(float) Constant 1077936128 37: 34(fvec2) ConstantComposite 35 36
56: TypePointer Output 12(fvec4) 43: TypePointer UniformConstant 6
57(@entryPointOutput): 56(ptr) Variable Output 44(gss2): 43(ptr) Variable UniformConstant
47(gss): 43(ptr) Variable UniformConstant
50: TypePointer UniformConstant 8
51(gtex): 50(ptr) Variable UniformConstant
54: 7(float) Constant 1077936128
61: TypePointer Output 11(fvec4)
62(@entryPointOutput): 61(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
58: 12(fvec4) FunctionCall 20(@main() 63: 11(fvec4) FunctionCall 17(@main()
Store 57(@entryPointOutput) 58 Store 62(@entryPointOutput) 63
Return Return
FunctionEnd FunctionEnd
17(osCall(struct-OS-p1-f1-t211;): 12(fvec4) Function None 13 14(osCall(struct-OS-p1-f1-t211;): 11(fvec4) Function None 12
14(s.ss): 7(ptr) FunctionParameter 13(s): 10(ptr) FunctionParameter
15(s.a): 9(ptr) FunctionParameter 15: Label
16(s.tex): 11(ptr) FunctionParameter 22: 21(ptr) AccessChain 13(s) 20
23: 7(float) Load 22
26: 25(ptr) AccessChain 13(s) 24
27: 8 Load 26
30: 29(ptr) AccessChain 13(s) 28
31: 6 Load 30
33: 32 SampledImage 27 31
38: 11(fvec4) ImageSampleImplicitLod 33 37
39: 11(fvec4) VectorTimesScalar 38 23
ReturnValue 39
FunctionEnd
17(@main(): 11(fvec4) Function None 16
18: Label 18: Label
22: 8(float) Load 15(s.a) 42(os): 10(ptr) Variable Function
23: 10 Load 16(s.tex) 56(param): 10(ptr) Variable Function
24: 6 Load 14(s.ss) 45: 6 Load 44(gss2)
26: 25 SampledImage 23 24 46: 29(ptr) AccessChain 42(os) 28
31: 12(fvec4) ImageSampleImplicitLod 26 30 Store 46 45
32: 12(fvec4) VectorTimesScalar 31 22 48: 6 Load 47(gss)
ReturnValue 32 49: 29(ptr) AccessChain 42(os) 28
FunctionEnd Store 49 48
20(@main(): 12(fvec4) Function None 19 52: 8 Load 51(gtex)
21: Label 53: 25(ptr) AccessChain 42(os) 24
35(os.ss): 7(ptr) Variable Function Store 53 52
41(os.tex): 11(ptr) Variable Function 55: 21(ptr) AccessChain 42(os) 20
45(os.a): 9(ptr) Variable Function Store 55 54
47(param): 7(ptr) Variable Function 57: 9(OS) Load 42(os)
49(param): 9(ptr) Variable Function Store 56(param) 57
51(param): 11(ptr) Variable Function 58: 11(fvec4) FunctionCall 14(osCall(struct-OS-p1-f1-t211;) 56(param)
38: 6 Load 37(gss2) ReturnValue 58
Store 35(os.ss) 38
40: 6 Load 39(gss)
Store 35(os.ss) 40
44: 10 Load 43(gtex)
Store 41(os.tex) 44
Store 45(os.a) 46
48: 6 Load 35(os.ss)
Store 47(param) 48
50: 8(float) Load 45(os.a)
Store 49(param) 50
52: 10 Load 41(os.tex)
Store 51(param) 52
53: 12(fvec4) FunctionCall 17(osCall(struct-OS-p1-f1-t211;) 47(param) 49(param) 51(param)
ReturnValue 53
FunctionEnd FunctionEnd

View File

@ -1,54 +1,71 @@
hlsl.flattenOpaque.frag hlsl.flattenOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
Shader version: 500 Shader version: 500
gl_FragCoord origin is upper left gl_FragCoord origin is upper left
0:? Sequence 0:? Sequence
0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) 0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float)
0:15 Function Parameters: 0:15 Function Parameters:
0:? 's.s2D' ( in sampler) 0:15 's' ( in structure{ temp sampler s2D})
0:? Sequence 0:? Sequence
0:16 Branch: Return with expression 0:16 Branch: Return with expression
0:16 texture ( temp 4-component vector of float) 0:16 texture ( temp 4-component vector of float)
0:16 Construct combined texture-sampler ( temp sampler2D) 0:16 Construct combined texture-sampler ( temp sampler2D)
0:16 'tex' ( uniform texture2D) 0:16 'tex' ( uniform texture2D)
0:? 's.s2D' ( in sampler) 0:16 s2D: direct index for structure ( temp sampler)
0:16 's' ( in structure{ temp sampler s2D})
0:16 Constant:
0:16 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) 0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float)
0:20 Function Parameters: 0:20 Function Parameters:
0:? 's.s2D' ( in sampler) 0:20 's' ( in structure{ temp sampler s2D})
0:20 'f2' ( in 2-component vector of float) 0:20 'f2' ( in 2-component vector of float)
0:? Sequence 0:? Sequence
0:21 Branch: Return with expression 0:21 Branch: Return with expression
0:21 texture ( temp 4-component vector of float) 0:21 texture ( temp 4-component vector of float)
0:21 Construct combined texture-sampler ( temp sampler2D) 0:21 Construct combined texture-sampler ( temp sampler2D)
0:21 'tex' ( uniform texture2D) 0:21 'tex' ( uniform texture2D)
0:? 's.s2D' ( in sampler) 0:21 s2D: direct index for structure ( temp sampler)
0:21 's' ( in structure{ temp sampler s2D})
0:21 Constant:
0:21 0 (const int)
0:21 'f2' ( in 2-component vector of float) 0:21 'f2' ( in 2-component vector of float)
0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) 0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float)
0:25 Function Parameters: 0:25 Function Parameters:
0:? 's.s2D' ( in sampler) 0:25 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:? 's.tex' ( in texture2D)
0:? Sequence 0:? Sequence
0:26 Branch: Return with expression 0:26 Branch: Return with expression
0:26 texture ( temp 4-component vector of float) 0:26 texture ( temp 4-component vector of float)
0:26 Construct combined texture-sampler ( temp sampler2D) 0:26 Construct combined texture-sampler ( temp sampler2D)
0:? 's.tex' ( in texture2D) 0:26 tex: direct index for structure ( temp texture2D)
0:? 's.s2D' ( in sampler) 0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:26 Constant:
0:26 1 (const int)
0:26 s2D: direct index for structure ( temp sampler)
0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:26 Constant:
0:26 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) 0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float)
0:30 Function Parameters: 0:30 Function Parameters:
0:? 's.s2D' ( in sampler) 0:30 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:? 's.tex' ( in texture2D)
0:30 'f2' ( in 2-component vector of float) 0:30 'f2' ( in 2-component vector of float)
0:? Sequence 0:? Sequence
0:31 Branch: Return with expression 0:31 Branch: Return with expression
0:31 texture ( temp 4-component vector of float) 0:31 texture ( temp 4-component vector of float)
0:31 Construct combined texture-sampler ( temp sampler2D) 0:31 Construct combined texture-sampler ( temp sampler2D)
0:? 's.tex' ( in texture2D) 0:31 tex: direct index for structure ( temp texture2D)
0:? 's.s2D' ( in sampler) 0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:31 Constant:
0:31 1 (const int)
0:31 s2D: direct index for structure ( temp sampler)
0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:31 Constant:
0:31 0 (const int)
0:31 'f2' ( in 2-component vector of float) 0:31 'f2' ( in 2-component vector of float)
0:35 Function Definition: @main( ( temp 4-component vector of float) 0:35 Function Definition: @main( ( temp 4-component vector of float)
0:35 Function Parameters: 0:35 Function Parameters:
@ -58,18 +75,60 @@ gl_FragCoord origin is upper left
0:37 add ( temp 4-component vector of float) 0:37 add ( temp 4-component vector of float)
0:36 add ( temp 4-component vector of float) 0:36 add ( temp 4-component vector of float)
0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) 0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float)
0:36 Comma ( temp structure{ temp sampler s2D})
0:36 Sequence
0:36 move second child to first child ( temp sampler)
0:36 s2D: direct index for structure ( temp sampler)
0:36 'aggShadow' ( temp structure{ temp sampler s2D})
0:36 Constant:
0:36 0 (const int)
0:? 's.s2D' ( uniform sampler) 0:? 's.s2D' ( uniform sampler)
0:36 'aggShadow' ( temp structure{ temp sampler s2D})
0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) 0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float)
0:37 Comma ( temp structure{ temp sampler s2D})
0:37 Sequence
0:37 move second child to first child ( temp sampler)
0:37 s2D: direct index for structure ( temp sampler)
0:37 'aggShadow' ( temp structure{ temp sampler s2D})
0:37 Constant:
0:37 0 (const int)
0:? 's.s2D' ( uniform sampler) 0:? 's.s2D' ( uniform sampler)
0:37 'aggShadow' ( temp structure{ temp sampler s2D})
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) 0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float)
0:38 Comma ( temp structure{ temp sampler s2D, temp texture2D tex})
0:38 Sequence
0:38 move second child to first child ( temp sampler)
0:38 s2D: direct index for structure ( temp sampler)
0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:38 Constant:
0:38 0 (const int)
0:? 's2.s2D' ( uniform sampler) 0:? 's2.s2D' ( uniform sampler)
0:38 move second child to first child ( temp texture2D)
0:38 tex: direct index for structure ( temp texture2D)
0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:38 Constant:
0:38 1 (const int)
0:? 's2.tex' ( uniform texture2D) 0:? 's2.tex' ( uniform texture2D)
0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) 0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float)
0:39 Comma ( temp structure{ temp sampler s2D, temp texture2D tex})
0:39 Sequence
0:39 move second child to first child ( temp sampler)
0:39 s2D: direct index for structure ( temp sampler)
0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:39 Constant:
0:39 0 (const int)
0:? 's2.s2D' ( uniform sampler) 0:? 's2.s2D' ( uniform sampler)
0:39 move second child to first child ( temp texture2D)
0:39 tex: direct index for structure ( temp texture2D)
0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:39 Constant:
0:39 1 (const int)
0:? 's2.tex' ( uniform texture2D) 0:? 's2.tex' ( uniform texture2D)
0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
@ -95,51 +154,67 @@ gl_FragCoord origin is upper left
0:? Sequence 0:? Sequence
0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float) 0:15 Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float)
0:15 Function Parameters: 0:15 Function Parameters:
0:? 's.s2D' ( in sampler) 0:15 's' ( in structure{ temp sampler s2D})
0:? Sequence 0:? Sequence
0:16 Branch: Return with expression 0:16 Branch: Return with expression
0:16 texture ( temp 4-component vector of float) 0:16 texture ( temp 4-component vector of float)
0:16 Construct combined texture-sampler ( temp sampler2D) 0:16 Construct combined texture-sampler ( temp sampler2D)
0:16 'tex' ( uniform texture2D) 0:16 'tex' ( uniform texture2D)
0:? 's.s2D' ( in sampler) 0:16 s2D: direct index for structure ( temp sampler)
0:16 's' ( in structure{ temp sampler s2D})
0:16 Constant:
0:16 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) 0:20 Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float)
0:20 Function Parameters: 0:20 Function Parameters:
0:? 's.s2D' ( in sampler) 0:20 's' ( in structure{ temp sampler s2D})
0:20 'f2' ( in 2-component vector of float) 0:20 'f2' ( in 2-component vector of float)
0:? Sequence 0:? Sequence
0:21 Branch: Return with expression 0:21 Branch: Return with expression
0:21 texture ( temp 4-component vector of float) 0:21 texture ( temp 4-component vector of float)
0:21 Construct combined texture-sampler ( temp sampler2D) 0:21 Construct combined texture-sampler ( temp sampler2D)
0:21 'tex' ( uniform texture2D) 0:21 'tex' ( uniform texture2D)
0:? 's.s2D' ( in sampler) 0:21 s2D: direct index for structure ( temp sampler)
0:21 's' ( in structure{ temp sampler s2D})
0:21 Constant:
0:21 0 (const int)
0:21 'f2' ( in 2-component vector of float) 0:21 'f2' ( in 2-component vector of float)
0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) 0:25 Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float)
0:25 Function Parameters: 0:25 Function Parameters:
0:? 's.s2D' ( in sampler) 0:25 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:? 's.tex' ( in texture2D)
0:? Sequence 0:? Sequence
0:26 Branch: Return with expression 0:26 Branch: Return with expression
0:26 texture ( temp 4-component vector of float) 0:26 texture ( temp 4-component vector of float)
0:26 Construct combined texture-sampler ( temp sampler2D) 0:26 Construct combined texture-sampler ( temp sampler2D)
0:? 's.tex' ( in texture2D) 0:26 tex: direct index for structure ( temp texture2D)
0:? 's.s2D' ( in sampler) 0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:26 Constant:
0:26 1 (const int)
0:26 s2D: direct index for structure ( temp sampler)
0:26 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:26 Constant:
0:26 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) 0:30 Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float)
0:30 Function Parameters: 0:30 Function Parameters:
0:? 's.s2D' ( in sampler) 0:30 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:? 's.tex' ( in texture2D)
0:30 'f2' ( in 2-component vector of float) 0:30 'f2' ( in 2-component vector of float)
0:? Sequence 0:? Sequence
0:31 Branch: Return with expression 0:31 Branch: Return with expression
0:31 texture ( temp 4-component vector of float) 0:31 texture ( temp 4-component vector of float)
0:31 Construct combined texture-sampler ( temp sampler2D) 0:31 Construct combined texture-sampler ( temp sampler2D)
0:? 's.tex' ( in texture2D) 0:31 tex: direct index for structure ( temp texture2D)
0:? 's.s2D' ( in sampler) 0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:31 Constant:
0:31 1 (const int)
0:31 s2D: direct index for structure ( temp sampler)
0:31 's' ( in structure{ temp sampler s2D, temp texture2D tex})
0:31 Constant:
0:31 0 (const int)
0:31 'f2' ( in 2-component vector of float) 0:31 'f2' ( in 2-component vector of float)
0:35 Function Definition: @main( ( temp 4-component vector of float) 0:35 Function Definition: @main( ( temp 4-component vector of float)
0:35 Function Parameters: 0:35 Function Parameters:
@ -149,18 +224,60 @@ gl_FragCoord origin is upper left
0:37 add ( temp 4-component vector of float) 0:37 add ( temp 4-component vector of float)
0:36 add ( temp 4-component vector of float) 0:36 add ( temp 4-component vector of float)
0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float) 0:36 Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float)
0:36 Comma ( temp structure{ temp sampler s2D})
0:36 Sequence
0:36 move second child to first child ( temp sampler)
0:36 s2D: direct index for structure ( temp sampler)
0:36 'aggShadow' ( temp structure{ temp sampler s2D})
0:36 Constant:
0:36 0 (const int)
0:? 's.s2D' ( uniform sampler) 0:? 's.s2D' ( uniform sampler)
0:36 'aggShadow' ( temp structure{ temp sampler s2D})
0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float) 0:37 Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float)
0:37 Comma ( temp structure{ temp sampler s2D})
0:37 Sequence
0:37 move second child to first child ( temp sampler)
0:37 s2D: direct index for structure ( temp sampler)
0:37 'aggShadow' ( temp structure{ temp sampler s2D})
0:37 Constant:
0:37 0 (const int)
0:? 's.s2D' ( uniform sampler) 0:? 's.s2D' ( uniform sampler)
0:37 'aggShadow' ( temp structure{ temp sampler s2D})
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float) 0:38 Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float)
0:38 Comma ( temp structure{ temp sampler s2D, temp texture2D tex})
0:38 Sequence
0:38 move second child to first child ( temp sampler)
0:38 s2D: direct index for structure ( temp sampler)
0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:38 Constant:
0:38 0 (const int)
0:? 's2.s2D' ( uniform sampler) 0:? 's2.s2D' ( uniform sampler)
0:38 move second child to first child ( temp texture2D)
0:38 tex: direct index for structure ( temp texture2D)
0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:38 Constant:
0:38 1 (const int)
0:? 's2.tex' ( uniform texture2D) 0:? 's2.tex' ( uniform texture2D)
0:38 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float) 0:39 Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float)
0:39 Comma ( temp structure{ temp sampler s2D, temp texture2D tex})
0:39 Sequence
0:39 move second child to first child ( temp sampler)
0:39 s2D: direct index for structure ( temp sampler)
0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:39 Constant:
0:39 0 (const int)
0:? 's2.s2D' ( uniform sampler) 0:? 's2.s2D' ( uniform sampler)
0:39 move second child to first child ( temp texture2D)
0:39 tex: direct index for structure ( temp texture2D)
0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:39 Constant:
0:39 1 (const int)
0:? 's2.tex' ( uniform texture2D) 0:? 's2.tex' ( uniform texture2D)
0:39 'aggShadow' ( temp structure{ temp sampler s2D, temp texture2D tex})
0:? Constant: 0:? Constant:
0:? 0.200000 0:? 0.200000
0:? 0.300000 0:? 0.300000
@ -179,151 +296,183 @@ gl_FragCoord origin is upper left
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 99 // Id's are bound by 122
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 97 EntryPoint Fragment 4 "main" 120
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 12 "osCall1(struct-os-p11;" Name 7 "os"
Name 11 "s.s2D" MemberName 7(os) 0 "s2D"
Name 19 "osCall2(struct-os-p11;vf2;" Name 13 "osCall1(struct-os-p11;"
Name 17 "s.s2D" Name 12 "s"
Name 18 "f2" Name 20 "osCall2(struct-os-p11;vf2;"
Name 26 "os2Call1(struct-os2-p1-t211;" Name 18 "s"
Name 24 "s.s2D" Name 19 "f2"
Name 25 "s.tex" Name 23 "os2"
MemberName 23(os2) 0 "s2D"
MemberName 23(os2) 1 "tex"
Name 27 "os2Call1(struct-os2-p1-t211;"
Name 26 "s"
Name 32 "os2Call2(struct-os2-p1-t211;vf2;" Name 32 "os2Call2(struct-os2-p1-t211;vf2;"
Name 29 "s.s2D" Name 30 "s"
Name 30 "s.tex"
Name 31 "f2" Name 31 "f2"
Name 35 "@main(" Name 35 "@main("
Name 38 "tex" Name 38 "tex"
Name 70 "s.s2D" Name 80 "aggShadow"
Name 71 "param" Name 82 "s.s2D"
Name 74 "param" Name 85 "param"
Name 76 "param" Name 88 "aggShadow"
Name 79 "s2.s2D"
Name 80 "s2.tex"
Name 81 "param"
Name 83 "param"
Name 87 "param"
Name 89 "param"
Name 91 "param" Name 91 "param"
Name 97 "@entryPointOutput" Name 93 "param"
Name 96 "aggShadow"
Name 97 "s2.s2D"
Name 100 "s2.tex"
Name 103 "param"
Name 107 "aggShadow"
Name 112 "param"
Name 114 "param"
Name 120 "@entryPointOutput"
Decorate 38(tex) DescriptorSet 0 Decorate 38(tex) DescriptorSet 0
Decorate 70(s.s2D) DescriptorSet 0 Decorate 82(s.s2D) DescriptorSet 0
Decorate 79(s2.s2D) DescriptorSet 0 Decorate 97(s2.s2D) DescriptorSet 0
Decorate 80(s2.tex) DescriptorSet 0 Decorate 100(s2.tex) DescriptorSet 0
Decorate 97(@entryPointOutput) Location 0 Decorate 120(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeSampler 6: TypeSampler
7: TypePointer Function 6 7(os): TypeStruct 6
8: TypeFloat 32 8: TypePointer Function 7(os)
9: TypeVector 8(float) 4 9: TypeFloat 32
10: TypeFunction 9(fvec4) 7(ptr) 10: TypeVector 9(float) 4
14: TypeVector 8(float) 2 11: TypeFunction 10(fvec4) 8(ptr)
15: TypePointer Function 14(fvec2) 15: TypeVector 9(float) 2
16: TypeFunction 9(fvec4) 7(ptr) 15(ptr) 16: TypePointer Function 15(fvec2)
21: TypeImage 8(float) 2D sampled format:Unknown 17: TypeFunction 10(fvec4) 8(ptr) 16(ptr)
22: TypePointer Function 21 22: TypeImage 9(float) 2D sampled format:Unknown
23: TypeFunction 9(fvec4) 7(ptr) 22(ptr) 23(os2): TypeStruct 6 22
28: TypeFunction 9(fvec4) 7(ptr) 22(ptr) 15(ptr) 24: TypePointer Function 23(os2)
34: TypeFunction 9(fvec4) 25: TypeFunction 10(fvec4) 24(ptr)
37: TypePointer UniformConstant 21 29: TypeFunction 10(fvec4) 24(ptr) 16(ptr)
34: TypeFunction 10(fvec4)
37: TypePointer UniformConstant 22
38(tex): 37(ptr) Variable UniformConstant 38(tex): 37(ptr) Variable UniformConstant
41: TypeSampledImage 21 40: TypeInt 32 1
43: 8(float) Constant 1045220557 41: 40(int) Constant 0
44: 8(float) Constant 1050253722 42: TypePointer Function 6
45: 14(fvec2) ConstantComposite 43 44 45: TypeSampledImage 22
69: TypePointer UniformConstant 6 47: 9(float) Constant 1045220557
70(s.s2D): 69(ptr) Variable UniformConstant 48: 9(float) Constant 1050253722
79(s2.s2D): 69(ptr) Variable UniformConstant 49: 15(fvec2) ConstantComposite 47 48
80(s2.tex): 37(ptr) Variable UniformConstant 61: 40(int) Constant 1
96: TypePointer Output 9(fvec4) 62: TypePointer Function 22
97(@entryPointOutput): 96(ptr) Variable Output 81: TypePointer UniformConstant 6
82(s.s2D): 81(ptr) Variable UniformConstant
97(s2.s2D): 81(ptr) Variable UniformConstant
100(s2.tex): 37(ptr) Variable UniformConstant
119: TypePointer Output 10(fvec4)
120(@entryPointOutput): 119(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
98: 9(fvec4) FunctionCall 35(@main() 121: 10(fvec4) FunctionCall 35(@main()
Store 97(@entryPointOutput) 98 Store 120(@entryPointOutput) 121
Return Return
FunctionEnd FunctionEnd
12(osCall1(struct-os-p11;): 9(fvec4) Function None 10 13(osCall1(struct-os-p11;): 10(fvec4) Function None 11
11(s.s2D): 7(ptr) FunctionParameter 12(s): 8(ptr) FunctionParameter
13: Label 14: Label
39: 21 Load 38(tex) 39: 22 Load 38(tex)
40: 6 Load 11(s.s2D) 43: 42(ptr) AccessChain 12(s) 41
42: 41 SampledImage 39 40 44: 6 Load 43
46: 9(fvec4) ImageSampleImplicitLod 42 45 46: 45 SampledImage 39 44
ReturnValue 46 50: 10(fvec4) ImageSampleImplicitLod 46 49
ReturnValue 50
FunctionEnd FunctionEnd
19(osCall2(struct-os-p11;vf2;): 9(fvec4) Function None 16 20(osCall2(struct-os-p11;vf2;): 10(fvec4) Function None 17
17(s.s2D): 7(ptr) FunctionParameter 18(s): 8(ptr) FunctionParameter
18(f2): 15(ptr) FunctionParameter 19(f2): 16(ptr) FunctionParameter
20: Label 21: Label
49: 21 Load 38(tex) 53: 22 Load 38(tex)
50: 6 Load 17(s.s2D) 54: 42(ptr) AccessChain 18(s) 41
51: 41 SampledImage 49 50 55: 6 Load 54
52: 14(fvec2) Load 18(f2) 56: 45 SampledImage 53 55
53: 9(fvec4) ImageSampleImplicitLod 51 52 57: 15(fvec2) Load 19(f2)
ReturnValue 53 58: 10(fvec4) ImageSampleImplicitLod 56 57
ReturnValue 58
FunctionEnd FunctionEnd
26(os2Call1(struct-os2-p1-t211;): 9(fvec4) Function None 23 27(os2Call1(struct-os2-p1-t211;): 10(fvec4) Function None 25
24(s.s2D): 7(ptr) FunctionParameter 26(s): 24(ptr) FunctionParameter
25(s.tex): 22(ptr) FunctionParameter 28: Label
27: Label 63: 62(ptr) AccessChain 26(s) 61
56: 21 Load 25(s.tex) 64: 22 Load 63
57: 6 Load 24(s.s2D) 65: 42(ptr) AccessChain 26(s) 41
58: 41 SampledImage 56 57 66: 6 Load 65
59: 9(fvec4) ImageSampleImplicitLod 58 45 67: 45 SampledImage 64 66
ReturnValue 59 68: 10(fvec4) ImageSampleImplicitLod 67 49
ReturnValue 68
FunctionEnd FunctionEnd
32(os2Call2(struct-os2-p1-t211;vf2;): 9(fvec4) Function None 28 32(os2Call2(struct-os2-p1-t211;vf2;): 10(fvec4) Function None 29
29(s.s2D): 7(ptr) FunctionParameter 30(s): 24(ptr) FunctionParameter
30(s.tex): 22(ptr) FunctionParameter 31(f2): 16(ptr) FunctionParameter
31(f2): 15(ptr) FunctionParameter
33: Label 33: Label
62: 21 Load 30(s.tex) 71: 62(ptr) AccessChain 30(s) 61
63: 6 Load 29(s.s2D) 72: 22 Load 71
64: 41 SampledImage 62 63 73: 42(ptr) AccessChain 30(s) 41
65: 14(fvec2) Load 31(f2) 74: 6 Load 73
66: 9(fvec4) ImageSampleImplicitLod 64 65 75: 45 SampledImage 72 74
ReturnValue 66 76: 15(fvec2) Load 31(f2)
77: 10(fvec4) ImageSampleImplicitLod 75 76
ReturnValue 77
FunctionEnd FunctionEnd
35(@main(): 9(fvec4) Function None 34 35(@main(): 10(fvec4) Function None 34
36: Label 36: Label
71(param): 7(ptr) Variable Function 80(aggShadow): 8(ptr) Variable Function
74(param): 7(ptr) Variable Function 85(param): 8(ptr) Variable Function
76(param): 15(ptr) Variable Function 88(aggShadow): 8(ptr) Variable Function
81(param): 7(ptr) Variable Function 91(param): 8(ptr) Variable Function
83(param): 22(ptr) Variable Function 93(param): 16(ptr) Variable Function
87(param): 7(ptr) Variable Function 96(aggShadow): 24(ptr) Variable Function
89(param): 22(ptr) Variable Function 103(param): 24(ptr) Variable Function
91(param): 15(ptr) Variable Function 107(aggShadow): 24(ptr) Variable Function
72: 6 Load 70(s.s2D) 112(param): 24(ptr) Variable Function
Store 71(param) 72 114(param): 16(ptr) Variable Function
73: 9(fvec4) FunctionCall 12(osCall1(struct-os-p11;) 71(param) 83: 6 Load 82(s.s2D)
75: 6 Load 70(s.s2D) 84: 42(ptr) AccessChain 80(aggShadow) 41
Store 74(param) 75 Store 84 83
Store 76(param) 45 86: 7(os) Load 80(aggShadow)
77: 9(fvec4) FunctionCall 19(osCall2(struct-os-p11;vf2;) 74(param) 76(param) Store 85(param) 86
78: 9(fvec4) FAdd 73 77 87: 10(fvec4) FunctionCall 13(osCall1(struct-os-p11;) 85(param)
82: 6 Load 79(s2.s2D) 89: 6 Load 82(s.s2D)
Store 81(param) 82 90: 42(ptr) AccessChain 88(aggShadow) 41
84: 21 Load 80(s2.tex) Store 90 89
Store 83(param) 84 92: 7(os) Load 88(aggShadow)
85: 9(fvec4) FunctionCall 26(os2Call1(struct-os2-p1-t211;) 81(param) 83(param) Store 91(param) 92
86: 9(fvec4) FAdd 78 85 Store 93(param) 49
88: 6 Load 79(s2.s2D) 94: 10(fvec4) FunctionCall 20(osCall2(struct-os-p11;vf2;) 91(param) 93(param)
Store 87(param) 88 95: 10(fvec4) FAdd 87 94
90: 21 Load 80(s2.tex) 98: 6 Load 97(s2.s2D)
Store 89(param) 90 99: 42(ptr) AccessChain 96(aggShadow) 41
Store 91(param) 45 Store 99 98
92: 9(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 87(param) 89(param) 91(param) 101: 22 Load 100(s2.tex)
93: 9(fvec4) FAdd 86 92 102: 62(ptr) AccessChain 96(aggShadow) 61
ReturnValue 93 Store 102 101
104: 23(os2) Load 96(aggShadow)
Store 103(param) 104
105: 10(fvec4) FunctionCall 27(os2Call1(struct-os2-p1-t211;) 103(param)
106: 10(fvec4) FAdd 95 105
108: 6 Load 97(s2.s2D)
109: 42(ptr) AccessChain 107(aggShadow) 41
Store 109 108
110: 22 Load 100(s2.tex)
111: 62(ptr) AccessChain 107(aggShadow) 61
Store 111 110
113: 23(os2) Load 107(aggShadow)
Store 112(param) 113
Store 114(param) 49
115: 10(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 112(param) 114(param)
116: 10(fvec4) FAdd 106 115
ReturnValue 116
FunctionEnd FunctionEnd

View File

@ -4,14 +4,19 @@ Shader version: 500
0:? Sequence 0:? Sequence
0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:5 Function Parameters: 0:5 Function Parameters:
0:? 'tex.smpl' ( in sampler) 0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex.tex' ( in texture2D)
0:? Sequence 0:? Sequence
0:6 Branch: Return with expression 0:6 Branch: Return with expression
0:6 texture ( temp 4-component vector of float) 0:6 texture ( temp 4-component vector of float)
0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 Construct combined texture-sampler ( temp sampler2D)
0:? 'tex.tex' ( in texture2D) 0:6 tex: direct index for structure ( temp texture2D)
0:? 'tex.smpl' ( in sampler) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex})
0:6 Constant:
0:6 1 (const int)
0:6 smpl: direct index for structure ( temp sampler)
0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex})
0:6 Constant:
0:6 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.300000 0:? 0.300000
0:? 0.400000 0:? 0.400000
@ -19,10 +24,16 @@ Shader version: 500
0:10 Function Parameters: 0:10 Function Parameters:
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp sampler) 0:12 move second child to first child ( temp sampler)
0:? 't.smpl' ( temp sampler) 0:12 smpl: direct index for structure ( temp sampler)
0:12 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:12 Constant:
0:12 0 (const int)
0:12 'g_tInputTexture_sampler' ( uniform sampler) 0:12 'g_tInputTexture_sampler' ( uniform sampler)
0:13 move second child to first child ( temp texture2D) 0:13 move second child to first child ( temp texture2D)
0:? 't.tex' ( temp texture2D) 0:13 tex: direct index for structure ( temp texture2D)
0:13 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:13 Constant:
0:13 1 (const int)
0:13 'g_tInputTexture' ( uniform texture2D) 0:13 'g_tInputTexture' ( uniform texture2D)
0:14 Branch: Return with expression 0:14 Branch: Return with expression
0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
@ -30,67 +41,34 @@ Shader version: 500
0:18 Function Parameters: 0:18 Function Parameters:
0:? Sequence 0:? Sequence
0:19 Sequence 0:19 Sequence
0:19 Sequence
0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 'g_tInputTexture_sampler' ( uniform sampler) 0:19 'g_tInputTexture_sampler' ( uniform sampler)
0:19 'g_tInputTexture' ( uniform texture2D) 0:19 'g_tInputTexture' ( uniform texture2D)
0:19 move second child to first child ( temp sampler)
0:? 'tex1.smpl' ( temp sampler)
0:19 smpl: direct index for structure ( temp sampler)
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 Constant:
0:19 0 (const int)
0:19 move second child to first child ( temp texture2D)
0:? 'tex1.tex' ( temp texture2D)
0:19 tex: direct index for structure ( temp texture2D)
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 Constant:
0:19 1 (const int)
0:20 Sequence 0:20 Sequence
0:20 move second child to first child ( temp 4-component vector of float) 0:20 move second child to first child ( temp 4-component vector of float)
0:20 'res' ( temp 4-component vector of float) 0:20 'res' ( temp 4-component vector of float)
0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex1.smpl' ( temp sampler) 0:20 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex1.tex' ( temp texture2D)
0:21 Sequence
0:21 Sequence 0:21 Sequence
0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 move second child to first child ( temp sampler)
0:? 'tex2.smpl' ( temp sampler)
0:21 smpl: direct index for structure ( temp sampler)
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Constant:
0:21 0 (const int)
0:21 move second child to first child ( temp texture2D)
0:? 'tex2.tex' ( temp texture2D)
0:21 tex: direct index for structure ( temp texture2D)
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Constant:
0:21 1 (const int)
0:22 add second child into first child ( temp 4-component vector of float) 0:22 add second child into first child ( temp 4-component vector of float)
0:22 'res' ( temp 4-component vector of float) 0:22 'res' ( temp 4-component vector of float)
0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex2.smpl' ( temp sampler) 0:22 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex2.tex' ( temp texture2D)
0:23 Sequence 0:23 Sequence
0:23 Sequence 0:23 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:23 move second child to first child ( temp sampler) 0:23 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex3.smpl' ( temp sampler) 0:23 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex1.smpl' ( temp sampler)
0:23 move second child to first child ( temp texture2D)
0:? 'tex3.tex' ( temp texture2D)
0:? 'tex1.tex' ( temp texture2D)
0:24 add second child into first child ( temp 4-component vector of float) 0:24 add second child into first child ( temp 4-component vector of float)
0:24 'res' ( temp 4-component vector of float) 0:24 'res' ( temp 4-component vector of float)
0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex3.smpl' ( temp sampler) 0:24 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex3.tex' ( temp texture2D) 0:26 Branch: Return with expression
0:25 Branch: Return with expression 0:26 'res' ( temp 4-component vector of float)
0:25 'res' ( temp 4-component vector of float)
0:18 Function Definition: main( ( temp void) 0:18 Function Definition: main( ( temp void)
0:18 Function Parameters: 0:18 Function Parameters:
0:? Sequence 0:? Sequence
@ -110,14 +88,19 @@ Shader version: 500
0:? Sequence 0:? Sequence
0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:5 Function Definition: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:5 Function Parameters: 0:5 Function Parameters:
0:? 'tex.smpl' ( in sampler) 0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex.tex' ( in texture2D)
0:? Sequence 0:? Sequence
0:6 Branch: Return with expression 0:6 Branch: Return with expression
0:6 texture ( temp 4-component vector of float) 0:6 texture ( temp 4-component vector of float)
0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 Construct combined texture-sampler ( temp sampler2D)
0:? 'tex.tex' ( in texture2D) 0:6 tex: direct index for structure ( temp texture2D)
0:? 'tex.smpl' ( in sampler) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex})
0:6 Constant:
0:6 1 (const int)
0:6 smpl: direct index for structure ( temp sampler)
0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex})
0:6 Constant:
0:6 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.300000 0:? 0.300000
0:? 0.400000 0:? 0.400000
@ -125,10 +108,16 @@ Shader version: 500
0:10 Function Parameters: 0:10 Function Parameters:
0:? Sequence 0:? Sequence
0:12 move second child to first child ( temp sampler) 0:12 move second child to first child ( temp sampler)
0:? 't.smpl' ( temp sampler) 0:12 smpl: direct index for structure ( temp sampler)
0:12 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:12 Constant:
0:12 0 (const int)
0:12 'g_tInputTexture_sampler' ( uniform sampler) 0:12 'g_tInputTexture_sampler' ( uniform sampler)
0:13 move second child to first child ( temp texture2D) 0:13 move second child to first child ( temp texture2D)
0:? 't.tex' ( temp texture2D) 0:13 tex: direct index for structure ( temp texture2D)
0:13 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:13 Constant:
0:13 1 (const int)
0:13 'g_tInputTexture' ( uniform texture2D) 0:13 'g_tInputTexture' ( uniform texture2D)
0:14 Branch: Return with expression 0:14 Branch: Return with expression
0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:14 't' ( temp structure{ temp sampler smpl, temp texture2D tex})
@ -136,67 +125,34 @@ Shader version: 500
0:18 Function Parameters: 0:18 Function Parameters:
0:? Sequence 0:? Sequence
0:19 Sequence 0:19 Sequence
0:19 Sequence
0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:19 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 'g_tInputTexture_sampler' ( uniform sampler) 0:19 'g_tInputTexture_sampler' ( uniform sampler)
0:19 'g_tInputTexture' ( uniform texture2D) 0:19 'g_tInputTexture' ( uniform texture2D)
0:19 move second child to first child ( temp sampler)
0:? 'tex1.smpl' ( temp sampler)
0:19 smpl: direct index for structure ( temp sampler)
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 Constant:
0:19 0 (const int)
0:19 move second child to first child ( temp texture2D)
0:? 'tex1.tex' ( temp texture2D)
0:19 tex: direct index for structure ( temp texture2D)
0:19 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:19 Constant:
0:19 1 (const int)
0:20 Sequence 0:20 Sequence
0:20 move second child to first child ( temp 4-component vector of float) 0:20 move second child to first child ( temp 4-component vector of float)
0:20 'res' ( temp 4-component vector of float) 0:20 'res' ( temp 4-component vector of float)
0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex1.smpl' ( temp sampler) 0:20 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex1.tex' ( temp texture2D)
0:21 Sequence
0:21 Sequence 0:21 Sequence
0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex}) 0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 move second child to first child ( temp sampler)
0:? 'tex2.smpl' ( temp sampler)
0:21 smpl: direct index for structure ( temp sampler)
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Constant:
0:21 0 (const int)
0:21 move second child to first child ( temp texture2D)
0:? 'tex2.tex' ( temp texture2D)
0:21 tex: direct index for structure ( temp texture2D)
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Constant:
0:21 1 (const int)
0:22 add second child into first child ( temp 4-component vector of float) 0:22 add second child into first child ( temp 4-component vector of float)
0:22 'res' ( temp 4-component vector of float) 0:22 'res' ( temp 4-component vector of float)
0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex2.smpl' ( temp sampler) 0:22 'tex2' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex2.tex' ( temp texture2D)
0:23 Sequence 0:23 Sequence
0:23 Sequence 0:23 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:23 move second child to first child ( temp sampler) 0:23 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex3.smpl' ( temp sampler) 0:23 'tex1' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex1.smpl' ( temp sampler)
0:23 move second child to first child ( temp texture2D)
0:? 'tex3.tex' ( temp texture2D)
0:? 'tex1.tex' ( temp texture2D)
0:24 add second child into first child ( temp 4-component vector of float) 0:24 add second child into first child ( temp 4-component vector of float)
0:24 'res' ( temp 4-component vector of float) 0:24 'res' ( temp 4-component vector of float)
0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float) 0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex3.smpl' ( temp sampler) 0:24 'tex3' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:? 'tex3.tex' ( temp texture2D) 0:26 Branch: Return with expression
0:25 Branch: Return with expression 0:26 'res' ( temp 4-component vector of float)
0:25 'res' ( temp 4-component vector of float)
0:18 Function Definition: main( ( temp void) 0:18 Function Definition: main( ( temp void)
0:18 Function Parameters: 0:18 Function Parameters:
0:? Sequence 0:? Sequence
@ -210,164 +166,126 @@ Shader version: 500
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 101 // Id's are bound by 82
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 99 EntryPoint Vertex 4 "main" 80
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 15 "lookUp(struct-FxaaTex-p1-t211;" Name 9 "FxaaTex"
Name 13 "tex.smpl" MemberName 9(FxaaTex) 0 "smpl"
Name 14 "tex.tex" MemberName 9(FxaaTex) 1 "tex"
Name 17 "FxaaTex" Name 14 "lookUp(struct-FxaaTex-p1-t211;"
MemberName 17(FxaaTex) 0 "smpl" Name 13 "tex"
MemberName 17(FxaaTex) 1 "tex" Name 17 "fillOpaque("
Name 19 "fillOpaque(" Name 20 "@main("
Name 22 "@main(" Name 41 "t"
Name 36 "t.smpl" Name 43 "g_tInputTexture_sampler"
Name 38 "g_tInputTexture_sampler" Name 47 "g_tInputTexture"
Name 40 "t.tex" Name 53 "tex1"
Name 42 "g_tInputTexture" Name 58 "res"
Name 45 "t" Name 59 "param"
Name 49 "flattenTemp" Name 62 "tex2"
Name 53 "tex1.smpl"
Name 58 "tex1.tex"
Name 63 "res"
Name 64 "param" Name 64 "param"
Name 66 "param" Name 69 "tex3"
Name 69 "flattenTemp" Name 71 "param"
Name 71 "tex2.smpl" Name 80 "@entryPointOutput"
Name 74 "tex2.tex" Decorate 43(g_tInputTexture_sampler) DescriptorSet 0
Name 77 "param" Decorate 47(g_tInputTexture) DescriptorSet 0
Name 79 "param" Decorate 80(@entryPointOutput) Location 0
Name 84 "tex3.smpl"
Name 86 "tex3.tex"
Name 88 "param"
Name 90 "param"
Name 99 "@entryPointOutput"
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
Decorate 42(g_tInputTexture) DescriptorSet 0
Decorate 99(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeSampler 6: TypeSampler
7: TypePointer Function 6 7: TypeFloat 32
8: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown
9: TypeImage 8(float) 2D sampled format:Unknown 9(FxaaTex): TypeStruct 6 8
10: TypePointer Function 9 10: TypePointer Function 9(FxaaTex)
11: TypeVector 8(float) 4 11: TypeVector 7(float) 4
12: TypeFunction 11(fvec4) 7(ptr) 10(ptr) 12: TypeFunction 11(fvec4) 10(ptr)
17(FxaaTex): TypeStruct 6 9 16: TypeFunction 9(FxaaTex)
18: TypeFunction 17(FxaaTex) 19: TypeFunction 11(fvec4)
21: TypeFunction 11(fvec4) 22: TypeInt 32 1
26: TypeSampledImage 9 23: 22(int) Constant 1
28: TypeVector 8(float) 2 24: TypePointer Function 8
29: 8(float) Constant 1050253722 27: 22(int) Constant 0
30: 8(float) Constant 1053609165 28: TypePointer Function 6
31: 28(fvec2) ConstantComposite 29 30 31: TypeSampledImage 8
32: 8(float) Constant 0 33: TypeVector 7(float) 2
37: TypePointer UniformConstant 6 34: 7(float) Constant 1050253722
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant 35: 7(float) Constant 1053609165
41: TypePointer UniformConstant 9 36: 33(fvec2) ConstantComposite 34 35
42(g_tInputTexture): 41(ptr) Variable UniformConstant 37: 7(float) Constant 0
44: TypePointer Function 17(FxaaTex) 42: TypePointer UniformConstant 6
54: TypeInt 32 1 43(g_tInputTexture_sampler): 42(ptr) Variable UniformConstant
55: 54(int) Constant 0 46: TypePointer UniformConstant 8
59: 54(int) Constant 1 47(g_tInputTexture): 46(ptr) Variable UniformConstant
62: TypePointer Function 11(fvec4) 57: TypePointer Function 11(fvec4)
98: TypePointer Output 11(fvec4) 79: TypePointer Output 11(fvec4)
99(@entryPointOutput): 98(ptr) Variable Output 80(@entryPointOutput): 79(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
100: 11(fvec4) FunctionCall 22(@main() 81: 11(fvec4) FunctionCall 20(@main()
Store 99(@entryPointOutput) 100 Store 80(@entryPointOutput) 81
Return Return
FunctionEnd FunctionEnd
15(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12 14(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12
13(tex.smpl): 7(ptr) FunctionParameter 13(tex): 10(ptr) FunctionParameter
14(tex.tex): 10(ptr) FunctionParameter 15: Label
16: Label 25: 24(ptr) AccessChain 13(tex) 23
24: 9 Load 14(tex.tex) 26: 8 Load 25
25: 6 Load 13(tex.smpl) 29: 28(ptr) AccessChain 13(tex) 27
27: 26 SampledImage 24 25 30: 6 Load 29
33: 11(fvec4) ImageSampleExplicitLod 27 31 Lod 32 32: 31 SampledImage 26 30
ReturnValue 33 38: 11(fvec4) ImageSampleExplicitLod 32 36 Lod 37
ReturnValue 38
FunctionEnd FunctionEnd
19(fillOpaque(): 17(FxaaTex) Function None 18 17(fillOpaque(): 9(FxaaTex) Function None 16
20: Label 18: Label
36(t.smpl): 7(ptr) Variable Function 41(t): 10(ptr) Variable Function
40(t.tex): 10(ptr) Variable Function 44: 6 Load 43(g_tInputTexture_sampler)
45(t): 44(ptr) Variable Function 45: 28(ptr) AccessChain 41(t) 27
39: 6 Load 38(g_tInputTexture_sampler) Store 45 44
Store 36(t.smpl) 39 48: 8 Load 47(g_tInputTexture)
43: 9 Load 42(g_tInputTexture) 49: 24(ptr) AccessChain 41(t) 23
Store 40(t.tex) 43 Store 49 48
46: 17(FxaaTex) Load 45(t) 50: 9(FxaaTex) Load 41(t)
ReturnValue 46 ReturnValue 50
FunctionEnd FunctionEnd
22(@main(): 11(fvec4) Function None 21 20(@main(): 11(fvec4) Function None 19
23: Label 21: Label
49(flattenTemp): 44(ptr) Variable Function 53(tex1): 10(ptr) Variable Function
53(tex1.smpl): 7(ptr) Variable Function 58(res): 57(ptr) Variable Function
58(tex1.tex): 10(ptr) Variable Function 59(param): 10(ptr) Variable Function
63(res): 62(ptr) Variable Function 62(tex2): 10(ptr) Variable Function
64(param): 7(ptr) Variable Function 64(param): 10(ptr) Variable Function
66(param): 10(ptr) Variable Function 69(tex3): 10(ptr) Variable Function
69(flattenTemp): 44(ptr) Variable Function 71(param): 10(ptr) Variable Function
71(tex2.smpl): 7(ptr) Variable Function 54: 6 Load 43(g_tInputTexture_sampler)
74(tex2.tex): 10(ptr) Variable Function 55: 8 Load 47(g_tInputTexture)
77(param): 7(ptr) Variable Function 56: 9(FxaaTex) CompositeConstruct 54 55
79(param): 10(ptr) Variable Function Store 53(tex1) 56
84(tex3.smpl): 7(ptr) Variable Function 60: 9(FxaaTex) Load 53(tex1)
86(tex3.tex): 10(ptr) Variable Function Store 59(param) 60
88(param): 7(ptr) Variable Function 61: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 59(param)
90(param): 10(ptr) Variable Function Store 58(res) 61
50: 6 Load 38(g_tInputTexture_sampler) 63: 9(FxaaTex) FunctionCall 17(fillOpaque()
51: 9 Load 42(g_tInputTexture) Store 62(tex2) 63
52: 17(FxaaTex) CompositeConstruct 50 51 65: 9(FxaaTex) Load 62(tex2)
Store 49(flattenTemp) 52
56: 7(ptr) AccessChain 49(flattenTemp) 55
57: 6 Load 56
Store 53(tex1.smpl) 57
60: 10(ptr) AccessChain 49(flattenTemp) 59
61: 9 Load 60
Store 58(tex1.tex) 61
65: 6 Load 53(tex1.smpl)
Store 64(param) 65 Store 64(param) 65
67: 9 Load 58(tex1.tex) 66: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 64(param)
Store 66(param) 67 67: 11(fvec4) Load 58(res)
68: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 64(param) 66(param) 68: 11(fvec4) FAdd 67 66
Store 63(res) 68 Store 58(res) 68
70: 17(FxaaTex) FunctionCall 19(fillOpaque() 70: 9(FxaaTex) Load 53(tex1)
Store 69(flattenTemp) 70 Store 69(tex3) 70
72: 7(ptr) AccessChain 69(flattenTemp) 55 72: 9(FxaaTex) Load 69(tex3)
73: 6 Load 72 Store 71(param) 72
Store 71(tex2.smpl) 73 73: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t211;) 71(param)
75: 10(ptr) AccessChain 69(flattenTemp) 59 74: 11(fvec4) Load 58(res)
76: 9 Load 75 75: 11(fvec4) FAdd 74 73
Store 74(tex2.tex) 76 Store 58(res) 75
78: 6 Load 71(tex2.smpl) 76: 11(fvec4) Load 58(res)
Store 77(param) 78 ReturnValue 76
80: 9 Load 74(tex2.tex)
Store 79(param) 80
81: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 77(param) 79(param)
82: 11(fvec4) Load 63(res)
83: 11(fvec4) FAdd 82 81
Store 63(res) 83
85: 6 Load 53(tex1.smpl)
Store 84(tex3.smpl) 85
87: 9 Load 58(tex1.tex)
Store 86(tex3.tex) 87
89: 6 Load 84(tex3.smpl)
Store 88(param) 89
91: 9 Load 86(tex3.tex)
Store 90(param) 91
92: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 88(param) 90(param)
93: 11(fvec4) Load 63(res)
94: 11(fvec4) FAdd 93 92
Store 63(res) 94
95: 11(fvec4) Load 63(res)
ReturnValue 95
FunctionEnd FunctionEnd

View File

@ -4,53 +4,42 @@ Shader version: 500
0:? Sequence 0:? Sequence
0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) 0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
0:5 Function Parameters: 0:5 Function Parameters:
0:? 'tex.smpl' ( in sampler) 0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:? 'tex.tex' ( in texture2D)
0:? 'tex.f' ( in float)
0:? Sequence 0:? Sequence
0:6 Branch: Return with expression 0:6 Branch: Return with expression
0:6 texture ( temp 4-component vector of float) 0:6 texture ( temp 4-component vector of float)
0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 Construct combined texture-sampler ( temp sampler2D)
0:? 'tex.tex' ( in texture2D) 0:6 tex: direct index for structure ( temp texture2D)
0:? 'tex.smpl' ( in sampler) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:6 Constant:
0:6 1 (const int)
0:6 smpl: direct index for structure ( temp sampler)
0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:6 Constant:
0:6 0 (const int)
0:? Construct vec2 ( temp 2-component vector of float) 0:? Construct vec2 ( temp 2-component vector of float)
0:? 'tex.f' ( in float) 0:6 f: direct index for structure ( temp float)
0:? 'tex.f' ( in float) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:6 Constant:
0:6 2 (const int)
0:6 f: direct index for structure ( temp float)
0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:6 Constant:
0:6 2 (const int)
0:10 Function Definition: @main( ( temp 4-component vector of float) 0:10 Function Definition: @main( ( temp 4-component vector of float)
0:10 Function Parameters: 0:10 Function Parameters:
0:? Sequence 0:? Sequence
0:11 Sequence 0:11 Sequence
0:11 Sequence
0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 'g_tInputTexture_sampler' ( uniform sampler) 0:11 'g_tInputTexture_sampler' ( uniform sampler)
0:11 'g_tInputTexture' ( uniform texture2D) 0:11 'g_tInputTexture' ( uniform texture2D)
0:11 Constant: 0:11 Constant:
0:11 0.500000 0:11 0.500000
0:11 move second child to first child ( temp sampler)
0:? 'tex.smpl' ( temp sampler)
0:11 smpl: direct index for structure ( temp sampler)
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 Constant:
0:11 0 (const int)
0:11 move second child to first child ( temp texture2D)
0:? 'tex.tex' ( temp texture2D)
0:11 tex: direct index for structure ( temp texture2D)
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 Constant:
0:11 1 (const int)
0:11 move second child to first child ( temp float)
0:? 'tex.f' ( temp float)
0:11 f: direct index for structure ( temp float)
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 Constant:
0:11 2 (const int)
0:12 Branch: Return with expression 0:12 Branch: Return with expression
0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) 0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
0:? 'tex.smpl' ( temp sampler) 0:12 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:? 'tex.tex' ( temp texture2D)
0:? 'tex.f' ( temp float)
0:10 Function Definition: main( ( temp void) 0:10 Function Definition: main( ( temp void)
0:10 Function Parameters: 0:10 Function Parameters:
0:? Sequence 0:? Sequence
@ -70,53 +59,42 @@ Shader version: 500
0:? Sequence 0:? Sequence
0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) 0:5 Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
0:5 Function Parameters: 0:5 Function Parameters:
0:? 'tex.smpl' ( in sampler) 0:5 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:? 'tex.tex' ( in texture2D)
0:? 'tex.f' ( in float)
0:? Sequence 0:? Sequence
0:6 Branch: Return with expression 0:6 Branch: Return with expression
0:6 texture ( temp 4-component vector of float) 0:6 texture ( temp 4-component vector of float)
0:6 Construct combined texture-sampler ( temp sampler2D) 0:6 Construct combined texture-sampler ( temp sampler2D)
0:? 'tex.tex' ( in texture2D) 0:6 tex: direct index for structure ( temp texture2D)
0:? 'tex.smpl' ( in sampler) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:6 Constant:
0:6 1 (const int)
0:6 smpl: direct index for structure ( temp sampler)
0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:6 Constant:
0:6 0 (const int)
0:? Construct vec2 ( temp 2-component vector of float) 0:? Construct vec2 ( temp 2-component vector of float)
0:? 'tex.f' ( in float) 0:6 f: direct index for structure ( temp float)
0:? 'tex.f' ( in float) 0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:6 Constant:
0:6 2 (const int)
0:6 f: direct index for structure ( temp float)
0:6 'tex' ( in structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:6 Constant:
0:6 2 (const int)
0:10 Function Definition: @main( ( temp 4-component vector of float) 0:10 Function Definition: @main( ( temp 4-component vector of float)
0:10 Function Parameters: 0:10 Function Parameters:
0:? Sequence 0:? Sequence
0:11 Sequence 0:11 Sequence
0:11 Sequence
0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f}) 0:11 Construct structure ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 'g_tInputTexture_sampler' ( uniform sampler) 0:11 'g_tInputTexture_sampler' ( uniform sampler)
0:11 'g_tInputTexture' ( uniform texture2D) 0:11 'g_tInputTexture' ( uniform texture2D)
0:11 Constant: 0:11 Constant:
0:11 0.500000 0:11 0.500000
0:11 move second child to first child ( temp sampler)
0:? 'tex.smpl' ( temp sampler)
0:11 smpl: direct index for structure ( temp sampler)
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 Constant:
0:11 0 (const int)
0:11 move second child to first child ( temp texture2D)
0:? 'tex.tex' ( temp texture2D)
0:11 tex: direct index for structure ( temp texture2D)
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 Constant:
0:11 1 (const int)
0:11 move second child to first child ( temp float)
0:? 'tex.f' ( temp float)
0:11 f: direct index for structure ( temp float)
0:11 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:11 Constant:
0:11 2 (const int)
0:12 Branch: Return with expression 0:12 Branch: Return with expression
0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float) 0:12 Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
0:? 'tex.smpl' ( temp sampler) 0:12 'tex' ( temp structure{ temp sampler smpl, temp texture2D tex, temp float f})
0:? 'tex.tex' ( temp texture2D)
0:? 'tex.f' ( temp float)
0:10 Function Definition: main( ( temp void) 0:10 Function Definition: main( ( temp void)
0:10 Function Parameters: 0:10 Function Parameters:
0:? Sequence 0:? Sequence
@ -130,111 +108,88 @@ Shader version: 500
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 70 // Id's are bound by 59
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 68 EntryPoint Vertex 4 "main" 57
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 17 "lookUp(struct-FxaaTex-p1-t21-f11;" Name 9 "FxaaTex"
Name 14 "tex.smpl" MemberName 9(FxaaTex) 0 "smpl"
Name 15 "tex.tex" MemberName 9(FxaaTex) 1 "tex"
Name 16 "tex.f" MemberName 9(FxaaTex) 2 "f"
Name 20 "@main(" Name 14 "lookUp(struct-FxaaTex-p1-t21-f11;"
Name 34 "FxaaTex" Name 13 "tex"
MemberName 34(FxaaTex) 0 "smpl" Name 17 "@main("
MemberName 34(FxaaTex) 1 "tex" Name 42 "tex"
MemberName 34(FxaaTex) 2 "f" Name 44 "g_tInputTexture_sampler"
Name 36 "flattenTemp" Name 47 "g_tInputTexture"
Name 38 "g_tInputTexture_sampler" Name 51 "param"
Name 41 "g_tInputTexture" Name 57 "@entryPointOutput"
Name 45 "tex.smpl" Decorate 44(g_tInputTexture_sampler) DescriptorSet 0
Name 50 "tex.tex" Decorate 47(g_tInputTexture) DescriptorSet 0
Name 54 "tex.f" Decorate 57(@entryPointOutput) Location 0
Name 58 "param"
Name 60 "param"
Name 62 "param"
Name 68 "@entryPointOutput"
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
Decorate 41(g_tInputTexture) DescriptorSet 0
Decorate 68(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeSampler 6: TypeSampler
7: TypePointer Function 6 7: TypeFloat 32
8: TypeFloat 32 8: TypeImage 7(float) 2D sampled format:Unknown
9: TypeImage 8(float) 2D sampled format:Unknown 9(FxaaTex): TypeStruct 6 8 7(float)
10: TypePointer Function 9 10: TypePointer Function 9(FxaaTex)
11: TypePointer Function 8(float) 11: TypeVector 7(float) 4
12: TypeVector 8(float) 4 12: TypeFunction 11(fvec4) 10(ptr)
13: TypeFunction 12(fvec4) 7(ptr) 10(ptr) 11(ptr) 16: TypeFunction 11(fvec4)
19: TypeFunction 12(fvec4) 19: TypeInt 32 1
24: TypeSampledImage 9 20: 19(int) Constant 1
28: TypeVector 8(float) 2 21: TypePointer Function 8
30: 8(float) Constant 0 24: 19(int) Constant 0
34(FxaaTex): TypeStruct 6 9 8(float) 25: TypePointer Function 6
35: TypePointer Function 34(FxaaTex) 28: TypeSampledImage 8
37: TypePointer UniformConstant 6 30: 19(int) Constant 2
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant 31: TypePointer Function 7(float)
40: TypePointer UniformConstant 9 36: TypeVector 7(float) 2
41(g_tInputTexture): 40(ptr) Variable UniformConstant 38: 7(float) Constant 0
43: 8(float) Constant 1056964608 43: TypePointer UniformConstant 6
46: TypeInt 32 1 44(g_tInputTexture_sampler): 43(ptr) Variable UniformConstant
47: 46(int) Constant 0 46: TypePointer UniformConstant 8
51: 46(int) Constant 1 47(g_tInputTexture): 46(ptr) Variable UniformConstant
55: 46(int) Constant 2 49: 7(float) Constant 1056964608
67: TypePointer Output 12(fvec4) 56: TypePointer Output 11(fvec4)
68(@entryPointOutput): 67(ptr) Variable Output 57(@entryPointOutput): 56(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
69: 12(fvec4) FunctionCall 20(@main() 58: 11(fvec4) FunctionCall 17(@main()
Store 68(@entryPointOutput) 69 Store 57(@entryPointOutput) 58
Return Return
FunctionEnd FunctionEnd
17(lookUp(struct-FxaaTex-p1-t21-f11;): 12(fvec4) Function None 13 14(lookUp(struct-FxaaTex-p1-t21-f11;): 11(fvec4) Function None 12
14(tex.smpl): 7(ptr) FunctionParameter 13(tex): 10(ptr) FunctionParameter
15(tex.tex): 10(ptr) FunctionParameter 15: Label
16(tex.f): 11(ptr) FunctionParameter 22: 21(ptr) AccessChain 13(tex) 20
23: 8 Load 22
26: 25(ptr) AccessChain 13(tex) 24
27: 6 Load 26
29: 28 SampledImage 23 27
32: 31(ptr) AccessChain 13(tex) 30
33: 7(float) Load 32
34: 31(ptr) AccessChain 13(tex) 30
35: 7(float) Load 34
37: 36(fvec2) CompositeConstruct 33 35
39: 11(fvec4) ImageSampleExplicitLod 29 37 Lod 38
ReturnValue 39
FunctionEnd
17(@main(): 11(fvec4) Function None 16
18: Label 18: Label
22: 9 Load 15(tex.tex) 42(tex): 10(ptr) Variable Function
23: 6 Load 14(tex.smpl) 51(param): 10(ptr) Variable Function
25: 24 SampledImage 22 23 45: 6 Load 44(g_tInputTexture_sampler)
26: 8(float) Load 16(tex.f) 48: 8 Load 47(g_tInputTexture)
27: 8(float) Load 16(tex.f) 50: 9(FxaaTex) CompositeConstruct 45 48 49
29: 28(fvec2) CompositeConstruct 26 27 Store 42(tex) 50
31: 12(fvec4) ImageSampleExplicitLod 25 29 Lod 30 52: 9(FxaaTex) Load 42(tex)
ReturnValue 31 Store 51(param) 52
FunctionEnd 53: 11(fvec4) FunctionCall 14(lookUp(struct-FxaaTex-p1-t21-f11;) 51(param)
20(@main(): 12(fvec4) Function None 19 ReturnValue 53
21: Label
36(flattenTemp): 35(ptr) Variable Function
45(tex.smpl): 7(ptr) Variable Function
50(tex.tex): 10(ptr) Variable Function
54(tex.f): 11(ptr) Variable Function
58(param): 7(ptr) Variable Function
60(param): 10(ptr) Variable Function
62(param): 11(ptr) Variable Function
39: 6 Load 38(g_tInputTexture_sampler)
42: 9 Load 41(g_tInputTexture)
44: 34(FxaaTex) CompositeConstruct 39 42 43
Store 36(flattenTemp) 44
48: 7(ptr) AccessChain 36(flattenTemp) 47
49: 6 Load 48
Store 45(tex.smpl) 49
52: 10(ptr) AccessChain 36(flattenTemp) 51
53: 9 Load 52
Store 50(tex.tex) 53
56: 11(ptr) AccessChain 36(flattenTemp) 55
57: 8(float) Load 56
Store 54(tex.f) 57
59: 6 Load 45(tex.smpl)
Store 58(param) 59
61: 9 Load 50(tex.tex)
Store 60(param) 61
63: 8(float) Load 54(tex.f)
Store 62(param) 63
64: 12(fvec4) FunctionCall 17(lookUp(struct-FxaaTex-p1-t21-f11;) 58(param) 60(param) 62(param)
ReturnValue 64
FunctionEnd FunctionEnd

View File

@ -8,32 +8,34 @@ gl_FragCoord origin is upper left
0:30 'vpos' ( in 4-component vector of float) 0:30 'vpos' ( in 4-component vector of float)
0:? Sequence 0:? Sequence
0:33 move second child to first child ( temp sampler) 0:33 move second child to first child ( temp sampler)
0:? 's1.s0.ss' ( temp sampler) 0:33 ss: direct index for structure ( temp sampler)
0:33 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss})
0:33 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:33 Constant:
0:33 2 (const int)
0:33 Constant:
0:33 2 (const int)
0:33 'samp' ( uniform sampler) 0:33 'samp' ( uniform sampler)
0:34 Sequence 0:34 move second child to first child ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:34 move second child to first child ( temp float) 0:34 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:? 's2.resources.b' ( temp float) 0:34 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources})
0:? 's1.b' ( temp float) 0:34 Constant:
0:34 move second child to first child ( temp sampler) 0:34 5 (const int)
0:? 's2.resources.samplerState' ( temp sampler) 0:34 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:? 's1.samplerState' ( temp sampler)
0:34 move second child to first child ( temp int)
0:? 's2.resources.s0.x' ( temp int)
0:? 's1.s0.x' ( temp int)
0:34 move second child to first child ( temp int)
0:? 's2.resources.s0.y' ( temp int)
0:? 's1.s0.y' ( temp int)
0:34 move second child to first child ( temp sampler)
0:? 's2.resources.s0.ss' ( temp sampler)
0:? 's1.s0.ss' ( temp sampler)
0:34 move second child to first child ( temp int)
0:? 's2.resources.a' ( temp int)
0:? 's1.a' ( temp int)
0:35 Branch: Return with expression 0:35 Branch: Return with expression
0:35 texture ( temp 4-component vector of float) 0:35 texture ( temp 4-component vector of float)
0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 Construct combined texture-sampler ( temp sampler2D)
0:35 'tex' ( uniform texture2D) 0:35 'tex' ( uniform texture2D)
0:? 's2.resources.s0.ss' ( temp sampler) 0:35 ss: direct index for structure ( temp sampler)
0:35 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss})
0:35 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:35 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources})
0:35 Constant:
0:35 5 (const int)
0:35 Constant:
0:35 2 (const int)
0:35 Constant:
0:35 2 (const int)
0:35 Constant: 0:35 Constant:
0:35 0.500000 0:35 0.500000
0:35 0.500000 0:35 0.500000
@ -65,32 +67,34 @@ gl_FragCoord origin is upper left
0:30 'vpos' ( in 4-component vector of float) 0:30 'vpos' ( in 4-component vector of float)
0:? Sequence 0:? Sequence
0:33 move second child to first child ( temp sampler) 0:33 move second child to first child ( temp sampler)
0:? 's1.s0.ss' ( temp sampler) 0:33 ss: direct index for structure ( temp sampler)
0:33 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss})
0:33 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:33 Constant:
0:33 2 (const int)
0:33 Constant:
0:33 2 (const int)
0:33 'samp' ( uniform sampler) 0:33 'samp' ( uniform sampler)
0:34 Sequence 0:34 move second child to first child ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:34 move second child to first child ( temp float) 0:34 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:? 's2.resources.b' ( temp float) 0:34 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources})
0:? 's1.b' ( temp float) 0:34 Constant:
0:34 move second child to first child ( temp sampler) 0:34 5 (const int)
0:? 's2.resources.samplerState' ( temp sampler) 0:34 's1' ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:? 's1.samplerState' ( temp sampler)
0:34 move second child to first child ( temp int)
0:? 's2.resources.s0.x' ( temp int)
0:? 's1.s0.x' ( temp int)
0:34 move second child to first child ( temp int)
0:? 's2.resources.s0.y' ( temp int)
0:? 's1.s0.y' ( temp int)
0:34 move second child to first child ( temp sampler)
0:? 's2.resources.s0.ss' ( temp sampler)
0:? 's1.s0.ss' ( temp sampler)
0:34 move second child to first child ( temp int)
0:? 's2.resources.a' ( temp int)
0:? 's1.a' ( temp int)
0:35 Branch: Return with expression 0:35 Branch: Return with expression
0:35 texture ( temp 4-component vector of float) 0:35 texture ( temp 4-component vector of float)
0:35 Construct combined texture-sampler ( temp sampler2D) 0:35 Construct combined texture-sampler ( temp sampler2D)
0:35 'tex' ( uniform texture2D) 0:35 'tex' ( uniform texture2D)
0:? 's2.resources.s0.ss' ( temp sampler) 0:35 ss: direct index for structure ( temp sampler)
0:35 s0: direct index for structure ( temp structure{ temp int x, temp int y, temp sampler ss})
0:35 resources: direct index for structure ( temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a})
0:35 's2' ( temp structure{ temp int a1, temp int a2, temp int a3, temp int a4, temp int a5, temp structure{ temp float b, temp sampler samplerState, temp structure{ temp int x, temp int y, temp sampler ss} s0, temp int a} resources})
0:35 Constant:
0:35 5 (const int)
0:35 Constant:
0:35 2 (const int)
0:35 Constant:
0:35 2 (const int)
0:35 Constant: 0:35 Constant:
0:35 0.500000 0:35 0.500000
0:35 0.500000 0:35 0.500000
@ -112,39 +116,45 @@ gl_FragCoord origin is upper left
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 61 // Id's are bound by 54
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 54 57 EntryPoint Fragment 4 "main" 47 50
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 11 "@main(vf4;" Name 11 "@main(vf4;"
Name 10 "vpos" Name 10 "vpos"
Name 15 "s1.s0.ss" Name 15 "S0"
Name 17 "samp" MemberName 15(S0) 0 "x"
Name 20 "s2.resources.b" MemberName 15(S0) 1 "y"
Name 21 "s1.b" MemberName 15(S0) 2 "ss"
Name 23 "s2.resources.samplerState" Name 16 "S1"
Name 24 "s1.samplerState" MemberName 16(S1) 0 "b"
Name 28 "s2.resources.s0.x" MemberName 16(S1) 1 "samplerState"
Name 29 "s1.s0.x" MemberName 16(S1) 2 "s0"
Name 31 "s2.resources.s0.y" MemberName 16(S1) 3 "a"
Name 32 "s1.s0.y" Name 18 "s1"
Name 34 "s2.resources.s0.ss" Name 21 "samp"
Name 36 "s2.resources.a" Name 25 "S2"
Name 37 "s1.a" MemberName 25(S2) 0 "a1"
Name 41 "tex" MemberName 25(S2) 1 "a2"
Name 52 "vpos" MemberName 25(S2) 2 "a3"
Name 54 "vpos" MemberName 25(S2) 3 "a4"
Name 57 "@entryPointOutput" MemberName 25(S2) 4 "a5"
Name 58 "param" MemberName 25(S2) 5 "resources"
Decorate 17(samp) DescriptorSet 0 Name 27 "s2"
Decorate 41(tex) DescriptorSet 0 Name 33 "tex"
Decorate 54(vpos) Location 0 Name 45 "vpos"
Decorate 57(@entryPointOutput) Location 0 Name 47 "vpos"
Name 50 "@entryPointOutput"
Name 51 "param"
Decorate 21(samp) DescriptorSet 0
Decorate 33(tex) DescriptorSet 0
Decorate 47(vpos) Location 0
Decorate 50(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -152,67 +162,55 @@ gl_FragCoord origin is upper left
8: TypePointer Function 7(fvec4) 8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr) 9: TypeFunction 7(fvec4) 8(ptr)
13: TypeSampler 13: TypeSampler
14: TypePointer Function 13 14: TypeInt 32 1
16: TypePointer UniformConstant 13 15(S0): TypeStruct 14(int) 14(int) 13
17(samp): 16(ptr) Variable UniformConstant 16(S1): TypeStruct 6(float) 13 15(S0) 14(int)
19: TypePointer Function 6(float) 17: TypePointer Function 16(S1)
26: TypeInt 32 1 19: 14(int) Constant 2
27: TypePointer Function 26(int) 20: TypePointer UniformConstant 13
39: TypeImage 6(float) 2D sampled format:Unknown 21(samp): 20(ptr) Variable UniformConstant
40: TypePointer UniformConstant 39 23: TypePointer Function 13
41(tex): 40(ptr) Variable UniformConstant 25(S2): TypeStruct 14(int) 14(int) 14(int) 14(int) 14(int) 16(S1)
44: TypeSampledImage 39 26: TypePointer Function 25(S2)
46: TypeVector 6(float) 2 28: 14(int) Constant 5
47: 6(float) Constant 1056964608 31: TypeImage 6(float) 2D sampled format:Unknown
48: 46(fvec2) ConstantComposite 47 47 32: TypePointer UniformConstant 31
53: TypePointer Input 7(fvec4) 33(tex): 32(ptr) Variable UniformConstant
54(vpos): 53(ptr) Variable Input 37: TypeSampledImage 31
56: TypePointer Output 7(fvec4) 39: TypeVector 6(float) 2
57(@entryPointOutput): 56(ptr) Variable Output 40: 6(float) Constant 1056964608
41: 39(fvec2) ConstantComposite 40 40
46: TypePointer Input 7(fvec4)
47(vpos): 46(ptr) Variable Input
49: TypePointer Output 7(fvec4)
50(@entryPointOutput): 49(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
52(vpos): 8(ptr) Variable Function 45(vpos): 8(ptr) Variable Function
58(param): 8(ptr) Variable Function 51(param): 8(ptr) Variable Function
55: 7(fvec4) Load 54(vpos) 48: 7(fvec4) Load 47(vpos)
Store 52(vpos) 55 Store 45(vpos) 48
59: 7(fvec4) Load 52(vpos) 52: 7(fvec4) Load 45(vpos)
Store 58(param) 59 Store 51(param) 52
60: 7(fvec4) FunctionCall 11(@main(vf4;) 58(param) 53: 7(fvec4) FunctionCall 11(@main(vf4;) 51(param)
Store 57(@entryPointOutput) 60 Store 50(@entryPointOutput) 53
Return Return
FunctionEnd FunctionEnd
11(@main(vf4;): 7(fvec4) Function None 9 11(@main(vf4;): 7(fvec4) Function None 9
10(vpos): 8(ptr) FunctionParameter 10(vpos): 8(ptr) FunctionParameter
12: Label 12: Label
15(s1.s0.ss): 14(ptr) Variable Function 18(s1): 17(ptr) Variable Function
20(s2.resources.b): 19(ptr) Variable Function 27(s2): 26(ptr) Variable Function
21(s1.b): 19(ptr) Variable Function 22: 13 Load 21(samp)
23(s2.resources.samplerState): 14(ptr) Variable Function 24: 23(ptr) AccessChain 18(s1) 19 19
24(s1.samplerState): 14(ptr) Variable Function Store 24 22
28(s2.resources.s0.x): 27(ptr) Variable Function 29: 16(S1) Load 18(s1)
29(s1.s0.x): 27(ptr) Variable Function 30: 17(ptr) AccessChain 27(s2) 28
31(s2.resources.s0.y): 27(ptr) Variable Function Store 30 29
32(s1.s0.y): 27(ptr) Variable Function 34: 31 Load 33(tex)
34(s2.resources.s0.ss): 14(ptr) Variable Function 35: 23(ptr) AccessChain 27(s2) 28 19 19
36(s2.resources.a): 27(ptr) Variable Function 36: 13 Load 35
37(s1.a): 27(ptr) Variable Function 38: 37 SampledImage 34 36
18: 13 Load 17(samp) 42: 7(fvec4) ImageSampleImplicitLod 38 41
Store 15(s1.s0.ss) 18 ReturnValue 42
22: 6(float) Load 21(s1.b)
Store 20(s2.resources.b) 22
25: 13 Load 24(s1.samplerState)
Store 23(s2.resources.samplerState) 25
30: 26(int) Load 29(s1.s0.x)
Store 28(s2.resources.s0.x) 30
33: 26(int) Load 32(s1.s0.y)
Store 31(s2.resources.s0.y) 33
35: 13 Load 15(s1.s0.ss)
Store 34(s2.resources.s0.ss) 35
38: 26(int) Load 37(s1.a)
Store 36(s2.resources.a) 38
42: 39 Load 41(tex)
43: 13 Load 34(s2.resources.s0.ss)
45: 44 SampledImage 42 43
49: 7(fvec4) ImageSampleImplicitLod 45 48
ReturnValue 49
FunctionEnd FunctionEnd

View File

@ -7,33 +7,48 @@ gl_FragCoord origin is upper left
0:8 Function Parameters: 0:8 Function Parameters:
0:8 'vpos' ( in 4-component vector of float) 0:8 'vpos' ( in 4-component vector of float)
0:? Sequence 0:? Sequence
0:13 Sequence 0:13 move second child to first child ( temp structure{ temp float y, temp texture2D texNested})
0:13 move second child to first child ( temp float) 0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:? 'a1.n.y' ( temp float) 0:13 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:? 'a2.n.y' ( temp float) 0:13 Constant:
0:13 move second child to first child ( temp texture2D) 0:13 0 (const int)
0:? 'a1.n.texNested' ( temp texture2D) 0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:? 'a2.n.texNested' ( temp texture2D) 0:13 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:14 Sequence 0:13 Constant:
0:14 move second child to first child ( temp float) 0:13 0 (const int)
0:? 'b.n.y' ( temp float) 0:14 move second child to first child ( temp structure{ temp float y, temp texture2D texNested})
0:? 'a1.n.y' ( temp float) 0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:14 move second child to first child ( temp texture2D) 0:14 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex})
0:? 'b.n.texNested' ( temp texture2D) 0:14 Constant:
0:? 'a1.n.texNested' ( temp texture2D) 0:14 0 (const int)
0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:14 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:14 Constant:
0:14 0 (const int)
0:17 Sequence 0:17 Sequence
0:17 Sequence 0:17 move second child to first child ( temp structure{ temp float y, temp texture2D texNested})
0:17 move second child to first child ( temp float) 0:17 'n' ( temp structure{ temp float y, temp texture2D texNested})
0:? 'n.y' ( temp float) 0:17 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:? 'b.n.y' ( temp float) 0:17 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex})
0:17 move second child to first child ( temp texture2D) 0:17 Constant:
0:? 'n.texNested' ( temp texture2D) 0:17 0 (const int)
0:? 'b.n.texNested' ( temp texture2D)
0:20 move second child to first child ( temp texture2D) 0:20 move second child to first child ( temp texture2D)
0:? 'a2.n.texNested' ( temp texture2D) 0:20 texNested: direct index for structure ( temp texture2D)
0:20 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:20 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:20 Constant:
0:20 0 (const int)
0:20 Constant:
0:20 1 (const int)
0:20 'someTex' ( uniform texture2D) 0:20 'someTex' ( uniform texture2D)
0:21 move second child to first child ( temp float) 0:21 move second child to first child ( temp float)
0:? 'a1.n.y' ( temp float) 0:21 y: direct index for structure ( temp float)
0:21 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:21 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:21 Constant:
0:21 0 (const int)
0:21 Constant:
0:21 0 (const int)
0:21 Constant: 0:21 Constant:
0:21 1.000000 0:21 1.000000
0:23 Branch: Return with expression 0:23 Branch: Return with expression
@ -68,33 +83,48 @@ gl_FragCoord origin is upper left
0:8 Function Parameters: 0:8 Function Parameters:
0:8 'vpos' ( in 4-component vector of float) 0:8 'vpos' ( in 4-component vector of float)
0:? Sequence 0:? Sequence
0:13 Sequence 0:13 move second child to first child ( temp structure{ temp float y, temp texture2D texNested})
0:13 move second child to first child ( temp float) 0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:? 'a1.n.y' ( temp float) 0:13 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:? 'a2.n.y' ( temp float) 0:13 Constant:
0:13 move second child to first child ( temp texture2D) 0:13 0 (const int)
0:? 'a1.n.texNested' ( temp texture2D) 0:13 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:? 'a2.n.texNested' ( temp texture2D) 0:13 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:14 Sequence 0:13 Constant:
0:14 move second child to first child ( temp float) 0:13 0 (const int)
0:? 'b.n.y' ( temp float) 0:14 move second child to first child ( temp structure{ temp float y, temp texture2D texNested})
0:? 'a1.n.y' ( temp float) 0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:14 move second child to first child ( temp texture2D) 0:14 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex})
0:? 'b.n.texNested' ( temp texture2D) 0:14 Constant:
0:? 'a1.n.texNested' ( temp texture2D) 0:14 0 (const int)
0:14 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:14 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:14 Constant:
0:14 0 (const int)
0:17 Sequence 0:17 Sequence
0:17 Sequence 0:17 move second child to first child ( temp structure{ temp float y, temp texture2D texNested})
0:17 move second child to first child ( temp float) 0:17 'n' ( temp structure{ temp float y, temp texture2D texNested})
0:? 'n.y' ( temp float) 0:17 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:? 'b.n.y' ( temp float) 0:17 'b' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp texture2D tex})
0:17 move second child to first child ( temp texture2D) 0:17 Constant:
0:? 'n.texNested' ( temp texture2D) 0:17 0 (const int)
0:? 'b.n.texNested' ( temp texture2D)
0:20 move second child to first child ( temp texture2D) 0:20 move second child to first child ( temp texture2D)
0:? 'a2.n.texNested' ( temp texture2D) 0:20 texNested: direct index for structure ( temp texture2D)
0:20 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:20 'a2' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:20 Constant:
0:20 0 (const int)
0:20 Constant:
0:20 1 (const int)
0:20 'someTex' ( uniform texture2D) 0:20 'someTex' ( uniform texture2D)
0:21 move second child to first child ( temp float) 0:21 move second child to first child ( temp float)
0:? 'a1.n.y' ( temp float) 0:21 y: direct index for structure ( temp float)
0:21 n: direct index for structure ( temp structure{ temp float y, temp texture2D texNested})
0:21 'a1' ( temp structure{ temp structure{ temp float y, temp texture2D texNested} n, temp float x})
0:21 Constant:
0:21 0 (const int)
0:21 Constant:
0:21 0 (const int)
0:21 Constant: 0:21 Constant:
0:21 1.000000 0:21 1.000000
0:23 Branch: Return with expression 0:23 Branch: Return with expression
@ -120,88 +150,99 @@ gl_FragCoord origin is upper left
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 47 // Id's are bound by 56
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 40 43 EntryPoint Fragment 4 "main" 49 52
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 11 "@main(vf4;" Name 11 "@main(vf4;"
Name 10 "vpos" Name 10 "vpos"
Name 14 "a1.n.y" Name 14 "Nested"
Name 15 "a2.n.y" MemberName 14(Nested) 0 "y"
Name 19 "a1.n.texNested" MemberName 14(Nested) 1 "texNested"
Name 20 "a2.n.texNested" Name 15 "A"
Name 22 "b.n.y" MemberName 15(A) 0 "n"
Name 24 "b.n.texNested" MemberName 15(A) 1 "x"
Name 26 "n.y" Name 17 "a1"
Name 28 "n.texNested" Name 20 "a2"
Name 31 "someTex" Name 25 "B"
Name 38 "vpos" MemberName 25(B) 0 "n"
Name 40 "vpos" MemberName 25(B) 1 "tex"
Name 43 "@entryPointOutput" Name 27 "b"
Name 44 "param" Name 31 "n"
Decorate 31(someTex) DescriptorSet 0 Name 36 "someTex"
Decorate 40(vpos) Location 0 Name 47 "vpos"
Decorate 43(@entryPointOutput) Location 0 Name 49 "vpos"
Name 52 "@entryPointOutput"
Name 53 "param"
Decorate 36(someTex) DescriptorSet 0
Decorate 49(vpos) Location 0
Decorate 52(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
7: TypeVector 6(float) 4 7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4) 8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr) 9: TypeFunction 7(fvec4) 8(ptr)
13: TypePointer Function 6(float) 13: TypeImage 6(float) 2D sampled format:Unknown
17: TypeImage 6(float) 2D sampled format:Unknown 14(Nested): TypeStruct 6(float) 13
18: TypePointer Function 17 15(A): TypeStruct 14(Nested) 6(float)
30: TypePointer UniformConstant 17 16: TypePointer Function 15(A)
31(someTex): 30(ptr) Variable UniformConstant 18: TypeInt 32 1
33: 6(float) Constant 1065353216 19: 18(int) Constant 0
34: 6(float) Constant 0 21: TypePointer Function 14(Nested)
35: 7(fvec4) ConstantComposite 34 34 34 34 25(B): TypeStruct 14(Nested) 13
39: TypePointer Input 7(fvec4) 26: TypePointer Function 25(B)
40(vpos): 39(ptr) Variable Input 34: 18(int) Constant 1
42: TypePointer Output 7(fvec4) 35: TypePointer UniformConstant 13
43(@entryPointOutput): 42(ptr) Variable Output 36(someTex): 35(ptr) Variable UniformConstant
38: TypePointer Function 13
40: 6(float) Constant 1065353216
41: TypePointer Function 6(float)
43: 6(float) Constant 0
44: 7(fvec4) ConstantComposite 43 43 43 43
48: TypePointer Input 7(fvec4)
49(vpos): 48(ptr) Variable Input
51: TypePointer Output 7(fvec4)
52(@entryPointOutput): 51(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
38(vpos): 8(ptr) Variable Function 47(vpos): 8(ptr) Variable Function
44(param): 8(ptr) Variable Function 53(param): 8(ptr) Variable Function
41: 7(fvec4) Load 40(vpos) 50: 7(fvec4) Load 49(vpos)
Store 38(vpos) 41 Store 47(vpos) 50
45: 7(fvec4) Load 38(vpos) 54: 7(fvec4) Load 47(vpos)
Store 44(param) 45 Store 53(param) 54
46: 7(fvec4) FunctionCall 11(@main(vf4;) 44(param) 55: 7(fvec4) FunctionCall 11(@main(vf4;) 53(param)
Store 43(@entryPointOutput) 46 Store 52(@entryPointOutput) 55
Return Return
FunctionEnd FunctionEnd
11(@main(vf4;): 7(fvec4) Function None 9 11(@main(vf4;): 7(fvec4) Function None 9
10(vpos): 8(ptr) FunctionParameter 10(vpos): 8(ptr) FunctionParameter
12: Label 12: Label
14(a1.n.y): 13(ptr) Variable Function 17(a1): 16(ptr) Variable Function
15(a2.n.y): 13(ptr) Variable Function 20(a2): 16(ptr) Variable Function
19(a1.n.texNested): 18(ptr) Variable Function 27(b): 26(ptr) Variable Function
20(a2.n.texNested): 18(ptr) Variable Function 31(n): 21(ptr) Variable Function
22(b.n.y): 13(ptr) Variable Function 22: 21(ptr) AccessChain 20(a2) 19
24(b.n.texNested): 18(ptr) Variable Function 23: 14(Nested) Load 22
26(n.y): 13(ptr) Variable Function 24: 21(ptr) AccessChain 17(a1) 19
28(n.texNested): 18(ptr) Variable Function Store 24 23
16: 6(float) Load 15(a2.n.y) 28: 21(ptr) AccessChain 17(a1) 19
Store 14(a1.n.y) 16 29: 14(Nested) Load 28
21: 17 Load 20(a2.n.texNested) 30: 21(ptr) AccessChain 27(b) 19
Store 19(a1.n.texNested) 21 Store 30 29
23: 6(float) Load 14(a1.n.y) 32: 21(ptr) AccessChain 27(b) 19
Store 22(b.n.y) 23 33: 14(Nested) Load 32
25: 17 Load 19(a1.n.texNested) Store 31(n) 33
Store 24(b.n.texNested) 25 37: 13 Load 36(someTex)
27: 6(float) Load 22(b.n.y) 39: 38(ptr) AccessChain 20(a2) 19 34
Store 26(n.y) 27 Store 39 37
29: 17 Load 24(b.n.texNested) 42: 41(ptr) AccessChain 17(a1) 19 19
Store 28(n.texNested) 29 Store 42 40
32: 17 Load 31(someTex) ReturnValue 44
Store 20(a2.n.texNested) 32
Store 14(a1.n.y) 33
ReturnValue 35
FunctionEnd FunctionEnd

View File

@ -7,11 +7,17 @@ Shader version: 500
0:12 'pos' ( in 4-component vector of float) 0:12 'pos' ( in 4-component vector of float)
0:? Sequence 0:? Sequence
0:14 move second child to first child ( temp texture2D) 0:14 move second child to first child ( temp texture2D)
0:? 'packed.tex' ( temp texture2D) 0:14 tex: direct index for structure ( temp texture2D)
0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:14 Constant:
0:14 0 (const int)
0:14 'tex' ( uniform texture2D) 0:14 'tex' ( uniform texture2D)
0:15 move second child to first child ( temp 3-component vector of float) 0:15 move second child to first child ( temp 3-component vector of float)
0:15 direct index ( temp 3-component vector of float) 0:15 direct index ( temp 3-component vector of float)
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float) 0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:15 Constant:
0:15 1 (const int)
0:15 Constant: 0:15 Constant:
0:15 0 (const int) 0:15 0 (const int)
0:? Constant: 0:? Constant:
@ -20,18 +26,27 @@ Shader version: 500
0:? 0.000000 0:? 0.000000
0:16 move second child to first child ( temp 2-component vector of float) 0:16 move second child to first child ( temp 2-component vector of float)
0:16 direct index ( temp 2-component vector of float) 0:16 direct index ( temp 2-component vector of float)
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float) 0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float)
0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:16 Constant:
0:16 2 (const int)
0:16 Constant: 0:16 Constant:
0:16 0 (const int) 0:16 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.000000 0:? 0.000000
0:? 1.000000 0:? 1.000000
0:17 move second child to first child ( temp float) 0:17 move second child to first child ( temp float)
0:? 'packed.x' ( temp float) 0:17 x: direct index for structure ( temp float)
0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:17 Constant:
0:17 3 (const int)
0:17 Constant: 0:17 Constant:
0:17 1.000000 0:17 1.000000
0:18 move second child to first child ( temp int) 0:18 move second child to first child ( temp int)
0:? 'packed.n' ( temp int) 0:18 n: direct index for structure ( temp int)
0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:18 Constant:
0:18 4 (const int)
0:18 Constant: 0:18 Constant:
0:18 3 (const int) 0:18 3 (const int)
0:20 Sequence 0:20 Sequence
@ -50,7 +65,10 @@ Shader version: 500
0:21 add second child into first child ( temp 2-component vector of float) 0:21 add second child into first child ( temp 2-component vector of float)
0:21 vector swizzle ( temp 2-component vector of float) 0:21 vector swizzle ( temp 2-component vector of float)
0:21 indirect index ( temp 3-component vector of float) 0:21 indirect index ( temp 3-component vector of float)
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float) 0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:21 Constant:
0:21 1 (const int)
0:21 'i' ( temp int) 0:21 'i' ( temp int)
0:21 Sequence 0:21 Sequence
0:21 Constant: 0:21 Constant:
@ -58,34 +76,27 @@ Shader version: 500
0:21 Constant: 0:21 Constant:
0:21 1 (const int) 0:21 1 (const int)
0:21 indirect index ( temp 2-component vector of float) 0:21 indirect index ( temp 2-component vector of float)
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float) 0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float)
0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:21 Constant:
0:21 2 (const int)
0:21 'i' ( temp int) 0:21 'i' ( temp int)
0:20 Loop Terminal Expression 0:20 Loop Terminal Expression
0:20 Pre-Increment ( temp int) 0:20 Pre-Increment ( temp int)
0:20 'i' ( temp int) 0:20 'i' ( temp int)
0:24 Sequence 0:24 Sequence
0:24 Sequence 0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:24 move second child to first child ( temp texture2D) 0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:? 'packed2.tex' ( temp texture2D) 0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:? 'packed.tex' ( temp texture2D)
0:24 move second child to first child ( temp 3-element array of 3-component vector of float)
0:? 'packed2.pos' ( temp 3-element array of 3-component vector of float)
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float)
0:24 move second child to first child ( temp 2-element array of 2-component vector of float)
0:? 'packed2.uv' ( temp 2-element array of 2-component vector of float)
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float)
0:24 move second child to first child ( temp float)
0:? 'packed2.x' ( temp float)
0:? 'packed.x' ( temp float)
0:24 move second child to first child ( temp int)
0:? 'packed2.n' ( temp int)
0:? 'packed.n' ( temp int)
0:26 Branch: Return with expression 0:26 Branch: Return with expression
0:26 add ( temp 4-component vector of float) 0:26 add ( temp 4-component vector of float)
0:26 'pos' ( in 4-component vector of float) 0:26 'pos' ( in 4-component vector of float)
0:? Construct vec4 ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float)
0:26 direct index ( temp 3-component vector of float) 0:26 direct index ( temp 3-component vector of float)
0:? 'packed2.pos' ( temp 3-element array of 3-component vector of float) 0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:26 Constant:
0:26 1 (const int)
0:26 Constant: 0:26 Constant:
0:26 0 (const int) 0:26 0 (const int)
0:26 Constant: 0:26 Constant:
@ -116,11 +127,17 @@ Shader version: 500
0:12 'pos' ( in 4-component vector of float) 0:12 'pos' ( in 4-component vector of float)
0:? Sequence 0:? Sequence
0:14 move second child to first child ( temp texture2D) 0:14 move second child to first child ( temp texture2D)
0:? 'packed.tex' ( temp texture2D) 0:14 tex: direct index for structure ( temp texture2D)
0:14 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:14 Constant:
0:14 0 (const int)
0:14 'tex' ( uniform texture2D) 0:14 'tex' ( uniform texture2D)
0:15 move second child to first child ( temp 3-component vector of float) 0:15 move second child to first child ( temp 3-component vector of float)
0:15 direct index ( temp 3-component vector of float) 0:15 direct index ( temp 3-component vector of float)
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float) 0:15 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:15 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:15 Constant:
0:15 1 (const int)
0:15 Constant: 0:15 Constant:
0:15 0 (const int) 0:15 0 (const int)
0:? Constant: 0:? Constant:
@ -129,18 +146,27 @@ Shader version: 500
0:? 0.000000 0:? 0.000000
0:16 move second child to first child ( temp 2-component vector of float) 0:16 move second child to first child ( temp 2-component vector of float)
0:16 direct index ( temp 2-component vector of float) 0:16 direct index ( temp 2-component vector of float)
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float) 0:16 uv: direct index for structure ( temp 2-element array of 2-component vector of float)
0:16 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:16 Constant:
0:16 2 (const int)
0:16 Constant: 0:16 Constant:
0:16 0 (const int) 0:16 0 (const int)
0:? Constant: 0:? Constant:
0:? 0.000000 0:? 0.000000
0:? 1.000000 0:? 1.000000
0:17 move second child to first child ( temp float) 0:17 move second child to first child ( temp float)
0:? 'packed.x' ( temp float) 0:17 x: direct index for structure ( temp float)
0:17 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:17 Constant:
0:17 3 (const int)
0:17 Constant: 0:17 Constant:
0:17 1.000000 0:17 1.000000
0:18 move second child to first child ( temp int) 0:18 move second child to first child ( temp int)
0:? 'packed.n' ( temp int) 0:18 n: direct index for structure ( temp int)
0:18 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:18 Constant:
0:18 4 (const int)
0:18 Constant: 0:18 Constant:
0:18 3 (const int) 0:18 3 (const int)
0:20 Sequence 0:20 Sequence
@ -159,7 +185,10 @@ Shader version: 500
0:21 add second child into first child ( temp 2-component vector of float) 0:21 add second child into first child ( temp 2-component vector of float)
0:21 vector swizzle ( temp 2-component vector of float) 0:21 vector swizzle ( temp 2-component vector of float)
0:21 indirect index ( temp 3-component vector of float) 0:21 indirect index ( temp 3-component vector of float)
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float) 0:21 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:21 Constant:
0:21 1 (const int)
0:21 'i' ( temp int) 0:21 'i' ( temp int)
0:21 Sequence 0:21 Sequence
0:21 Constant: 0:21 Constant:
@ -167,34 +196,27 @@ Shader version: 500
0:21 Constant: 0:21 Constant:
0:21 1 (const int) 0:21 1 (const int)
0:21 indirect index ( temp 2-component vector of float) 0:21 indirect index ( temp 2-component vector of float)
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float) 0:21 uv: direct index for structure ( temp 2-element array of 2-component vector of float)
0:21 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:21 Constant:
0:21 2 (const int)
0:21 'i' ( temp int) 0:21 'i' ( temp int)
0:20 Loop Terminal Expression 0:20 Loop Terminal Expression
0:20 Pre-Increment ( temp int) 0:20 Pre-Increment ( temp int)
0:20 'i' ( temp int) 0:20 'i' ( temp int)
0:24 Sequence 0:24 Sequence
0:24 Sequence 0:24 move second child to first child ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:24 move second child to first child ( temp texture2D) 0:24 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:? 'packed2.tex' ( temp texture2D) 0:24 'packed' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:? 'packed.tex' ( temp texture2D)
0:24 move second child to first child ( temp 3-element array of 3-component vector of float)
0:? 'packed2.pos' ( temp 3-element array of 3-component vector of float)
0:? 'packed.pos' ( temp 3-element array of 3-component vector of float)
0:24 move second child to first child ( temp 2-element array of 2-component vector of float)
0:? 'packed2.uv' ( temp 2-element array of 2-component vector of float)
0:? 'packed.uv' ( temp 2-element array of 2-component vector of float)
0:24 move second child to first child ( temp float)
0:? 'packed2.x' ( temp float)
0:? 'packed.x' ( temp float)
0:24 move second child to first child ( temp int)
0:? 'packed2.n' ( temp int)
0:? 'packed.n' ( temp int)
0:26 Branch: Return with expression 0:26 Branch: Return with expression
0:26 add ( temp 4-component vector of float) 0:26 add ( temp 4-component vector of float)
0:26 'pos' ( in 4-component vector of float) 0:26 'pos' ( in 4-component vector of float)
0:? Construct vec4 ( temp 4-component vector of float) 0:? Construct vec4 ( temp 4-component vector of float)
0:26 direct index ( temp 3-component vector of float) 0:26 direct index ( temp 3-component vector of float)
0:? 'packed2.pos' ( temp 3-element array of 3-component vector of float) 0:26 pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:26 'packed2' ( temp structure{ temp texture2D tex, temp 3-element array of 3-component vector of float pos, temp 2-element array of 2-component vector of float uv, temp float x, temp int n})
0:26 Constant:
0:26 1 (const int)
0:26 Constant: 0:26 Constant:
0:26 0 (const int) 0:26 0 (const int)
0:26 Constant: 0:26 Constant:
@ -216,35 +238,33 @@ Shader version: 500
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 97 // Id's are bound by 90
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 90 93 EntryPoint Vertex 4 "main" 83 86
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 11 "@main(vf4;" Name 11 "@main(vf4;"
Name 10 "pos" Name 10 "pos"
Name 15 "packed.tex" Name 22 "Packed"
Name 17 "tex" MemberName 22(Packed) 0 "tex"
Name 24 "packed.pos" MemberName 22(Packed) 1 "pos"
Name 35 "packed.uv" MemberName 22(Packed) 2 "uv"
Name 41 "packed.x" MemberName 22(Packed) 3 "x"
Name 43 "packed.n" MemberName 22(Packed) 4 "n"
Name 45 "i" Name 24 "packed"
Name 68 "packed2.tex" Name 27 "tex"
Name 70 "packed2.pos" Name 47 "i"
Name 72 "packed2.uv" Name 69 "packed2"
Name 74 "packed2.x" Name 81 "pos"
Name 76 "packed2.n" Name 83 "pos"
Name 88 "pos" Name 86 "@entryPointOutput"
Name 90 "pos" Name 87 "param"
Name 93 "@entryPointOutput" Decorate 27(tex) DescriptorSet 0
Name 94 "param" Decorate 83(pos) Location 0
Decorate 17(tex) DescriptorSet 0 Decorate 86(@entryPointOutput) BuiltIn Position
Decorate 90(pos) Location 0
Decorate 93(@entryPointOutput) BuiltIn Position
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -252,115 +272,104 @@ Shader version: 500
8: TypePointer Function 7(fvec4) 8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr) 9: TypeFunction 7(fvec4) 8(ptr)
13: TypeImage 6(float) 2D sampled format:Unknown 13: TypeImage 6(float) 2D sampled format:Unknown
14: TypePointer Function 13 14: TypeVector 6(float) 3
16: TypePointer UniformConstant 13 15: TypeInt 32 0
17(tex): 16(ptr) Variable UniformConstant 16: 15(int) Constant 3
19: TypeVector 6(float) 3 17: TypeArray 14(fvec3) 16
20: TypeInt 32 0 18: TypeVector 6(float) 2
21: 20(int) Constant 3 19: 15(int) Constant 2
22: TypeArray 19(fvec3) 21 20: TypeArray 18(fvec2) 19
23: TypePointer Function 22 21: TypeInt 32 1
25: TypeInt 32 1 22(Packed): TypeStruct 13 17 20 6(float) 21(int)
26: 25(int) Constant 0 23: TypePointer Function 22(Packed)
27: 6(float) Constant 0 25: 21(int) Constant 0
28: 19(fvec3) ConstantComposite 27 27 27 26: TypePointer UniformConstant 13
29: TypePointer Function 19(fvec3) 27(tex): 26(ptr) Variable UniformConstant
31: TypeVector 6(float) 2 29: TypePointer Function 13
32: 20(int) Constant 2 31: 21(int) Constant 1
33: TypeArray 31(fvec2) 32 32: 6(float) Constant 0
34: TypePointer Function 33 33: 14(fvec3) ConstantComposite 32 32 32
36: 6(float) Constant 1065353216 34: TypePointer Function 14(fvec3)
37: 31(fvec2) ConstantComposite 27 36 36: 21(int) Constant 2
38: TypePointer Function 31(fvec2) 37: 6(float) Constant 1065353216
40: TypePointer Function 6(float) 38: 18(fvec2) ConstantComposite 32 37
42: TypePointer Function 25(int) 39: TypePointer Function 18(fvec2)
44: 25(int) Constant 3 41: 21(int) Constant 3
52: 25(int) Constant 1 42: TypePointer Function 6(float)
53: TypeBool 44: 21(int) Constant 4
89: TypePointer Input 7(fvec4) 45: TypePointer Function 21(int)
90(pos): 89(ptr) Variable Input 54: TypeBool
92: TypePointer Output 7(fvec4) 82: TypePointer Input 7(fvec4)
93(@entryPointOutput): 92(ptr) Variable Output 83(pos): 82(ptr) Variable Input
85: TypePointer Output 7(fvec4)
86(@entryPointOutput): 85(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
88(pos): 8(ptr) Variable Function 81(pos): 8(ptr) Variable Function
94(param): 8(ptr) Variable Function 87(param): 8(ptr) Variable Function
91: 7(fvec4) Load 90(pos) 84: 7(fvec4) Load 83(pos)
Store 88(pos) 91 Store 81(pos) 84
95: 7(fvec4) Load 88(pos) 88: 7(fvec4) Load 81(pos)
Store 94(param) 95 Store 87(param) 88
96: 7(fvec4) FunctionCall 11(@main(vf4;) 94(param) 89: 7(fvec4) FunctionCall 11(@main(vf4;) 87(param)
Store 93(@entryPointOutput) 96 Store 86(@entryPointOutput) 89
Return Return
FunctionEnd FunctionEnd
11(@main(vf4;): 7(fvec4) Function None 9 11(@main(vf4;): 7(fvec4) Function None 9
10(pos): 8(ptr) FunctionParameter 10(pos): 8(ptr) FunctionParameter
12: Label 12: Label
15(packed.tex): 14(ptr) Variable Function 24(packed): 23(ptr) Variable Function
24(packed.pos): 23(ptr) Variable Function 47(i): 45(ptr) Variable Function
35(packed.uv): 34(ptr) Variable Function 69(packed2): 23(ptr) Variable Function
41(packed.x): 40(ptr) Variable Function 28: 13 Load 27(tex)
43(packed.n): 42(ptr) Variable Function 30: 29(ptr) AccessChain 24(packed) 25
45(i): 42(ptr) Variable Function
68(packed2.tex): 14(ptr) Variable Function
70(packed2.pos): 23(ptr) Variable Function
72(packed2.uv): 34(ptr) Variable Function
74(packed2.x): 40(ptr) Variable Function
76(packed2.n): 42(ptr) Variable Function
18: 13 Load 17(tex)
Store 15(packed.tex) 18
30: 29(ptr) AccessChain 24(packed.pos) 26
Store 30 28 Store 30 28
39: 38(ptr) AccessChain 35(packed.uv) 26 35: 34(ptr) AccessChain 24(packed) 31 25
Store 39 37 Store 35 33
Store 41(packed.x) 36 40: 39(ptr) AccessChain 24(packed) 36 25
Store 43(packed.n) 44 Store 40 38
Store 45(i) 26 43: 42(ptr) AccessChain 24(packed) 41
Branch 46 Store 43 37
46: Label 46: 45(ptr) AccessChain 24(packed) 44
LoopMerge 48 49 None Store 46 41
Branch 50 Store 47(i) 25
50: Label Branch 48
51: 25(int) Load 45(i)
54: 53(bool) SLessThan 51 52
BranchConditional 54 47 48
47: Label
55: 25(int) Load 45(i)
56: 25(int) Load 45(i)
57: 38(ptr) AccessChain 35(packed.uv) 56
58: 31(fvec2) Load 57
59: 29(ptr) AccessChain 24(packed.pos) 55
60: 19(fvec3) Load 59
61: 31(fvec2) VectorShuffle 60 60 0 1
62: 31(fvec2) FAdd 61 58
63: 29(ptr) AccessChain 24(packed.pos) 55
64: 19(fvec3) Load 63
65: 19(fvec3) VectorShuffle 64 62 3 4 2
Store 63 65
Branch 49
49: Label
66: 25(int) Load 45(i)
67: 25(int) IAdd 66 52
Store 45(i) 67
Branch 46
48: Label 48: Label
69: 13 Load 15(packed.tex) LoopMerge 50 51 None
Store 68(packed2.tex) 69 Branch 52
71: 22 Load 24(packed.pos) 52: Label
Store 70(packed2.pos) 71 53: 21(int) Load 47(i)
73: 33 Load 35(packed.uv) 55: 54(bool) SLessThan 53 31
Store 72(packed2.uv) 73 BranchConditional 55 49 50
75: 6(float) Load 41(packed.x) 49: Label
Store 74(packed2.x) 75 56: 21(int) Load 47(i)
77: 25(int) Load 43(packed.n) 57: 21(int) Load 47(i)
Store 76(packed2.n) 77 58: 39(ptr) AccessChain 24(packed) 36 57
78: 7(fvec4) Load 10(pos) 59: 18(fvec2) Load 58
79: 29(ptr) AccessChain 70(packed2.pos) 26 60: 34(ptr) AccessChain 24(packed) 31 56
80: 19(fvec3) Load 79 61: 14(fvec3) Load 60
81: 6(float) CompositeExtract 80 0 62: 18(fvec2) VectorShuffle 61 61 0 1
82: 6(float) CompositeExtract 80 1 63: 18(fvec2) FAdd 62 59
83: 6(float) CompositeExtract 80 2 64: 34(ptr) AccessChain 24(packed) 31 56
84: 7(fvec4) CompositeConstruct 81 82 83 27 65: 14(fvec3) Load 64
85: 7(fvec4) FAdd 78 84 66: 14(fvec3) VectorShuffle 65 63 3 4 2
ReturnValue 85 Store 64 66
Branch 51
51: Label
67: 21(int) Load 47(i)
68: 21(int) IAdd 67 31
Store 47(i) 68
Branch 48
50: Label
70: 22(Packed) Load 24(packed)
Store 69(packed2) 70
71: 7(fvec4) Load 10(pos)
72: 34(ptr) AccessChain 69(packed2) 31 25
73: 14(fvec3) Load 72
74: 6(float) CompositeExtract 73 0
75: 6(float) CompositeExtract 73 1
76: 6(float) CompositeExtract 73 2
77: 7(fvec4) CompositeConstruct 74 75 76 32
78: 7(fvec4) FAdd 71 77
ReturnValue 78
FunctionEnd FunctionEnd

View File

@ -9,13 +9,19 @@ Shader version: 500
0:13 Sequence 0:13 Sequence
0:13 move second child to first child ( temp texture2D) 0:13 move second child to first child ( temp texture2D)
0:13 direct index ( temp texture2D) 0:13 direct index ( temp texture2D)
0:? 'packed.membTex' ( temp 2-element array of texture2D) 0:13 membTex: direct index for structure ( temp 2-element array of texture2D)
0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b})
0:13 Constant:
0:13 1 (const int)
0:13 Constant: 0:13 Constant:
0:13 0 (const int) 0:13 0 (const int)
0:? 'tex[0]' ( uniform texture2D) 0:? 'tex[0]' ( uniform texture2D)
0:13 move second child to first child ( temp texture2D) 0:13 move second child to first child ( temp texture2D)
0:13 direct index ( temp texture2D) 0:13 direct index ( temp texture2D)
0:? 'packed.membTex' ( temp 2-element array of texture2D) 0:13 membTex: direct index for structure ( temp 2-element array of texture2D)
0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b})
0:13 Constant:
0:13 1 (const int)
0:13 Constant: 0:13 Constant:
0:13 1 (const int) 0:13 1 (const int)
0:? 'tex[1]' ( uniform texture2D) 0:? 'tex[1]' ( uniform texture2D)
@ -50,13 +56,19 @@ Shader version: 500
0:13 Sequence 0:13 Sequence
0:13 move second child to first child ( temp texture2D) 0:13 move second child to first child ( temp texture2D)
0:13 direct index ( temp texture2D) 0:13 direct index ( temp texture2D)
0:? 'packed.membTex' ( temp 2-element array of texture2D) 0:13 membTex: direct index for structure ( temp 2-element array of texture2D)
0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b})
0:13 Constant:
0:13 1 (const int)
0:13 Constant: 0:13 Constant:
0:13 0 (const int) 0:13 0 (const int)
0:? 'tex[0]' ( uniform texture2D) 0:? 'tex[0]' ( uniform texture2D)
0:13 move second child to first child ( temp texture2D) 0:13 move second child to first child ( temp texture2D)
0:13 direct index ( temp texture2D) 0:13 direct index ( temp texture2D)
0:? 'packed.membTex' ( temp 2-element array of texture2D) 0:13 membTex: direct index for structure ( temp 2-element array of texture2D)
0:13 'packed' ( temp structure{ temp int a, temp 2-element array of texture2D membTex, temp int b})
0:13 Constant:
0:13 1 (const int)
0:13 Constant: 0:13 Constant:
0:13 1 (const int) 0:13 1 (const int)
0:? 'tex[1]' ( uniform texture2D) 0:? 'tex[1]' ( uniform texture2D)
@ -80,71 +92,76 @@ Shader version: 500
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80002 // Generated by (magic number): 80002
// Id's are bound by 42 // Id's are bound by 43
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 35 38 EntryPoint Vertex 4 "main" 36 39
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 11 "@main(vf4;" Name 11 "@main(vf4;"
Name 10 "pos" Name 10 "pos"
Name 18 "packed.membTex" Name 18 "Packed"
Name 22 "tex[0]" MemberName 18(Packed) 0 "a"
Name 27 "tex[1]" MemberName 18(Packed) 1 "membTex"
Name 33 "pos" MemberName 18(Packed) 2 "b"
Name 35 "pos" Name 20 "packed"
Name 38 "@entryPointOutput" Name 24 "tex[0]"
Name 39 "param" Name 28 "tex[1]"
Decorate 22(tex[0]) DescriptorSet 0 Name 34 "pos"
Decorate 27(tex[1]) DescriptorSet 0 Name 36 "pos"
Decorate 35(pos) Location 0 Name 39 "@entryPointOutput"
Decorate 38(@entryPointOutput) BuiltIn Position Name 40 "param"
Decorate 24(tex[0]) DescriptorSet 0
Decorate 28(tex[1]) DescriptorSet 0
Decorate 36(pos) Location 0
Decorate 39(@entryPointOutput) BuiltIn Position
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
7: TypeVector 6(float) 4 7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4) 8: TypePointer Function 7(fvec4)
9: TypeFunction 7(fvec4) 8(ptr) 9: TypeFunction 7(fvec4) 8(ptr)
13: TypeImage 6(float) 2D sampled format:Unknown 13: TypeInt 32 1
14: TypeInt 32 0 14: TypeImage 6(float) 2D sampled format:Unknown
15: 14(int) Constant 2 15: TypeInt 32 0
16: TypeArray 13 15 16: 15(int) Constant 2
17: TypePointer Function 16 17: TypeArray 14 16
19: TypeInt 32 1 18(Packed): TypeStruct 13(int) 17 13(int)
20: 19(int) Constant 0 19: TypePointer Function 18(Packed)
21: TypePointer UniformConstant 13 21: 13(int) Constant 1
22(tex[0]): 21(ptr) Variable UniformConstant 22: 13(int) Constant 0
24: TypePointer Function 13 23: TypePointer UniformConstant 14
26: 19(int) Constant 1 24(tex[0]): 23(ptr) Variable UniformConstant
27(tex[1]): 21(ptr) Variable UniformConstant 26: TypePointer Function 14
34: TypePointer Input 7(fvec4) 28(tex[1]): 23(ptr) Variable UniformConstant
35(pos): 34(ptr) Variable Input 35: TypePointer Input 7(fvec4)
37: TypePointer Output 7(fvec4) 36(pos): 35(ptr) Variable Input
38(@entryPointOutput): 37(ptr) Variable Output 38: TypePointer Output 7(fvec4)
39(@entryPointOutput): 38(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
33(pos): 8(ptr) Variable Function 34(pos): 8(ptr) Variable Function
39(param): 8(ptr) Variable Function 40(param): 8(ptr) Variable Function
36: 7(fvec4) Load 35(pos) 37: 7(fvec4) Load 36(pos)
Store 33(pos) 36 Store 34(pos) 37
40: 7(fvec4) Load 33(pos) 41: 7(fvec4) Load 34(pos)
Store 39(param) 40 Store 40(param) 41
41: 7(fvec4) FunctionCall 11(@main(vf4;) 39(param) 42: 7(fvec4) FunctionCall 11(@main(vf4;) 40(param)
Store 38(@entryPointOutput) 41 Store 39(@entryPointOutput) 42
Return Return
FunctionEnd FunctionEnd
11(@main(vf4;): 7(fvec4) Function None 9 11(@main(vf4;): 7(fvec4) Function None 9
10(pos): 8(ptr) FunctionParameter 10(pos): 8(ptr) FunctionParameter
12: Label 12: Label
18(packed.membTex): 17(ptr) Variable Function 20(packed): 19(ptr) Variable Function
23: 13 Load 22(tex[0]) 25: 14 Load 24(tex[0])
25: 24(ptr) AccessChain 18(packed.membTex) 20 27: 26(ptr) AccessChain 20(packed) 21 22
Store 25 23 Store 27 25
28: 13 Load 27(tex[1]) 29: 14 Load 28(tex[1])
29: 24(ptr) AccessChain 18(packed.membTex) 26 30: 26(ptr) AccessChain 20(packed) 21 21
Store 29 28 Store 30 29
30: 7(fvec4) Load 10(pos) 31: 7(fvec4) Load 10(pos)
ReturnValue 30 ReturnValue 31
FunctionEnd FunctionEnd

View File

@ -22,5 +22,6 @@ float4 main() : SV_TARGET0
res += lookUp(tex2); res += lookUp(tex2);
FxaaTex tex3 = tex1; FxaaTex tex3 = tex1;
res += lookUp(tex3); res += lookUp(tex3);
return res; return res;
} }

View File

@ -1160,7 +1160,7 @@ bool HlslParseContext::shouldFlatten(const TType& type, TStorageQualifier qualif
return (type.isArray() && intermediate.getFlattenUniformArrays() && topLevel) || return (type.isArray() && intermediate.getFlattenUniformArrays() && topLevel) ||
(type.isStruct() && type.containsOpaque()); (type.isStruct() && type.containsOpaque());
default: default:
return type.isStruct() && type.containsOpaque(); return false;
}; };
} }