HLSL: Flatten a return struct from an entry point and assign locations after flattening.

Locations now get assigned in order, but skipping built-ins, which can be
done post flattening.
This commit is contained in:
John Kessenich
2016-09-16 01:44:43 -06:00
parent 7f702124ec
commit 7dc630f3da
93 changed files with 951 additions and 495 deletions

View File

@@ -6,7 +6,7 @@ gl_FragCoord origin is upper left
0:7 Function Parameters:
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'out1' (layout(location=1 ) out 4-component vector of float)
0:7 'out2' (layout(location=2 ) out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:8 move second child to first child (temp 4-component vector of float)
0:8 'out1' (layout(location=1 ) out 4-component vector of float)
@@ -27,7 +27,7 @@ gl_FragCoord origin is upper left
0:11 'out1' (layout(location=1 ) out 4-component vector of float)
0:11 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (out 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'out1' (layout(location=1 ) out 4-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)
@@ -44,7 +44,7 @@ gl_FragCoord origin is upper left
0:7 Function Parameters:
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 'out1' (layout(location=1 ) out 4-component vector of float)
0:7 'out2' (layout(location=2 ) out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i})
0:? Sequence
0:8 move second child to first child (temp 4-component vector of float)
0:8 'out1' (layout(location=1 ) out 4-component vector of float)
@@ -65,7 +65,7 @@ gl_FragCoord origin is upper left
0:11 'out1' (layout(location=1 ) out 4-component vector of float)
0:11 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (out 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'out1' (layout(location=1 ) out 4-component vector of float)
0:? 'v' (layout(location=2 ) out 2-component vector of float)