[Mesa-dev] [PATCH v2] mesa: fix up GLSL version when computing GL version
Ilia Mirkin
imirkin at alum.mit.edu
Mon Apr 27 13:05:14 PDT 2015
On Mon, Apr 27, 2015 at 3:53 PM, Brian Paul <brianp at vmware.com> wrote:
> On 04/27/2015 12:11 PM, Ilia Mirkin wrote:
>>
>> In some situations it is convenient for a driver to expose a higher GLSL
>> version while some extensions are still incomplete. However in that
>> situation, it would report a GLSL version that was higher than the GL
>> version. Avoid that situation by limiting the GLSL version to the GL
>> version.
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>>
>> v1 -> v2:
>> do work in _mesa_compute_version, not in compute_version
>> only fix up core profile (easier and this situation doesn't come up for
>> compat)
>>
>> src/mesa/main/version.c | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
>> index da255b2..6024dc8 100644
>> --- a/src/mesa/main/version.c
>> +++ b/src/mesa/main/version.c
>> @@ -483,6 +483,17 @@ _mesa_compute_version(struct gl_context *ctx)
>>
>> ctx->Version = _mesa_get_version(&ctx->Extensions, &ctx->Const,
>> ctx->API);
>>
>> + /* Make sure that the GLSL version lines up with the GL version. In
>> some
>> + * cases it can be too high, e.g. if an extension is missing.
>> + */
>> + if (ctx->API == API_OPENGL_CORE) {
>> + switch (ctx->Version) {
>> + case 31: ctx->Const.GLSLVersion = 140; break;
>> + case 32: ctx->Const.GLSLVersion = 150; break;
>> + default: ctx->Const.GLSLVersion = ctx->Version * 10; break;
>> + }
>
>
> Would you mind formatting this like other switch/cases:
Sure, done. I thought it was acceptable to do it this way for short statements.
>
> case 31:
> ctx->Const.GLSLVersion = 140;
> break;
>
>> + }
>> +
>> switch (ctx->API) {
>> case API_OPENGL_COMPAT:
>> case API_OPENGL_CORE:
>>
>
> Looks OK otherwise.
> Reviewed-by: Brian Paul <brianp at vmware.com>
Thanks. Pushed with the above reformatting.
-ilia
More information about the mesa-dev
mailing list