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

@@ -34,6 +34,15 @@ gl_FragCoord origin is upper left
0:9 0.000000
0:9 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (out float)
0:? 'inDV1a' (layout(location=0 ) in double)
0:? 'inDV1b' (layout(location=1 ) in double)
0:? 'inDV1c' (layout(location=2 ) in double)
0:? 'inDV2' (layout(location=3 ) in 2-component vector of double)
0:? 'inDV3' (layout(location=4 ) in 3-component vector of double)
0:? 'inDV4' (layout(location=6 ) in 4-component vector of double)
0:? 'inU1a' (layout(location=8 ) in uint)
0:? 'inU1b' (layout(location=9 ) in uint)
Linked fragment stage:
@@ -74,16 +83,25 @@ gl_FragCoord origin is upper left
0:9 0.000000
0:9 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (out float)
0:? 'inDV1a' (layout(location=0 ) in double)
0:? 'inDV1b' (layout(location=1 ) in double)
0:? 'inDV1c' (layout(location=2 ) in double)
0:? 'inDV2' (layout(location=3 ) in 2-component vector of double)
0:? 'inDV3' (layout(location=4 ) in 3-component vector of double)
0:? 'inDV4' (layout(location=6 ) in 4-component vector of double)
0:? 'inU1a' (layout(location=8 ) in uint)
0:? 'inU1b' (layout(location=9 ) in uint)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 32
// Id's are bound by 41
Capability Shader
Capability Float64
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 29
EntryPoint Fragment 4 "PixelShaderFunction" 10 12 14 20 22 29 34 37 40
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 8 "r00"
@@ -94,12 +112,18 @@ gl_FragCoord origin is upper left
Name 20 "inU1a"
Name 22 "inU1b"
Name 29 "@entryPointOutput"
Name 34 "inDV2"
Name 37 "inDV3"
Name 40 "inDV4"
Decorate 10(inDV1a) Location 0
Decorate 12(inDV1b) Location 1
Decorate 14(inDV1c) Location 2
Decorate 20(inU1a) Location 8
Decorate 22(inU1b) Location 9
Decorate 29(@entryPointOutput) Location 0
Decorate 34(inDV2) Location 3
Decorate 37(inDV3) Location 4
Decorate 40(inDV4) Location 6
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 64
@@ -117,6 +141,15 @@ gl_FragCoord origin is upper left
28: TypePointer Output 27(float)
29(@entryPointOutput): 28(ptr) Variable Output
30: 27(float) Constant 0
32: TypeVector 6(float) 2
33: TypePointer Input 32(fvec2)
34(inDV2): 33(ptr) Variable Input
35: TypeVector 6(float) 3
36: TypePointer Input 35(fvec3)
37(inDV3): 36(ptr) Variable Input
38: TypeVector 6(float) 4
39: TypePointer Input 38(fvec4)
40(inDV4): 39(ptr) Variable Input
4(PixelShaderFunction): 2 Function None 3
5: Label
8(r00): 7(ptr) Variable Function