Add optional configuration file for specifying (existing) limits. Details explained by usage statement. More limits to be added in the future.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23105 e7fa87d3-cd2b-0410-9028-fcbf551c1848
diff --git a/Todo.txt b/Todo.txt
index 09f9e53..75f2c3e 100644
--- a/Todo.txt
+++ b/Todo.txt
@@ -1,6 +1,8 @@
Current functionality level: ESSL 3.0
Link Validation
+ + provide input config file for setting limits
+ - also consider spitting out measures of complexity
- ensure no static references thrown away
Cross-stage linking
- type consistency check of uniform and ins <-> outs, both variables and blocks, stage-specific arrayness matching
@@ -13,6 +15,7 @@
- 1.3: deprecated mixing fixed vertex/fragment stage with programmable fragment/vertex stage.
- 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
- exactly one main
- type consistency check of uniforms, globals, ins, and outs, both variables and blocks
@@ -33,6 +36,8 @@
- 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
+ - 4.4: If gl_FragCoord is redeclared in any fragment shader in a program, it must be redeclared in all the fragment shaders in that program that have a static use gl_FragCoord
+ - 4.4: An interface contains two different blocks, each with no instance name, where the blocks contain a member with the same name.
Shader Functionality to Implement/Finish
ESSL 3.0
@@ -116,7 +121,6 @@
- Add 64-bit floating-point attributes for vertex shader inputs.
- Support viewport arrays so where the geometry shader selects which viewport array will transform its output.
GLSL 4.2
- - Add 420-style function signature matching rules (or did this start in 4.0?)
+ Move these previously deprecated features to be only in the compatibility profile:
+ The keyword attribute for vertex shader inputs. (Use in instead.)
+ The keyword varying for inputs and outputs. (Use in and out instead.)
@@ -153,12 +157,9 @@
- Allow swizzle operations on scalars.
- Positive signed decimal literals, as well as octal and hexadecimal, can set all 32 bits. This includes setting the sign bit to create a negative value.
- Make GLSL consistent with the API regarding user clipping, by no longer referring to gl_Positionwhen gl_ClipVertex is not written. Rather, user clipping becomes undefined.
- - Minor consistency fixes, corrections
- - Consistently state structures have members not fields. The period ( . ) is still called the field selector, for all its multiple uses.
- - Remove comment that there is no communication between instantiations of a shader.
- - Clarified that a comma sequence-operator expression cannot be a constant expression. E.g., (2,3) is not allowed, semantically, as a valid constant expression 3, even though it is an expression that will evaluate to 3.
- - Use vec2instead of vec3for coordinate in textureGather*(sampler2DRect,...).
- - Clarify that textureGatherOffset() can take non-constants for the offsets.
+ - Clarified that a comma sequence-operator expression cannot be a constant expression. E.g., (2,3) is not allowed, semantically, as a valid constant expression 3, even though it is an expression that will evaluate to 3.
+ - Use vec2 instead of vec3 for coordinate in textureGather*(sampler2DRect,...).
+ - Clarify that textureGatherOffset() can take non-constants for the offsets.
GLSL 4.3
- Add shader storage bufferobjects, as per the ARB_shader_storage_buffer_object extension.
This includes 1) allowing the last member of a storage buffer block to be an array that does not