aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/drivers/dri/common
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-08-16 14:52:47 +0200
committermarha <marha@users.sourceforge.net>2012-08-16 14:52:47 +0200
commite12a88a1a4897365d47e428bceda547a4e02fbd0 (patch)
tree116944397f595fd9b72d8de3b0a3783ccf3937ef /mesalib/src/mesa/drivers/dri/common
parentf5a4fa87e844b3ea2658a2355a4c4ac3393a65a1 (diff)
parent4aac32998c2b173b84aec0b020aa086fef4b1423 (diff)
downloadvcxsrv-e12a88a1a4897365d47e428bceda547a4e02fbd0.tar.gz
vcxsrv-e12a88a1a4897365d47e428bceda547a4e02fbd0.tar.bz2
vcxsrv-e12a88a1a4897365d47e428bceda547a4e02fbd0.zip
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'mesalib/src/mesa/drivers/dri/common')
-rw-r--r--mesalib/src/mesa/drivers/dri/common/dri_util.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/mesalib/src/mesa/drivers/dri/common/dri_util.c b/mesalib/src/mesa/drivers/dri/common/dri_util.c
index 91ae186fe..86409dd06 100644
--- a/mesalib/src/mesa/drivers/dri/common/dri_util.c
+++ b/mesalib/src/mesa/drivers/dri/common/dri_util.c
@@ -192,6 +192,8 @@ dri2CreateContextAttribs(__DRIscreen *screen, int api,
mesa_api = API_OPENGLES2;
break;
case __DRI_API_OPENGL_CORE:
+ mesa_api = API_OPENGL_CORE;
+ break;
default:
*error = __DRI_CTX_ERROR_BAD_API;
return NULL;
@@ -218,6 +220,20 @@ dri2CreateContextAttribs(__DRIscreen *screen, int api,
}
}
+ /* Mesa does not support the GL_ARB_compatibilty extension or the
+ * compatibility profile. This means that we treat a API_OPENGL 3.1 as
+ * API_OPENGL_CORE and reject API_OPENGL 3.2+.
+ */
+ if (mesa_api == API_OPENGL && major_version == 3 && minor_version == 1)
+ mesa_api = API_OPENGL_CORE;
+
+ if (mesa_api == API_OPENGL
+ && ((major_version > 3)
+ || (major_version == 3 && minor_version >= 2))) {
+ *error = __DRI_CTX_ERROR_BAD_API;
+ return NULL;
+ }
+
/* The EGL_KHR_create_context spec says:
*
* "Flags are only defined for OpenGL context creation, and specifying
@@ -228,8 +244,8 @@ dri2CreateContextAttribs(__DRIscreen *screen, int api,
* anything specific about this case. However, none of the known flags
* have any meaning in an ES context, so this seems safe.
*/
- if (mesa_api != __DRI_API_OPENGL
- && mesa_api != __DRI_API_OPENGL_CORE
+ if (mesa_api != API_OPENGL
+ && mesa_api != API_OPENGL_CORE
&& flags != 0) {
*error = __DRI_CTX_ERROR_BAD_FLAG;
return NULL;