summaryrefslogtreecommitdiff
path: root/src/glx/drisw_glx.c
diff options
context:
space:
mode:
authorTomasz Lis <tomasz.lis@intel.com>2013-07-18 14:19:38 -0700
committerIan Romanick <ian.d.romanick@intel.com>2013-07-18 16:03:42 -0700
commit2eed9ff2fb5b218b7b274d2989b0dbbe5fcfedef (patch)
treec3b7db63922ed8d7d51783b27f240cad3045c46f /src/glx/drisw_glx.c
parent27c8aa5cfbcf6f2ad21564dfcdabbe747c277cab (diff)
glx: Validate the GLX_RENDER_TYPE value
Correctly handle the value of renderType in GLX context. In case of the value being incorrect, context creation fails. v2 (idr): indirect_create_context is just a memory allocator, so don't validate the GLX_RENDER_TYPE there. Fixes regressions in several GLX_ARB_create_context piglit tests. Signed-off-by: Tomasz Lis <tomasz.lis@intel.com> Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glx/drisw_glx.c')
-rw-r--r--src/glx/drisw_glx.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 2c3e8b5f3ba..0583cd15ab5 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -380,6 +380,10 @@ drisw_create_context(struct glx_screen *base,
if (!psc->base.driScreen)
return NULL;
+ /* Check the renderType value */
+ if (!validate_renderType_against_config(config_base, renderType))
+ return NULL;
+
if (shareList) {
/* If the shareList context is not a DRISW context, we cannot possibly
* create a DRISW context that shares it.
@@ -451,6 +455,11 @@ drisw_create_context_attribs(struct glx_screen *base,
&api, &reset, error))
return NULL;
+ /* Check the renderType value */
+ if (!validate_renderType_against_config(config_base, renderType)) {
+ return NULL;
+ }
+
if (reset != __DRI_CTX_RESET_NO_NOTIFICATION)
return NULL;