John Kessenich | fb4a0b6 | 2013-07-09 23:57:13 +0000 | [diff] [blame] | 1 | Current functionality level: ESSL 3.0 |
John Kessenich | 9fd55bd | 2012-12-13 00:05:26 +0000 | [diff] [blame] | 2 | |
John Kessenich | fb4a0b6 | 2013-07-09 23:57:13 +0000 | [diff] [blame] | 3 | Error checking |
| 4 | - compile-time check for static recursion |
| 5 | - location layout range/overlap semantics |
John Kessenich | 9fd55bd | 2012-12-13 00:05:26 +0000 | [diff] [blame] | 6 | |
John Kessenich | fb4a0b6 | 2013-07-09 23:57:13 +0000 | [diff] [blame] | 7 | Performance |
John Kessenich | ece0d0c | 2012-12-13 00:09:49 +0000 | [diff] [blame] | 8 | |
John Kessenich | fb4a0b6 | 2013-07-09 23:57:13 +0000 | [diff] [blame] | 9 | Testing |
| 10 | - thread safety |
John Kessenich | ece0d0c | 2012-12-13 00:09:49 +0000 | [diff] [blame] | 11 | |
John Kessenich | fb4a0b6 | 2013-07-09 23:57:13 +0000 | [diff] [blame] | 12 | Interfacing |
John Kessenich | 54f6e56 | 2013-08-03 00:04:10 +0000 | [diff] [blame^] | 13 | - finish putting into a glslang namespace |
John Kessenich | ece0d0c | 2012-12-13 00:09:49 +0000 | [diff] [blame] | 14 | |
John Kessenich | 54f6e56 | 2013-08-03 00:04:10 +0000 | [diff] [blame^] | 15 | Functionality to Implement/Finish |
| 16 | ESSL 3.0 |
| 17 | - "const" compile-time constant propagation in the front-end has to be complete, for all built-in functions |
John Kessenich | fb4a0b6 | 2013-07-09 23:57:13 +0000 | [diff] [blame] | 18 | GLSL 1.2 |
| 19 | - Handle multiple compilation units per stage |
| 20 | - Allow initializers on uniform declarations. The value is set at link time. |
| 21 | - signature matching takes type conversions into account, ambiguity is an error |
| 22 | GLSL 1.3 |
| 23 | . flat is for both user and predeclared built-in in/out variables |
| 24 | GLSL 1.3 (Non-ES) |
| 25 | - Preprocessor token pasting (##), ## does macro expansion after pasting not before |
| 26 | - non-perspective (linear) interpolation (noperspective) |
| 27 | - add gl_ClipDistance[] to both vertex and fragment shaders |
| 28 | - only statically used built-ins have to be redeclared as flat |
| 29 | - Link: Deprecated mixing fixed vertex/fragment stage with programmable fragment/vertex stage. |
| 30 | - Deprecated gl_ClipVertex |
| 31 | - deprecate almost all built-in state |
| 32 | - ftransform() is deprecated |
| 33 | - Deprecated built-in vertex inputs (attributes) and some outputs (varyings). |
| 34 | GLSL 1.4 (Non-ES) |
| 35 | - track as removed in this release, but present in others: |
| 36 | - Use of gl_ClipVertex. Use gl_ClipDistance instead. |
| 37 | - Built-in vertex shader inputs. |
| 38 | - Built-in uniforms except for depth range parameters |
| 39 | - Built-in interface between vertex and fragment: gl_TexCoord, gl_FogFragCoord, and all the color values. |
| 40 | - Built-in two-sided coloring. |
| 41 | - Fixed functionality for a programmable stage. Supply shaders for all stages currently being used. |
| 42 | - ftransform(). Use invariant outputs instead. |
| 43 | GLSL 1.5 (Non-ES) |
| 44 | - Deprecated gl_MaxVaryingComponents |
| 45 | - Add new minimum maximums for gl_MaxVertexOutputComponents, gl_MaxGeometryInputComponents, gl_MaxGeometryOutputComponents, and gl_MaxFragmentInputComponents, |
| 46 | rather than relying on gl_MaxVaryingComponents. Also, corrected gl_MaxVaryingComponents to be 60 instead of 64. |
| 47 | - Added gl_PrimitiveID as an input to fragment shaders. |
| 48 | - 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). |
| 49 | - Added support for multi-sample textures through sampler2DMS and sampler2DMSArray support in texelFetch() and textureSize(). |
| 50 | - Broadened interface blocks from just uniforms to in and out interfaces as well. |
| 51 | - Broaden array usage to include vertex shader inputs (vertex in). |
| 52 | - Added geometry shaders. This includes targeting layers in FBO rendering. |
| 53 | - geometry shader layouts: they must be declared, telling the system the primitive input and output types and maximum number of vertices. |
| 54 | - Added geometry shader constants. |
| 55 | - gl_FragCoord qualifiers use the layout(): origin_upper_left and pixel_center_integer. |
| 56 | - Broaden structure usage to include geometry inputs and geometry outputs. |
| 57 | GLSL 4.0 |
| 58 | GLSL 4.1 |
| 59 | GLSL 4.2 |
| 60 | GLSL 4.3 |
| 61 | GLSL 4.4 |