summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/glx/dri2_glx.c8
-rw-r--r--src/glx/dri_glx.c2
-rw-r--r--src/glx/drisw_glx.c5
-rw-r--r--src/glx/glxcmds.c4
4 files changed, 17 insertions, 2 deletions
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index 7ce57751f2..cc75b91d12 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -226,6 +226,8 @@ dri2_create_context(struct glx_screen *base,
return NULL;
}
+ pcp->base.renderType = renderType;
+
pcp->driContext =
(*psc->dri2->createNewContext) (psc->driScreen,
config->driConfig, shared, pcp);
@@ -256,6 +258,7 @@ dri2_create_context_attribs(struct glx_screen *base,
uint32_t minor_ver = 1;
uint32_t major_ver = 2;
+ uint32_t renderType = GLX_RGBA_TYPE;
uint32_t flags = 0;
unsigned api;
int reset = __DRI_CTX_RESET_NO_NOTIFICATION;
@@ -311,6 +314,11 @@ dri2_create_context_attribs(struct glx_screen *base,
ctx_attribs[num_ctx_attribs++] = flags;
}
+ /* The renderType is retrieved from attribs, or set to default
+ * of GLX_RGBA_TYPE.
+ */
+ pcp->base.renderType = renderType;
+
pcp->driContext =
(*psc->dri2->createContextAttribs) (psc->driScreen,
api,
diff --git a/src/glx/dri_glx.c b/src/glx/dri_glx.c
index ba8fda20ad..cc45734b66 100644
--- a/src/glx/dri_glx.c
+++ b/src/glx/dri_glx.c
@@ -602,6 +602,8 @@ dri_create_context(struct glx_screen *base,
return NULL;
}
+ pcp->base.renderType = renderType;
+
if (!XF86DRICreateContextWithConfig(psc->base.dpy, psc->base.scr,
config->base.visualID,
&pcp->hwContextID, &hwContext)) {
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index 832e9642ea..80ddf9cf75 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -401,6 +401,8 @@ drisw_create_context(struct glx_screen *base,
return NULL;
}
+ pcp->base.renderType = renderType;
+
pcp->driContext =
(*psc->core->createNewContext) (psc->driScreen,
config->driConfig, shared, pcp);
@@ -429,6 +431,7 @@ drisw_create_context_attribs(struct glx_screen *base,
uint32_t minor_ver = 1;
uint32_t major_ver = 0;
+ uint32_t renderType = GLX_RGBA_TYPE;
uint32_t flags = 0;
unsigned api;
int reset = __DRI_CTX_RESET_NO_NOTIFICATION;
@@ -479,6 +482,8 @@ drisw_create_context_attribs(struct glx_screen *base,
ctx_attribs[num_ctx_attribs++] = flags;
}
+ pcp->base.renderType = renderType;
+
pcp->driContext =
(*psc->swrast->createContextAttribs) (psc->driScreen,
api,
diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c
index 019165aefc..51b2237b69 100644
--- a/src/glx/glxcmds.c
+++ b/src/glx/glxcmds.c
@@ -354,7 +354,7 @@ glXCreateContext(Display * dpy, XVisualInfo * vis,
GLXContext shareList, Bool allowDirect)
{
struct glx_config *config = NULL;
- int renderType = 0;
+ int renderType = GLX_RGBA_TYPE;
#if defined(GLX_DIRECT_RENDERING) || defined(GLX_USE_APPLEGL)
struct glx_screen *const psc = GetGLXScreenConfigs(dpy, vis->screen);
@@ -1441,7 +1441,7 @@ glXImportContextEXT(Display *dpy, GLXContextID contextID)
numProps = nPropListBytes / (2 * sizeof(propList[0]));
share = None;
mode = NULL;
- renderType = 0;
+ renderType = GLX_RGBA_TYPE; /* By default, assume RGBA context */
pProp = propList;
for (i = 0, pProp = propList; i < numProps; i++, pProp += 2)