HLSL: Flatten structs for all non-arrayed I/O interfaces.

This commit is contained in:
John Kessenich
2017-08-11 00:17:26 -06:00
parent 01109546d8
commit e29ff3cd65
15 changed files with 749 additions and 862 deletions

View File

@@ -1,12 +1,12 @@
hlsl.multiDescriptorSet.frag
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 95
// Id's are bound by 92
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 78 83 89
EntryPoint Fragment 4 "main" 78 82 86
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
@@ -30,13 +30,11 @@ hlsl.multiDescriptorSet.frag
Name 63 "samLinearA"
Name 76 "input"
Name 78 "input.Pos"
Name 81 "PS_INPUT"
MemberName 81(PS_INPUT) 0 "Tex"
Name 83 "input"
Name 89 "@entryPointOutput"
Name 90 "param"
Name 93 "txDiffuseB"
Name 94 "samLinearB"
Name 82 "input.Tex"
Name 86 "@entryPointOutput"
Name 87 "param"
Name 90 "txDiffuseB"
Name 91 "samLinearB"
MemberDecorate 23(cbChangesEveryFrame) 0 RowMajor
MemberDecorate 23(cbChangesEveryFrame) 0 Offset 0
MemberDecorate 23(cbChangesEveryFrame) 0 MatrixStride 16
@@ -61,12 +59,12 @@ hlsl.multiDescriptorSet.frag
Decorate 63(samLinearA) DescriptorSet 0
Decorate 63(samLinearA) Binding 1
Decorate 78(input.Pos) BuiltIn FragCoord
Decorate 83(input) Location 0
Decorate 89(@entryPointOutput) Location 0
Decorate 93(txDiffuseB) DescriptorSet 1
Decorate 93(txDiffuseB) Binding 0
Decorate 94(samLinearB) DescriptorSet 1
Decorate 94(samLinearB) Binding 1
Decorate 82(input.Tex) Location 0
Decorate 86(@entryPointOutput) Location 0
Decorate 90(txDiffuseB) DescriptorSet 1
Decorate 90(txDiffuseB) Binding 0
Decorate 91(samLinearB) DescriptorSet 1
Decorate 91(samLinearB) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -105,29 +103,26 @@ hlsl.multiDescriptorSet.frag
70: TypePointer Uniform 7(fvec4)
77: TypePointer Input 7(fvec4)
78(input.Pos): 77(ptr) Variable Input
81(PS_INPUT): TypeStruct 8(fvec2)
82: TypePointer Input 81(PS_INPUT)
83(input): 82(ptr) Variable Input
84: TypePointer Input 8(fvec2)
88: TypePointer Output 7(fvec4)
89(@entryPointOutput): 88(ptr) Variable Output
93(txDiffuseB): 58(ptr) Variable UniformConstant
94(samLinearB): 62(ptr) Variable UniformConstant
81: TypePointer Input 8(fvec2)
82(input.Tex): 81(ptr) Variable Input
85: TypePointer Output 7(fvec4)
86(@entryPointOutput): 85(ptr) Variable Output
90(txDiffuseB): 58(ptr) Variable UniformConstant
91(samLinearB): 62(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
76(input): 10(ptr) Variable Function
90(param): 10(ptr) Variable Function
87(param): 10(ptr) Variable Function
79: 7(fvec4) Load 78(input.Pos)
80: 29(ptr) AccessChain 76(input) 21
Store 80 79
85: 84(ptr) AccessChain 83(input) 21
86: 8(fvec2) Load 85
87: 53(ptr) AccessChain 76(input) 52
Store 87 86
91: 9(PS_INPUT) Load 76(input)
Store 90(param) 91
92: 7(fvec4) FunctionCall 13(@main(struct-PS_INPUT-vf4-vf21;) 90(param)
Store 89(@entryPointOutput) 92
83: 8(fvec2) Load 82(input.Tex)
84: 53(ptr) AccessChain 76(input) 52
Store 84 83
88: 9(PS_INPUT) Load 76(input)
Store 87(param) 88
89: 7(fvec4) FunctionCall 13(@main(struct-PS_INPUT-vf4-vf21;) 87(param)
Store 86(@entryPointOutput) 89
Return
FunctionEnd
13(@main(struct-PS_INPUT-vf4-vf21;): 7(fvec4) Function None 11