[Mesa-stable] [Mesa-dev] [PATCH] egl: Fix OpenGL ES version checks in _eglParseContextAttribList()

Anuj Phogat anuj.phogat at gmail.com
Mon Aug 4 13:28:27 PDT 2014


On Fri, Aug 1, 2014 at 4:12 PM, Ian Romanick <idr at freedesktop.org> wrote:
> On 06/18/2014 05:49 PM, Anuj Phogat wrote:
>> Fixes gles3 Khronos CTS test:
>> egl_create_context.egl_create_context
>>
>> Cc: <mesa-stable at lists.freedesktop.org>
>> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
>> ---
>>  src/egl/main/eglcontext.c | 11 ++++++++---
>>  1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c
>> index 70277ab..b8b30cb 100644
>> --- a/src/egl/main/eglcontext.c
>> +++ b/src/egl/main/eglcontext.c
>> @@ -322,10 +322,15 @@ _eglParseContextAttribList(_EGLContext *ctx, _EGLDisplay *dpy,
>>           break;
>>
>>        case 3:
>> -      default:
>> -         /* Don't put additional version checks here.  We don't know that
>> -          * there won't be versions > 3.0.
>> +         /* Update this condition if new OpenGL ES 3.x (x > 1) version is
>> +          * announced.
>>            */
>> +         if (ctx->ClientMinorVersion > 1)
>> +            err = EGL_BAD_MATCH;
>
> I dug around in our EGL code and in the test case a bit more.  I think
> if you delete the preceeding if-statement and add the following to the
> commit message:
>
>     We would generate EGL_BAD_CONFIG because _eglGetContextAPIBit
>     returns zero for the combination of EGL_OPENGL_ES_API and a major
>     version > 3.  By just returning zero, the caller can't tell the
>     difference between a bad version (which should generate
>     EGL_BAD_MATCH) and a bad API (which should generate
>     EGL_BAD_CONFIG).  This patch causes us to filter out major
>     versions > 3 at a point where we can generate the correct error.
>
> The patch will be
>
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
>
> We could also fix this a couple other ways, but I think they're all more
> intrusive and not worth the effort.
>
Fixed as you recommended. Thanks.

>> +         break;
>> +
>> +      default:
>> +         err = EGL_BAD_MATCH;
>>           break;
>>        }
>>     }
>


More information about the mesa-stable mailing list