glx: Reject creations of indirect contexts with unsupportable versions.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Ian Romanick 2012-07-04 15:21:05 -07:00 committed by Keith Packard
parent 41d5120eaf
commit 4ffbc984ea

View File

@ -259,6 +259,23 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc)
return __glXError(GLXBadProfileARB);
}
/* There is no GLX protocol for desktop OpenGL versions after 1.4. There
* is no GLX protocol for any version of OpenGL ES. If the application is
* requested an indirect rendering context for a version that cannot be
* satisfied, reject it.
*
* The GLX_ARB_create_context spec says:
*
* "* If <config> does not support compatible OpenGL contexts
* providing the requested API major and minor version,
* forward-compatible flag, and debug context flag, GLXBadFBConfig
* is generated."
*/
if (!req->isDirect && (major_version > 1 || minor_version > 4
|| profile == GLX_CONTEXT_ES2_PROFILE_BIT_EXT)) {
return __glXError(GLXBadFBConfig);
}
/* Allocate memory for the new context
*/
if (req->isDirect) {