HLSL: Flatten vertex input and fragment output structures.
Vulkan can't handle structures into the vertex stage or out of the fragment stage.
This commit is contained in:
133
Test/baseResults/hlsl.structin.vert.out
Executable file
133
Test/baseResults/hlsl.structin.vert.out
Executable file
@@ -0,0 +1,133 @@
|
||||
hlsl.structin.vert
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position)
|
||||
0:7 Function Parameters:
|
||||
0:7 'd' (layout(location=0 ) in 4-component vector of float)
|
||||
0:7 'vi' (layout(location=1 ) in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord})
|
||||
0:7 'e' (layout(location=4 ) in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:8 Sequence
|
||||
0:8 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (out 4-component vector of float Position)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 direct index (layout(location=1 ) temp 4-component vector of float)
|
||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 direct index (layout(location=1 ) temp 4-component vector of float)
|
||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 Construct vec4 (temp 4-component vector of float)
|
||||
0:8 Convert uint to float (temp float)
|
||||
0:8 direct index (temp uint)
|
||||
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 'd' (layout(location=0 ) in 4-component vector of float)
|
||||
0:8 'e' (layout(location=4 ) in 4-component vector of float)
|
||||
0:8 Branch: Return
|
||||
0:? Linker Objects
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Shader version: 450
|
||||
0:? Sequence
|
||||
0:7 Function Definition: main(vf4;struct-VI-vf4[2]-vu21;vf4; (global 4-component vector of float Position)
|
||||
0:7 Function Parameters:
|
||||
0:7 'd' (layout(location=0 ) in 4-component vector of float)
|
||||
0:7 'vi' (layout(location=1 ) in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord})
|
||||
0:7 'e' (layout(location=4 ) in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:8 Sequence
|
||||
0:8 move second child to first child (temp 4-component vector of float)
|
||||
0:? '@entryPointOutput' (out 4-component vector of float Position)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 add (temp 4-component vector of float)
|
||||
0:8 direct index (layout(location=1 ) temp 4-component vector of float)
|
||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||
0:8 Constant:
|
||||
0:8 1 (const int)
|
||||
0:8 direct index (layout(location=1 ) temp 4-component vector of float)
|
||||
0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 Construct vec4 (temp 4-component vector of float)
|
||||
0:8 Convert uint to float (temp float)
|
||||
0:8 direct index (temp uint)
|
||||
0:? 'coord' (layout(location=3 ) in 2-component vector of uint)
|
||||
0:8 Constant:
|
||||
0:8 0 (const int)
|
||||
0:8 'd' (layout(location=0 ) in 4-component vector of float)
|
||||
0:8 'e' (layout(location=4 ) in 4-component vector of float)
|
||||
0:8 Branch: Return
|
||||
0:? Linker Objects
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 41
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 9 14 26 34 37
|
||||
Name 4 "main"
|
||||
Name 9 "@entryPointOutput"
|
||||
Name 14 "m"
|
||||
Name 26 "coord"
|
||||
Name 34 "d"
|
||||
Name 37 "e"
|
||||
Decorate 9(@entryPointOutput) BuiltIn Position
|
||||
Decorate 14(m) Location 1
|
||||
Decorate 26(coord) Location 3
|
||||
Decorate 34(d) Location 0
|
||||
Decorate 37(e) Location 4
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Output 7(fvec4)
|
||||
9(@entryPointOutput): 8(ptr) Variable Output
|
||||
10: TypeInt 32 0
|
||||
11: 10(int) Constant 2
|
||||
12: TypeArray 7(fvec4) 11
|
||||
13: TypePointer Input 12
|
||||
14(m): 13(ptr) Variable Input
|
||||
15: TypeInt 32 1
|
||||
16: 15(int) Constant 1
|
||||
17: TypePointer Input 7(fvec4)
|
||||
20: 15(int) Constant 0
|
||||
24: TypeVector 10(int) 2
|
||||
25: TypePointer Input 24(ivec2)
|
||||
26(coord): 25(ptr) Variable Input
|
||||
27: 10(int) Constant 0
|
||||
28: TypePointer Input 10(int)
|
||||
34(d): 17(ptr) Variable Input
|
||||
37(e): 17(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
18: 17(ptr) AccessChain 14(m) 16
|
||||
19: 7(fvec4) Load 18
|
||||
21: 17(ptr) AccessChain 14(m) 20
|
||||
22: 7(fvec4) Load 21
|
||||
23: 7(fvec4) FAdd 19 22
|
||||
29: 28(ptr) AccessChain 26(coord) 27
|
||||
30: 10(int) Load 29
|
||||
31: 6(float) ConvertUToF 30
|
||||
32: 7(fvec4) CompositeConstruct 31 31 31 31
|
||||
33: 7(fvec4) FAdd 23 32
|
||||
35: 7(fvec4) Load 34(d)
|
||||
36: 7(fvec4) FAdd 33 35
|
||||
38: 7(fvec4) Load 37(e)
|
||||
39: 7(fvec4) FAdd 36 38
|
||||
Store 9(@entryPointOutput) 39
|
||||
Return
|
||||
FunctionEnd
|
||||
Reference in New Issue
Block a user