[PATCH xserver] glx: Always enable EXT_texture_from_pixmap for DRI glx
Hans de Goede
hdegoede at redhat.com
Fri Jul 1 17:06:19 UTC 2016
Prior to commit f95645c6f700 ("glx: Don't enable EXT_texture_from_pixmap
unconditionally") DRI glx would always advertise EXT_texture_from_pixmap.
That commit moved the setting of the extension in the extension bits from
__glXInitExtensionEnableBits to its callers so that
__glXInitExtensionEnableBits can be used more generally, but at the same
time made the setting of EXT_texture_from_pixmap conditionally on
__DRI_TEX_BUFFER being present.
This has result in an unintended behavior change which breaks e.g.
compositors running on llvmpipe. This commit makes the DRI glx code
advertise EXT_texture_from_pixmap unconditionally again fixing this.
Fixes: f95645c6f700 ("glx: Don't enable EXT_texture_from_pixmap unconditionally")
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
glx/glxdri2.c | 6 ++++--
glx/glxdriswrast.c | 3 +--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index afaf44e..289b3db 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -837,6 +837,10 @@ initializeExtensions(__GLXscreen * screen)
__glXEnableExtension(screen->glx_enable_bits, "GLX_MESA_copy_sub_buffer");
LogMessage(X_INFO, "AIGLX: enabled GLX_MESA_copy_sub_buffer\n");
+ __glXEnableExtension(screen->glx_enable_bits,
+ "GLX_EXT_texture_from_pixmap");
+ LogMessage(X_INFO, "AIGLX: enabled GLX_EXT_texture_from_pixmap\n");
+
if (dri->dri2->base.version >= 3) {
__glXEnableExtension(screen->glx_enable_bits,
"GLX_ARB_create_context");
@@ -881,8 +885,6 @@ initializeExtensions(__GLXscreen * screen)
for (i = 0; extensions[i]; i++) {
if (strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0) {
dri->texBuffer = (const __DRItexBufferExtension *) extensions[i];
- __glXEnableExtension(screen->glx_enable_bits,
- "GLX_EXT_texture_from_pixmap");
LogMessage(X_INFO,
"AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects\n");
}
diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
index be32527..8884bff 100644
--- a/glx/glxdriswrast.c
+++ b/glx/glxdriswrast.c
@@ -396,6 +396,7 @@ initializeExtensions(__GLXscreen * screen)
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_framebuffer_sRGB");
__glXEnableExtension(screen->glx_enable_bits, "GLX_ARB_fbconfig_float");
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_fbconfig_packed_float");
+ __glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_texture_from_pixmap");
extensions = dri->core->getExtensions(dri->driScreen);
@@ -407,8 +408,6 @@ initializeExtensions(__GLXscreen * screen)
if (strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0) {
dri->texBuffer = (const __DRItexBufferExtension *) extensions[i];
- __glXEnableExtension(screen->glx_enable_bits,
- "GLX_EXT_texture_from_pixmap\n");
}
#ifdef __DRI2_FLUSH_CONTROL
--
2.7.4
More information about the xorg-devel
mailing list