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:
@@ -5,9 +5,17 @@ local_size = (4, 4, 2)
|
||||
0:4 Function Definition: main(vu3; (temp void)
|
||||
0:4 Function Parameters:
|
||||
0:4 'tid' (in 3-component vector of uint)
|
||||
0:9 Function Definition: main_aux1(vu3; (temp void)
|
||||
0:9 Function Definition: @main_aux1(vu3; (temp void)
|
||||
0:9 Function Parameters:
|
||||
0:9 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
0:9 Function Definition: main_aux1( (temp void)
|
||||
0:9 Function Parameters:
|
||||
0:? Sequence
|
||||
0:9 move second child to first child (temp 3-component vector of uint)
|
||||
0:? 'tid' (temp 3-component vector of uint)
|
||||
0:? 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
0:9 Function Call: @main_aux1(vu3; (temp void)
|
||||
0:? 'tid' (temp 3-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
|
||||
@@ -21,36 +29,55 @@ local_size = (4, 4, 2)
|
||||
0:4 Function Definition: main(vu3; (temp void)
|
||||
0:4 Function Parameters:
|
||||
0:4 'tid' (in 3-component vector of uint)
|
||||
0:9 Function Definition: main_aux1(vu3; (temp void)
|
||||
0:9 Function Definition: @main_aux1(vu3; (temp void)
|
||||
0:9 Function Parameters:
|
||||
0:9 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
0:9 Function Definition: main_aux1( (temp void)
|
||||
0:9 Function Parameters:
|
||||
0:? Sequence
|
||||
0:9 move second child to first child (temp 3-component vector of uint)
|
||||
0:? 'tid' (temp 3-component vector of uint)
|
||||
0:? 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
0:9 Function Call: @main_aux1(vu3; (temp void)
|
||||
0:? 'tid' (temp 3-component vector of uint)
|
||||
0:? Linker Objects
|
||||
0:? 'tid' (in 3-component vector of uint GlobalInvocationID)
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 15
|
||||
// Id's are bound by 23
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main_aux1" 14
|
||||
EntryPoint GLCompute 4 "main_aux1" 18
|
||||
ExecutionMode 4 LocalSize 4 4 2
|
||||
Name 4 "main_aux1"
|
||||
Name 11 "main(vu3;"
|
||||
Name 10 "tid"
|
||||
Name 14 "tid"
|
||||
Decorate 14(tid) BuiltIn GlobalInvocationId
|
||||
Name 14 "@main_aux1(vu3;"
|
||||
Name 13 "tid"
|
||||
Name 16 "tid"
|
||||
Name 18 "tid"
|
||||
Name 20 "param"
|
||||
Decorate 18(tid) BuiltIn GlobalInvocationId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 0
|
||||
7: TypeVector 6(int) 3
|
||||
8: TypePointer Function 7(ivec3)
|
||||
9: TypeFunction 2 8(ptr)
|
||||
13: TypePointer Input 7(ivec3)
|
||||
14(tid): 13(ptr) Variable Input
|
||||
17: TypePointer Input 7(ivec3)
|
||||
18(tid): 17(ptr) Variable Input
|
||||
4(main_aux1): 2 Function None 3
|
||||
5: Label
|
||||
16(tid): 8(ptr) Variable Function
|
||||
20(param): 8(ptr) Variable Function
|
||||
19: 7(ivec3) Load 18(tid)
|
||||
Store 16(tid) 19
|
||||
21: 7(ivec3) Load 16(tid)
|
||||
Store 20(param) 21
|
||||
22: 2 FunctionCall 14(@main_aux1(vu3;) 20(param)
|
||||
Return
|
||||
FunctionEnd
|
||||
11(main(vu3;): 2 Function None 9
|
||||
@@ -58,3 +85,8 @@ local_size = (4, 4, 2)
|
||||
12: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
14(@main_aux1(vu3;): 2 Function None 9
|
||||
13(tid): 8(ptr) FunctionParameter
|
||||
15: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user