egl: Fix OpenGL ES version checks in _eglParseContextAttribList()
authorAnuj Phogat <anuj.phogat@gmail.com>
Thu, 19 Jun 2014 00:35:18 +0000 (17:35 -0700)
committerAnuj Phogat <anuj.phogat@gmail.com>
Tue, 5 Aug 2014 01:31:26 +0000 (18:31 -0700)
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.

Fixes gles3 Khronos CTS test:
egl_create_context.egl_create_context

V2: Fix commit message as suggested by Ian.

Cc: <mesa-stable@lists.freedesktop.org>
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/egl/main/eglcontext.c

index 70277ab9db60e4c5f9b9afbcbfd8a9ec291883e3..514b91aeef24e7d10d916262086a63db258b8457 100644 (file)
@@ -322,11 +322,14 @@ _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.
           */
          break;
+
+      default:
+         err = EGL_BAD_MATCH;
+         break;
       }
    }