Add ES 3.0 fragment output link-time test for outputs having or not having location qualifiers.
Also split linker validation into its own file, removed dead "QualifierAlive" files, printed errors for parsing problems with built-in symbols, updated the Windows binary, and added some tests. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23490 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
27b72e42c3
commit
fb57e7cc5e
23 changed files with 543 additions and 434 deletions
18
Todo.txt
18
Todo.txt
|
|
@ -8,25 +8,25 @@ Link Validation
|
|||
Cross-stage linking
|
||||
- type consistency check of uniform and ins <-> outs, both variables and blocks, stage-specific arrayness matching
|
||||
- location/binding/index check
|
||||
- matching initializers for uniforms
|
||||
- mixed es/non-es profiles
|
||||
- statically consumed input not produced by previous stage
|
||||
- matching between gl_PerVertex blocks and gl_PerFragment blocks
|
||||
- compute shader not combined with any other stages
|
||||
- give error for sharing a packed block
|
||||
- 1.2: matching initializers for uniforms
|
||||
- 1.5: matching between gl_PerVertex blocks and gl_PerFragment blocks
|
||||
- 1.3: deprecated mixing fixed vertex/fragment stage with programmable fragment/vertex stage.
|
||||
- 4.3: compute shader not combined with any other stages
|
||||
- 4.3: remove cross-version linking restrictions.
|
||||
- 4.3: Allow mismatches in interpolation and auxiliary qualification across stages.
|
||||
- 4.4: A stage contains two different blocks, each with no instance name, where the blocks contain a member with the same name.
|
||||
Intra-stage linking
|
||||
- ES 3.0: location aliasing/overlap (except desktop vertex shader inputs)
|
||||
+ ES 3.0: fragment outputs all have locations, if more than one
|
||||
+ exactly one main
|
||||
+ Non ES: type consistency check of uniforms, globals, ins, and outs
|
||||
+ Non ES: value checking of global const initializers
|
||||
+ Non ES: value checking of uniform initializers
|
||||
+ Non ES: location match
|
||||
- gl_TexCoord can only have a max array size of up to gl_MaxTextureCoords
|
||||
- location aliasing/overlap (except desktop vertex shader inputs)
|
||||
- 1.0: count the number of uniforms and varyings, compare against limits
|
||||
- Non ES: gl_TexCoord can only have a max array size of up to gl_MaxTextureCoords
|
||||
+ recursion for functions
|
||||
- Non ES: block matching
|
||||
- Non ES: component/binding/index/offset match check
|
||||
|
|
@ -46,8 +46,8 @@ Link Validation
|
|||
|
||||
Shader Functionality to Implement/Finish
|
||||
ESSL 2.0 (#version 100)
|
||||
- implement non-inductive loop limitation detection
|
||||
- implement non-inductive array accesses limitation detection
|
||||
+ implement non-inductive loop limitation detection
|
||||
+ implement non-inductive array accesses limitation detection
|
||||
ESSL 3.0
|
||||
- "const" compile-time constant propagation in the front-end has to be complete, for all built-in functions
|
||||
GLSL 1.2
|
||||
|
|
@ -72,7 +72,7 @@ Shader Functionality to Implement/Finish
|
|||
- Built-in uniforms except for depth range parameters
|
||||
- Built-in interface between vertex and fragment: gl_TexCoord, gl_FogFragCoord, and all the color values.
|
||||
- Built-in two-sided coloring.
|
||||
- Fixed functionality for a programmable stage. Supply shaders for all stages currently being used.
|
||||
- Fixed functionality for a programmable stage.
|
||||
- ftransform(). Use invariant outputs instead.
|
||||
GLSL 1.5 (Non-ES)
|
||||
- Deprecated gl_MaxVaryingComponents
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue