[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