HLSL: Register all entry-point in/out as part of the interface.

This makes the interface be invariant, whether or not individual
variables are used.
This commit is contained in:
John Kessenich
2016-09-12 11:55:47 -06:00
parent b3e24e4359
commit deb4940c17
98 changed files with 448 additions and 19 deletions

View File

@@ -14,6 +14,7 @@ gl_FragCoord origin is upper left
0:7 Function Call: foo2( (global void)
0:8 Branch: Return
0:? Linker Objects
0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@@ -34,21 +35,28 @@ gl_FragCoord origin is upper left
0:7 Function Call: foo2( (global void)
0:8 Branch: Return
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 13
// Id's are bound by 17
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction"
EntryPoint Fragment 4 "PixelShaderFunction" 16
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 6 "foo1("
Name 8 "foo2("
Name 16 "input"
Decorate 16(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
4(PixelShaderFunction): 2 Function None 3
5: Label
10: 2 FunctionCall 6(foo1()