diff options
author | Iago Toral Quiroga <[email protected]> | 2017-06-16 12:05:20 +0200 |
---|---|---|
committer | Iago Toral Quiroga <[email protected]> | 2017-06-19 14:43:54 +0200 |
commit | b70d6a2de1c90409c7a2e0d6484f350558f5c2ac (patch) | |
tree | 4bd922e09067388860038245e694b8656b130649 | |
parent | 4a7222518d723b6d1b3572cc1241b9997012b232 (diff) |
glsl: gl_Max{Vertex,Fragment}UniformComponents exist in all desktop GL versions
The current implementation assumed that these were replaced in GLSL >= 4.10
by gl_Max{Vertex,Fragment}UniformVectors, however this is not true: both
built-ins should be produced from GLSL 4.10 onwards.
This was raised by new CTS tests that are in development.
Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r-- | src/compiler/glsl/builtin_variables.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/compiler/glsl/builtin_variables.cpp b/src/compiler/glsl/builtin_variables.cpp index 405502eb8a4..19d427e4bc0 100644 --- a/src/compiler/glsl/builtin_variables.cpp +++ b/src/compiler/glsl/builtin_variables.cpp @@ -632,8 +632,16 @@ builtin_variable_generator::generate_constants() add_const("gl_MaxDrawBuffers", state->Const.MaxDrawBuffers); /* Max uniforms/varyings: GLSL ES counts these in units of vectors; desktop - * GL counts them in units of "components" or "floats". + * GL counts them in units of "components" or "floats" and also in units + * of vectors since GL 4.1 */ + if (!state->es_shader) { + add_const("gl_MaxFragmentUniformComponents", + state->Const.MaxFragmentUniformComponents); + add_const("gl_MaxVertexUniformComponents", + state->Const.MaxVertexUniformComponents); + } + if (state->is_version(410, 100)) { add_const("gl_MaxVertexUniformVectors", state->Const.MaxVertexUniformComponents / 4); @@ -661,16 +669,10 @@ builtin_variable_generator::generate_constants() state->Const.MaxDualSourceDrawBuffers); } } else { - add_const("gl_MaxVertexUniformComponents", - state->Const.MaxVertexUniformComponents); - /* Note: gl_MaxVaryingFloats was deprecated in GLSL 1.30+, but not * removed */ add_const("gl_MaxVaryingFloats", state->ctx->Const.MaxVarying * 4); - - add_const("gl_MaxFragmentUniformComponents", - state->Const.MaxFragmentUniformComponents); } /* Texel offsets were introduced in ARB_shading_language_420pack (which |