diff --git a/Todo.txt b/Todo.txt index 77efe155..20912761 100644 --- a/Todo.txt +++ b/Todo.txt @@ -1,38 +1,60 @@ -Minor "to do" items are identified in the source code with "TODO..." comments. +Current functionality level: ESSL 3.0 -Major items to do: +Error checking + - compile-time check for static recursion + - location layout range/overlap semantics -* Use the new versioning infrastructure to identify all errors specific to - - profile - - extension - - version - - stage - -* Add semantics and productions for all new grammar (1.2 through 4.3) - 1.2 - - uniform initializers - - non-square matrices - - centroids/multisample - - gl_PointCoord +Performance - 1.3 - - integer ops - - integer built-in functions - - switch - - bunch of new built-ins - - noperspective +Testing + - thread safety - 1.4 - - uniform blocks - - layout qualifiers - - texture buffers +Interfacing + - Put glslang in a namespace - 1.5 - - geometry shaders - - 3.3 - - ... - -* Replace the preprocessor with a better one. - -* Verify/fix thread safety of the parse context. +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 diff --git a/glslang.vcxproj b/glslang.vcxproj index 85a49002..620b3634 100644 --- a/glslang.vcxproj +++ b/glslang.vcxproj @@ -152,6 +152,7 @@ xcopy /y $(IntDir)$(TargetName)$(TargetExt) Test 4065 + 4065