HLSL: Make the entry-point shadow function have non-IO params and return.

This also removes an no longer needed makeTemporary() and rationalizes
makeTypeNonIo()'s interface.
This commit is contained in:
John Kessenich
2017-02-01 18:09:17 -07:00
parent 5d3023af03
commit abd8dca86d
24 changed files with 1146 additions and 1346 deletions

View File

@@ -8,7 +8,7 @@ output primitive = triangle_strip
0:16 Function Definition: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; (temp void)
0:16 Function Parameters:
0:16 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:16 'outStream' (out structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? Sequence
0:19 move second child to first child (temp 4-component vector of float)
0:19 color: direct index for structure (temp 4-component vector of float)
@@ -47,8 +47,8 @@ output primitive = triangle_strip
0:21 Constant:
0:21 0 (const int)
0:22 Sequence
0:22 move second child to first child (temp structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 'outStream' (out structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 EmitVertex (temp void)
0:16 Function Definition: main( (temp void)
@@ -59,7 +59,7 @@ output primitive = triangle_strip
0:? 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:16 Function Call: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; (temp void)
0:? 'vin' (temp 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? 'outStream' (temp structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? 'outStream' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? Linker Objects
0:? 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
@@ -76,7 +76,7 @@ output primitive = triangle_strip
0:16 Function Definition: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; (temp void)
0:16 Function Parameters:
0:16 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:16 'outStream' (out structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? Sequence
0:19 move second child to first child (temp 4-component vector of float)
0:19 color: direct index for structure (temp 4-component vector of float)
@@ -115,8 +115,8 @@ output primitive = triangle_strip
0:21 Constant:
0:21 0 (const int)
0:22 Sequence
0:22 move second child to first child (temp structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 'outStream' (out structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 EmitVertex (temp void)
0:16 Function Definition: main( (temp void)
@@ -127,18 +127,18 @@ output primitive = triangle_strip
0:? 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:16 Function Call: @main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21; (temp void)
0:? 'vin' (temp 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? 'outStream' (temp structure{temp 4-component vector of float Position position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? 'outStream' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? Linker Objects
0:? 'vin' (layout(location=0 ) in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 55
// Id's are bound by 47
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 48
EntryPoint Geometry 4 "main" 40
ExecutionMode 4 InputLines
ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip
@@ -155,18 +155,13 @@ output primitive = triangle_strip
Name 19 "@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;"
Name 17 "vin"
Name 18 "outStream"
Name 21 "PS_IN"
MemberName 21(PS_IN) 0 "position"
MemberName 21(PS_IN) 1 "color"
MemberName 21(PS_IN) 2 "uv"
Name 23 "vout"
Name 46 "vin"
Name 48 "vin"
Name 50 "outStream"
Name 51 "param"
Name 53 "param"
MemberDecorate 14(PS_IN) 0 BuiltIn Position
Decorate 48(vin) Location 0
Name 21 "vout"
Name 38 "vin"
Name 40 "vin"
Name 42 "outStream"
Name 43 "param"
Name 45 "param"
Decorate 40(vin) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -180,56 +175,46 @@ output primitive = triangle_strip
14(PS_IN): TypeStruct 7(fvec4) 7(fvec4) 8(fvec2)
15: TypePointer Function 14(PS_IN)
16: TypeFunction 2 13(ptr) 15(ptr)
21(PS_IN): TypeStruct 7(fvec4) 7(fvec4) 8(fvec2)
22: TypePointer Function 21(PS_IN)
24: TypeInt 32 1
25: 24(int) Constant 1
26: TypePointer Function 7(fvec4)
30: 24(int) Constant 2
31: TypePointer Function 8(fvec2)
35: 24(int) Constant 0
47: TypePointer Input 12
48(vin): 47(ptr) Variable Input
22: TypeInt 32 1
23: 22(int) Constant 1
24: TypePointer Function 7(fvec4)
28: 22(int) Constant 2
29: TypePointer Function 8(fvec2)
33: 22(int) Constant 0
39: TypePointer Input 12
40(vin): 39(ptr) Variable Input
4(main): 2 Function None 3
5: Label
46(vin): 13(ptr) Variable Function
50(outStream): 15(ptr) Variable Function
51(param): 13(ptr) Variable Function
53(param): 15(ptr) Variable Function
49: 12 Load 48(vin)
Store 46(vin) 49
52: 12 Load 46(vin)
Store 51(param) 52
54: 2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 51(param) 53(param)
38(vin): 13(ptr) Variable Function
42(outStream): 15(ptr) Variable Function
43(param): 13(ptr) Variable Function
45(param): 15(ptr) Variable Function
41: 12 Load 40(vin)
Store 38(vin) 41
44: 12 Load 38(vin)
Store 43(param) 44
46: 2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 43(param) 45(param)
Return
FunctionEnd
19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;): 2 Function None 16
17(vin): 13(ptr) FunctionParameter
18(outStream): 15(ptr) FunctionParameter
20: Label
23(vout): 22(ptr) Variable Function
27: 26(ptr) AccessChain 17(vin) 25 25
28: 7(fvec4) Load 27
29: 26(ptr) AccessChain 23(vout) 25
Store 29 28
32: 31(ptr) AccessChain 17(vin) 25 30
33: 8(fvec2) Load 32
34: 31(ptr) AccessChain 23(vout) 30
Store 34 33
36: 26(ptr) AccessChain 17(vin) 25 35
37: 7(fvec4) Load 36
38: 26(ptr) AccessChain 23(vout) 35
Store 38 37
39: 21(PS_IN) Load 23(vout)
40: 7(fvec4) CompositeExtract 39 0
41: 26(ptr) AccessChain 18(outStream) 35
Store 41 40
42: 7(fvec4) CompositeExtract 39 1
43: 26(ptr) AccessChain 18(outStream) 25
Store 43 42
44: 8(fvec2) CompositeExtract 39 2
45: 31(ptr) AccessChain 18(outStream) 30
Store 45 44
21(vout): 15(ptr) Variable Function
25: 24(ptr) AccessChain 17(vin) 23 23
26: 7(fvec4) Load 25
27: 24(ptr) AccessChain 21(vout) 23
Store 27 26
30: 29(ptr) AccessChain 17(vin) 23 28
31: 8(fvec2) Load 30
32: 29(ptr) AccessChain 21(vout) 28
Store 32 31
34: 24(ptr) AccessChain 17(vin) 23 33
35: 7(fvec4) Load 34
36: 24(ptr) AccessChain 21(vout) 33
Store 36 35
37: 14(PS_IN) Load 21(vout)
Store 18(outStream) 37
EmitVertex
Return
FunctionEnd