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:
John Kessenich
2017-01-19 15:41:47 -07:00
parent 18adbdbbb8
commit 02467d8d94
171 changed files with 37604 additions and 32679 deletions

View File

@@ -1,27 +1,38 @@
remap.hlsl.templatetypes.everything.frag
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 9012
// Id's are bound by 24954
Capability Shader
Capability Float64
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 5663 "main" 4045 4872
EntryPoint Fragment 5663 "main" 4872 4045
ExecutionMode 5663 OriginUpperLeft
Decorate 4045 Location 0
Decorate 4872 Location 0
Decorate 4045 Location 0
8: TypeVoid
1282: TypeFunction 8
13: TypeFloat 32
29: TypeVector 13(float) 4
666: TypePointer Function 29(fvec4)
255: TypeFunction 13(float) 666(ptr)
2572: 13(float) Constant 0
667: TypePointer Input 29(fvec4)
4872: 667(ptr) Variable Input
650: TypePointer Output 13(float)
4045: 650(ptr) Variable Output
666: TypePointer Input 29(fvec4)
4872: 666(ptr) Variable Input
5663: 8 Function None 1282
9011: Label
Store 4045 2572
24953: Label
5786: 666(ptr) Variable Function
24021: 29(fvec4) Load 4872
Store 5786 24021
9338: 13(float) FunctionCall 3917 5786
Store 4045 9338
Return
FunctionEnd
3917: 13(float) Function None 255
10636: 666(ptr) FunctionParameter
10637: Label
ReturnValue 2572
FunctionEnd