Add geometry-shader stream, invocations, max_vertices, lines, triangles, etc. layout qualifiers, and their default/inheritance behaviors, and some other misc. geometry shader features. (Geometry shaders are not yet done though.)

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23679 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich
2013-10-23 19:34:05 +00:00
parent 284231c9c5
commit 94fdd1117b
24 changed files with 639 additions and 225 deletions

View File

@@ -37,6 +37,9 @@ Link Validation
- Non ES: matching redeclarations of interface blocks
- Non ES: read or write to both gl_ClipVertex and gl_ClipDistance
- Non ES: write to only one of gl_FragColor, gl_FragData, or user-declared
- 1.50: at least one geometry shader says input primitive and at least one says output primitive...
- 1.50: at least one geometry shader says max_vertices...
- 1.50: match between all explicit input array sizes and input primitive
- 4.3: Be clear that early_fragment_tests is only needed in one fragment-stage compilation unit.
- 4.3: Be clear that implicit array sizing is only within a stage, not cross stage.
- 4.4: overlapping transform/feedback offsets, offset/stride overflow checks, and stride matching
@@ -50,11 +53,12 @@ Shader Functionality to Implement/Finish
+ 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
- add limitation around #define GL_FRAGMENT_PRECISION_HIGH 1 ?
GLSL 1.2
+ Handle multiple compilation units per stage
+ Allow initializers on uniform declarations
- signature matching takes type conversions into account, ambiguity is an error
- all constructors to contain non-dereferenced arrays?
- allow constructors to contain non-dereferenced arrays?
GLSL 1.3
. flat is for both user and predeclared built-in in/out variables
GLSL 1.3 (Non-ES)
@@ -77,7 +81,7 @@ Shader Functionality to Implement/Finish
+ ftransform(). Use invariant outputs instead.
GLSL 1.5 (Non-ES)
- Deprecated gl_MaxVaryingComponents
- Add new minimum maximums for gl_MaxVertexOutputComponents, gl_MaxGeometryInputComponents, gl_MaxGeometryOutputComponents, and gl_MaxFragmentInputComponents,
+ Add new minimum maximums for gl_MaxVertexOutputComponents, gl_MaxGeometryInputComponents, gl_MaxGeometryOutputComponents, and gl_MaxFragmentInputComponents,
rather than relying on gl_MaxVaryingComponents. Also, corrected gl_MaxVaryingComponents to be 60 instead of 64.
+ Added gl_PrimitiveID as an input to fragment shaders.
- Added gl_FragCoord qualifiers origin_upper_left, and pixel_center_integer to modify the values returned by gl_FragCoord (and have no affect on any other aspect of the pipeline or language).
@@ -85,10 +89,10 @@ Shader Functionality to Implement/Finish
- Added support for multi-sample textures through sampler2DMS and sampler2DMSArray support in texelFetch() and textureSize().
+ Broadened interface blocks from just uniforms to in and out interfaces as well.
+ Broaden array usage to include vertex shader inputs (vertex in).
- Added geometry shaders. This includes targeting layers in FBO rendering.
- geometry shader layouts: they must be declared, telling the system the primitive input and output types and maximum number of vertices.
- Added geometry shader constants.
- Broaden structure usage to include geometry inputs and geometry outputs.
+ Added geometry shaders. This includes targeting layers in FBO rendering.
+ geometry shader layouts: they must be declared, telling the system the primitive input and output types and maximum number of vertices.
+ Added geometry shader constants.
+ Broaden structure usage to include geometry inputs and geometry outputs.
GLSL 4.0
- tessellation control stage and tessellation evaluation stage. Includes barrier() built-in for synchronization.
- Polymorphic functions: Run-time selection of what function gets called, through the new keyword subroutine.
@@ -203,7 +207,7 @@ Shader Functionality to Implement/Finish
- Set both gl_MaxFragmentImageUniformsand gl_MaxCombinedImageUniforms to 8.
- Clarify textureSize() for cube map arrays.
- For layout qualifiers,
- make negative output locations a compile-time error, and
- make negative output locations a compile-time error, once integer expressions are allowed in layouts
- make indexes outside the range [0,1] a compile-time error.
- Add textureQueryLevels() built-ins to query the number of mipmap levels, as per the
GL_ARB_texture_query_levels extension.