Add basic intra-stage linking validation for matching types and qualification of uniforms/ins/outs/globals, function body duplication, and mixing ES/non-ES shaders.

Still need to handle arrays and built-in redeclarations, and many more rules, but this puts the basics in place.


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23225 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich
2013-09-24 21:18:46 +00:00
parent f5ebfb5f27
commit 337dbc7d8c
37 changed files with 657 additions and 196 deletions

View File

@@ -1,33 +1,54 @@
mains1.frag
0:3Function Definition: main( (void)
0:3 Function Parameters:
0:? Sequence
0:3 Function Definition: main( (void)
0:3 Function Parameters:
0:? Linker Objects
mains2.frag
0:3Function Definition: main( (void)
0:3 Function Parameters:
0:? Sequence
0:3 Function Definition: main( (void)
0:3 Function Parameters:
0:? Linker Objects
noMain1.geom
ERROR: #version: geometry shaders require non-es profile and version 150 or above
ERROR: 1 compilation errors. No code generated.
0:3Function Definition: foo( (void)
0:3 Function Parameters:
ERROR: node is still EOpNull!
0:3 Function Definition: foo( (void)
0:3 Function Parameters:
0:? Linker Objects
noMain2.geom
0:3Function Definition: bar( (void)
0:3 Function Parameters:
0:? Sequence
0:3 Function Definition: bar( (void)
0:3 Function Parameters:
0:? Linker Objects
Linked geometry stage:
ERROR: Missing entry point: Each stage requires one "void main()" entry point
ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point
Linked fragment stage:
ERROR: Too many entry points: Each stage can have at most one "void main()" entry point.
ERROR: Linking fragment stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
ERROR: node is still EOpNull!
0:3 Function Definition: foo( (void)
0:3 Function Parameters:
0:3 Function Definition: bar( (void)
0:3 Function Parameters:
0:? Linker Objects
0:? Sequence
0:3 Function Definition: main( (void)
0:3 Function Parameters:
0:3 Function Definition: main( (void)
0:3 Function Parameters:
0:? Linker Objects