HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.
This needs some render testing, but is destined to be part of master. This also leads to a variety of other simplifications. - IO are global symbols, so only need one list of linkage nodes (deferred) - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized - several parts of splitting/flattening are now localized
This commit is contained in:
parent
18adbdbbb8
commit
02467d8d94
171 changed files with 37604 additions and 32679 deletions
|
|
@ -6,13 +6,21 @@ gl_FragCoord origin is upper left
|
|||
0:1 Function Parameters:
|
||||
0:2 Function Definition: foo2( (temp void)
|
||||
0:2 Function Parameters:
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp void)
|
||||
0:5 Function Definition: @PixelShaderFunction(vf4; (temp void)
|
||||
0:5 Function Parameters:
|
||||
0:5 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 Function Call: foo1( (temp void)
|
||||
0:7 Function Call: foo2( (temp void)
|
||||
0:8 Branch: Return
|
||||
0:5 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:5 Function Parameters:
|
||||
0:? Sequence
|
||||
0:5 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:5 Function Call: @PixelShaderFunction(vf4; (temp void)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
|
||||
|
|
@ -27,40 +35,59 @@ gl_FragCoord origin is upper left
|
|||
0:1 Function Parameters:
|
||||
0:2 Function Definition: foo2( (temp void)
|
||||
0:2 Function Parameters:
|
||||
0:5 Function Definition: PixelShaderFunction(vf4; (temp void)
|
||||
0:5 Function Definition: @PixelShaderFunction(vf4; (temp void)
|
||||
0:5 Function Parameters:
|
||||
0:5 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:5 'input' (in 4-component vector of float)
|
||||
0:? Sequence
|
||||
0:6 Function Call: foo1( (temp void)
|
||||
0:7 Function Call: foo2( (temp void)
|
||||
0:8 Branch: Return
|
||||
0:5 Function Definition: PixelShaderFunction( (temp void)
|
||||
0:5 Function Parameters:
|
||||
0:? Sequence
|
||||
0:5 move second child to first child (temp 4-component vector of float)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
0:5 Function Call: @PixelShaderFunction(vf4; (temp void)
|
||||
0:? 'input' (temp 4-component vector of float)
|
||||
0:? Linker Objects
|
||||
0:? 'input' (layout(location=0 ) in 4-component vector of float)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 17
|
||||
// Id's are bound by 27
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 16
|
||||
EntryPoint Fragment 4 "PixelShaderFunction" 22
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Name 4 "PixelShaderFunction"
|
||||
Name 6 "foo1("
|
||||
Name 8 "foo2("
|
||||
Name 16 "input"
|
||||
Decorate 16(input) Location 0
|
||||
Name 15 "@PixelShaderFunction(vf4;"
|
||||
Name 14 "input"
|
||||
Name 20 "input"
|
||||
Name 22 "input"
|
||||
Name 24 "param"
|
||||
Decorate 22(input) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
13: TypeFloat 32
|
||||
14: TypeVector 13(float) 4
|
||||
15: TypePointer Input 14(fvec4)
|
||||
16(input): 15(ptr) Variable Input
|
||||
10: TypeFloat 32
|
||||
11: TypeVector 10(float) 4
|
||||
12: TypePointer Function 11(fvec4)
|
||||
13: TypeFunction 2 12(ptr)
|
||||
21: TypePointer Input 11(fvec4)
|
||||
22(input): 21(ptr) Variable Input
|
||||
4(PixelShaderFunction): 2 Function None 3
|
||||
5: Label
|
||||
10: 2 FunctionCall 6(foo1()
|
||||
11: 2 FunctionCall 8(foo2()
|
||||
20(input): 12(ptr) Variable Function
|
||||
24(param): 12(ptr) Variable Function
|
||||
23: 11(fvec4) Load 22(input)
|
||||
Store 20(input) 23
|
||||
25: 11(fvec4) Load 20(input)
|
||||
Store 24(param) 25
|
||||
26: 2 FunctionCall 15(@PixelShaderFunction(vf4;) 24(param)
|
||||
Return
|
||||
FunctionEnd
|
||||
6(foo1(): 2 Function None 3
|
||||
|
|
@ -71,3 +98,10 @@ gl_FragCoord origin is upper left
|
|||
9: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
15(@PixelShaderFunction(vf4;): 2 Function None 13
|
||||
14(input): 12(ptr) FunctionParameter
|
||||
16: Label
|
||||
17: 2 FunctionCall 6(foo1()
|
||||
18: 2 FunctionCall 8(foo2()
|
||||
Return
|
||||
FunctionEnd
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue