From 3f66d54a2a59b6f295671ea03aa9f83ce1aee34a Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 7 Nov 2017 11:36:52 -0500 Subject: [PATCH] glx: Prepare the DRI backends for GLX_EXT_no_config_context This should be safe as these backends already support the EGL version of this extension. DRI1 is not affected because it does not support GLX_ARB_create_context anyway. DRI-Windows is not prepared to implement this as there's no equivalent WGL extension, and wglCreateContextAttribs seems to really want the HDC's pixel format to be set. Signed-off-by: Adam Jackson Reviewed-by: Eric Anholt --- src/glx/dri2_glx.c | 4 ++-- src/glx/dri3_glx.c | 5 +++-- src/glx/drisw_glx.c | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index e67a15f9dab..0f44635725d 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -278,7 +278,7 @@ dri2_create_context_attribs(struct glx_screen *base, goto error_exit; } - if (!glx_context_init(&pcp->base, &psc->base, &config->base)) + if (!glx_context_init(&pcp->base, &psc->base, config_base)) goto error_exit; ctx_attribs[num_ctx_attribs++] = __DRI_CTX_ATTRIB_MAJOR_VERSION; @@ -317,7 +317,7 @@ dri2_create_context_attribs(struct glx_screen *base, pcp->driContext = (*psc->dri2->createContextAttribs) (psc->driScreen, api, - config->driConfig, + config ? config->driConfig : NULL, shared, num_ctx_attribs / 2, ctx_attribs, diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index d613073994c..fa048f990a9 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -263,7 +263,7 @@ dri3_create_context_attribs(struct glx_screen *base, goto error_exit; } - if (!glx_context_init(&pcp->base, &psc->base, &config->base)) + if (!glx_context_init(&pcp->base, &psc->base, config_base)) goto error_exit; ctx_attribs[num_ctx_attribs++] = __DRI_CTX_ATTRIB_MAJOR_VERSION; @@ -297,7 +297,8 @@ dri3_create_context_attribs(struct glx_screen *base, pcp->driContext = (*psc->image_driver->createContextAttribs) (psc->driScreen, api, - config->driConfig, + config ? config->driConfig + : NULL, shared, num_ctx_attribs / 2, ctx_attribs, diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index a471856634d..2f0675addb4 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -455,7 +455,7 @@ drisw_create_context_attribs(struct glx_screen *base, if (pcp == NULL) return NULL; - if (!glx_context_init(&pcp->base, &psc->base, &config->base)) { + if (!glx_context_init(&pcp->base, &psc->base, config_base)) { free(pcp); return NULL; } @@ -483,7 +483,7 @@ drisw_create_context_attribs(struct glx_screen *base, pcp->driContext = (*psc->swrast->createContextAttribs) (psc->driScreen, api, - config->driConfig, + config ? config->driConfig : 0, shared, num_ctx_attribs / 2, ctx_attribs, -- 2.30.2