* rework how shader interface block naming rules are handled * Fixes 2136 According to the spec, shader interfaces (uniform blocks, buffer blocks, input blocks, output blocks) all should be matched up via their block names across all compilation units, not instance names. Also, all block names can be re-used between all 4 interface types without conflict. This change makes it so all of these blocks are matched and remapped using block name and not by instance name. Additional the rule that matched uniform and buffer blocks must either be anonymous or named (but not nessearily the same name) is now imposed. * add warning if instance names differ between matched shader interfaces * Add test cases from #2137 which is now fixed as well. * replace some tab characters with spaces * buffer blocks and uniform blocks now share the same block namespace
207 lines
16 KiB
Plaintext
Executable File
207 lines
16 KiB
Plaintext
Executable File
link.vk.pcNamingValid.0.0.vert
|
|
Shader version: 450
|
|
0:? Sequence
|
|
0:16 Function Definition: main( ( global void)
|
|
0:16 Function Parameters:
|
|
0:18 Sequence
|
|
0:18 move second child to first child ( temp highp 4-component vector of float)
|
|
0:18 'oColor' (layout( location=0) smooth out highp 4-component vector of float)
|
|
0:18 component-wise multiply ( temp highp 4-component vector of float)
|
|
0:18 color1: direct index for structure (layout( column_major std430 offset=128) uniform highp 4-component vector of float)
|
|
0:18 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:18 Constant:
|
|
0:18 2 (const int)
|
|
0:18 Function Call: getColor2( ( global highp 4-component vector of float)
|
|
0:20 move second child to first child ( temp highp 4-component vector of float)
|
|
0:20 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
|
|
0:20 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, out unsized 1-element array of float CullDistance gl_CullDistance})
|
|
0:20 Constant:
|
|
0:20 0 (const uint)
|
|
0:20 matrix-times-vector ( temp highp 4-component vector of float)
|
|
0:20 uProj: direct index for structure (layout( column_major std430 offset=64) uniform highp 4X4 matrix of float)
|
|
0:20 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:20 Constant:
|
|
0:20 1 (const int)
|
|
0:20 Function Call: getWorld( ( global highp 4-component vector of float)
|
|
0:? Linker Objects
|
|
0:? 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:? 'oColor' (layout( location=0) smooth out highp 4-component vector of float)
|
|
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, out unsized 1-element array of float CullDistance gl_CullDistance})
|
|
|
|
link.vk.pcNamingValid.0.1.vert
|
|
Shader version: 450
|
|
0:? Sequence
|
|
0:13 Function Definition: getColor2( ( global highp 4-component vector of float)
|
|
0:13 Function Parameters:
|
|
0:15 Sequence
|
|
0:15 Branch: Return with expression
|
|
0:15 color2: direct index for structure (layout( column_major std430 offset=144) uniform highp 4-component vector of float)
|
|
0:15 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:15 Constant:
|
|
0:15 3 (const int)
|
|
0:18 Function Definition: getWorld( ( global highp 4-component vector of float)
|
|
0:18 Function Parameters:
|
|
0:20 Sequence
|
|
0:20 Branch: Return with expression
|
|
0:20 matrix-times-vector ( temp highp 4-component vector of float)
|
|
0:20 uWorld: direct index for structure (layout( column_major std430 offset=0) uniform highp 4X4 matrix of float)
|
|
0:20 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:20 Constant:
|
|
0:20 0 (const int)
|
|
0:20 'P' (layout( location=0) in highp 4-component vector of float)
|
|
0:? Linker Objects
|
|
0:? 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:? 'P' (layout( location=0) in highp 4-component vector of float)
|
|
|
|
|
|
Linked vertex stage:
|
|
|
|
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
|
|
a: "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}" versus b: "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}"
|
|
|
|
Shader version: 450
|
|
0:? Sequence
|
|
0:16 Function Definition: main( ( global void)
|
|
0:16 Function Parameters:
|
|
0:18 Sequence
|
|
0:18 move second child to first child ( temp highp 4-component vector of float)
|
|
0:18 'oColor' (layout( location=0) smooth out highp 4-component vector of float)
|
|
0:18 component-wise multiply ( temp highp 4-component vector of float)
|
|
0:18 color1: direct index for structure (layout( column_major std430 offset=128) uniform highp 4-component vector of float)
|
|
0:18 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:18 Constant:
|
|
0:18 2 (const int)
|
|
0:18 Function Call: getColor2( ( global highp 4-component vector of float)
|
|
0:20 move second child to first child ( temp highp 4-component vector of float)
|
|
0:20 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
|
|
0:20 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, out 1-element array of float CullDistance gl_CullDistance})
|
|
0:20 Constant:
|
|
0:20 0 (const uint)
|
|
0:20 matrix-times-vector ( temp highp 4-component vector of float)
|
|
0:20 uProj: direct index for structure (layout( column_major std430 offset=64) uniform highp 4X4 matrix of float)
|
|
0:20 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:20 Constant:
|
|
0:20 1 (const int)
|
|
0:20 Function Call: getWorld( ( global highp 4-component vector of float)
|
|
0:13 Function Definition: getColor2( ( global highp 4-component vector of float)
|
|
0:13 Function Parameters:
|
|
0:15 Sequence
|
|
0:15 Branch: Return with expression
|
|
0:15 color2: direct index for structure (layout( column_major std430 offset=144) uniform highp 4-component vector of float)
|
|
0:15 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:15 Constant:
|
|
0:15 3 (const int)
|
|
0:18 Function Definition: getWorld( ( global highp 4-component vector of float)
|
|
0:18 Function Parameters:
|
|
0:20 Sequence
|
|
0:20 Branch: Return with expression
|
|
0:20 matrix-times-vector ( temp highp 4-component vector of float)
|
|
0:20 uWorld: direct index for structure (layout( column_major std430 offset=0) uniform highp 4X4 matrix of float)
|
|
0:20 'b' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:20 Constant:
|
|
0:20 0 (const int)
|
|
0:20 'P' (layout( location=0) in highp 4-component vector of float)
|
|
0:? Linker Objects
|
|
0:? 'a' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2})
|
|
0:? 'oColor' (layout( location=0) smooth out highp 4-component vector of float)
|
|
0:? 'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, out 1-element array of float CullDistance gl_CullDistance})
|
|
0:? 'P' (layout( location=0) in highp 4-component vector of float)
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80008
|
|
// Id's are bound by 53
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4 "main" 14 31 48
|
|
Source GLSL 450
|
|
Name 4 "main"
|
|
Name 9 "getColor2("
|
|
Name 11 "getWorld("
|
|
Name 14 "oColor"
|
|
Name 16 "PCBlock"
|
|
MemberName 16(PCBlock) 0 "uWorld"
|
|
MemberName 16(PCBlock) 1 "uProj"
|
|
MemberName 16(PCBlock) 2 "color1"
|
|
MemberName 16(PCBlock) 3 "color2"
|
|
Name 18 "a"
|
|
Name 29 "gl_PerVertex"
|
|
MemberName 29(gl_PerVertex) 0 "gl_Position"
|
|
MemberName 29(gl_PerVertex) 1 "gl_PointSize"
|
|
MemberName 29(gl_PerVertex) 2 "gl_ClipDistance"
|
|
MemberName 29(gl_PerVertex) 3 "gl_CullDistance"
|
|
Name 31 ""
|
|
Name 48 "P"
|
|
Decorate 14(oColor) Location 0
|
|
MemberDecorate 16(PCBlock) 0 ColMajor
|
|
MemberDecorate 16(PCBlock) 0 Offset 0
|
|
MemberDecorate 16(PCBlock) 0 MatrixStride 16
|
|
MemberDecorate 16(PCBlock) 1 ColMajor
|
|
MemberDecorate 16(PCBlock) 1 Offset 64
|
|
MemberDecorate 16(PCBlock) 1 MatrixStride 16
|
|
MemberDecorate 16(PCBlock) 2 Offset 128
|
|
MemberDecorate 16(PCBlock) 3 Offset 144
|
|
Decorate 16(PCBlock) Block
|
|
MemberDecorate 29(gl_PerVertex) 0 BuiltIn Position
|
|
MemberDecorate 29(gl_PerVertex) 1 BuiltIn PointSize
|
|
MemberDecorate 29(gl_PerVertex) 2 BuiltIn ClipDistance
|
|
MemberDecorate 29(gl_PerVertex) 3 BuiltIn CullDistance
|
|
Decorate 29(gl_PerVertex) Block
|
|
Decorate 48(P) Location 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypeFunction 7(fvec4)
|
|
13: TypePointer Output 7(fvec4)
|
|
14(oColor): 13(ptr) Variable Output
|
|
15: TypeMatrix 7(fvec4) 4
|
|
16(PCBlock): TypeStruct 15 15 7(fvec4) 7(fvec4)
|
|
17: TypePointer PushConstant 16(PCBlock)
|
|
18(a): 17(ptr) Variable PushConstant
|
|
19: TypeInt 32 1
|
|
20: 19(int) Constant 2
|
|
21: TypePointer PushConstant 7(fvec4)
|
|
26: TypeInt 32 0
|
|
27: 26(int) Constant 1
|
|
28: TypeArray 6(float) 27
|
|
29(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 28 28
|
|
30: TypePointer Output 29(gl_PerVertex)
|
|
31: 30(ptr) Variable Output
|
|
32: 19(int) Constant 0
|
|
33: 19(int) Constant 1
|
|
34: TypePointer PushConstant 15
|
|
40: 19(int) Constant 3
|
|
47: TypePointer Input 7(fvec4)
|
|
48(P): 47(ptr) Variable Input
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
22: 21(ptr) AccessChain 18(a) 20
|
|
23: 7(fvec4) Load 22
|
|
24: 7(fvec4) FunctionCall 9(getColor2()
|
|
25: 7(fvec4) FMul 23 24
|
|
Store 14(oColor) 25
|
|
35: 34(ptr) AccessChain 18(a) 33
|
|
36: 15 Load 35
|
|
37: 7(fvec4) FunctionCall 11(getWorld()
|
|
38: 7(fvec4) MatrixTimesVector 36 37
|
|
39: 13(ptr) AccessChain 31 32
|
|
Store 39 38
|
|
Return
|
|
FunctionEnd
|
|
9(getColor2(): 7(fvec4) Function None 8
|
|
10: Label
|
|
41: 21(ptr) AccessChain 18(a) 40
|
|
42: 7(fvec4) Load 41
|
|
ReturnValue 42
|
|
FunctionEnd
|
|
11(getWorld(): 7(fvec4) Function None 8
|
|
12: Label
|
|
45: 34(ptr) AccessChain 18(a) 32
|
|
46: 15 Load 45
|
|
49: 7(fvec4) Load 48(P)
|
|
50: 7(fvec4) MatrixTimesVector 46 49
|
|
ReturnValue 50
|
|
FunctionEnd
|