summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Lis <[email protected]>2013-07-17 13:49:15 +0200
committerIan Romanick <[email protected]>2013-07-18 16:03:42 -0700
commita92cd5b2454c984d56f2f7d03fe64baf6d39be4c (patch)
treee2d1439b6c594cd92227b139ba847f0d384219fc
parent36259a16fe9b1ab60c7cb4fbf41077fb480a2bec (diff)
glx: Retrieve the value of RENDER_TYPE from GLX attribs array
Make sure that context creation routines are provided with the value of RENDER_TYPE retrieved from GLX attribs. v2 (idr): Minor formatting changes. Change type of dri2_convert_glx_attribs render_type parameter to uint32_t to silence some GCC warnings. Signed-off-by: Tomasz Lis <[email protected]> Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
-rw-r--r--src/glx/dri2_glx.c4
-rw-r--r--src/glx/dri_common.c12
-rw-r--r--src/glx/dri_common.h6
-rw-r--r--src/glx/drisw_glx.c4
4 files changed, 13 insertions, 13 deletions
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index cc75b91d12a..9581bff02dc 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -273,8 +273,8 @@ dri2_create_context_attribs(struct glx_screen *base,
/* Remap the GLX tokens to DRI2 tokens.
*/
if (!dri2_convert_glx_attribs(num_attribs, attribs,
- &major_ver, &minor_ver, &flags, &api, &reset,
- error))
+ &major_ver, &minor_ver, &renderType, &flags,
+ &api, &reset, error))
goto error_exit;
if (shareList) {
diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c
index 1bf20ec949d..32625e83d25 100644
--- a/src/glx/dri_common.c
+++ b/src/glx/dri_common.c
@@ -456,14 +456,13 @@ driReleaseDrawables(struct glx_context *gc)
_X_HIDDEN bool
dri2_convert_glx_attribs(unsigned num_attribs, const uint32_t *attribs,
- unsigned *major_ver, unsigned *minor_ver,
- uint32_t *flags, unsigned *api, int *reset,
- unsigned *error)
+ unsigned *major_ver, unsigned *minor_ver,
+ uint32_t *render_type, uint32_t *flags, unsigned *api,
+ int *reset, unsigned *error)
{
unsigned i;
bool got_profile = false;
uint32_t profile;
- int render_type = GLX_RGBA_TYPE;
if (num_attribs == 0) {
*api = __DRI_API_OPENGL;
@@ -479,6 +478,7 @@ dri2_convert_glx_attribs(unsigned num_attribs, const uint32_t *attribs,
*major_ver = 1;
*minor_ver = 0;
+ *render_type = GLX_RGBA_TYPE;
*reset = __DRI_CTX_RESET_NO_NOTIFICATION;
for (i = 0; i < num_attribs; i++) {
@@ -497,7 +497,7 @@ dri2_convert_glx_attribs(unsigned num_attribs, const uint32_t *attribs,
got_profile = true;
break;
case GLX_RENDER_TYPE:
- render_type = attribs[i * 2 + 1];
+ *render_type = attribs[i * 2 + 1];
break;
case GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB:
switch (attribs[i * 2 + 1]) {
@@ -568,7 +568,7 @@ dri2_convert_glx_attribs(unsigned num_attribs, const uint32_t *attribs,
return false;
}
- if (*major_ver >= 3 && render_type == GLX_COLOR_INDEX_TYPE) {
+ if (*major_ver >= 3 && *render_type == GLX_COLOR_INDEX_TYPE) {
*error = __DRI_CTX_ERROR_BAD_FLAG;
return false;
}
diff --git a/src/glx/dri_common.h b/src/glx/dri_common.h
index 93cd744b1f2..2bbffa9ffbe 100644
--- a/src/glx/dri_common.h
+++ b/src/glx/dri_common.h
@@ -71,8 +71,8 @@ extern void *driOpenDriver(const char *driverName);
extern bool
dri2_convert_glx_attribs(unsigned num_attribs, const uint32_t *attribs,
- unsigned *major_ver, unsigned *minor_ver,
- uint32_t *flags, unsigned *api, int *reset,
- unsigned *error);
+ unsigned *major_ver, unsigned *minor_ver,
+ uint32_t *render_type, uint32_t *flags, unsigned *api,
+ int *reset, unsigned *error);
#endif /* _DRI_COMMON_H */
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 80ddf9cf753..2c3e8b5f3ba 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -447,8 +447,8 @@ drisw_create_context_attribs(struct glx_screen *base,
/* Remap the GLX tokens to DRI2 tokens.
*/
if (!dri2_convert_glx_attribs(num_attribs, attribs,
- &major_ver, &minor_ver, &flags, &api, &reset,
- error))
+ &major_ver, &minor_ver, &renderType, &flags,
+ &api, &reset, error))
return NULL;
if (reset != __DRI_CTX_RESET_NO_NOTIFICATION)