glslang/Todo.txt

61 lines
3.2 KiB
Plaintext
Raw Normal View History

Current functionality level: ESSL 3.0
Error checking
- compile-time check for static recursion
- location layout range/overlap semantics
Performance
Testing
- thread safety
Interfacing
- Put glslang in a namespace
Functionality
- "const" compile-time constant propagation in the front-end has to be complete, for all built-in functions
GLSL 1.2
- Handle multiple compilation units per stage
- Allow initializers on uniform declarations. The value is set at link time.
- signature matching takes type conversions into account, ambiguity is an error
GLSL 1.3
. flat is for both user and predeclared built-in in/out variables
GLSL 1.3 (Non-ES)
- Preprocessor token pasting (##), ## does macro expansion after pasting not before
- non-perspective (linear) interpolation (noperspective)
- add gl_ClipDistance[] to both vertex and fragment shaders
- only statically used built-ins have to be redeclared as flat
- Link: Deprecated mixing fixed vertex/fragment stage with programmable fragment/vertex stage.
- Deprecated gl_ClipVertex
- deprecate almost all built-in state
- ftransform() is deprecated
- Deprecated built-in vertex inputs (attributes) and some outputs (varyings).
GLSL 1.4 (Non-ES)
- track as removed in this release, but present in others:
- Use of gl_ClipVertex. Use gl_ClipDistance instead.
- Built-in vertex shader inputs.
- 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.
- 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,
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).
- 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.
- gl_FragCoord qualifiers use the layout(): origin_upper_left and pixel_center_integer.
- Broaden structure usage to include geometry inputs and geometry outputs.
GLSL 4.0
GLSL 4.1
GLSL 4.2
GLSL 4.3
GLSL 4.4