[xorg-x11-drv-ati] Fix gnome-shell rendering issue with radeonsi

Jerome Glisse glisse at fedoraproject.org
Fri Nov 1 18:37:21 UTC 2013


commit 868e5ca4ce3f361ff2fbbc7aa39c77735738678b
Author: Jerome Glisse <jglisse at redhat.com>
Date:   Fri Nov 1 14:36:49 2013 -0400

    Fix gnome-shell rendering issue with radeonsi

 glamor-fix-rendering.patch |   81 ++++++++++++++++++++++++++++++++++++++++++++
 xorg-x11-drv-ati.spec      |    7 +++-
 2 files changed, 87 insertions(+), 1 deletions(-)
---
diff --git a/glamor-fix-rendering.patch b/glamor-fix-rendering.patch
new file mode 100644
index 0000000..03ea265
--- /dev/null
+++ b/glamor-fix-rendering.patch
@@ -0,0 +1,81 @@
+From 0c921edf0162fed616cea9d02e168b719243bcd2 Mon Sep 17 00:00:00 2001
+From: Jerome Glisse <jglisse at redhat.com>
+Date: Wed, 30 Oct 2013 13:01:02 -0400
+Subject: [PATCH] radeon/glamor: with new pixmap for dri2 drawable no need to
+ create new texture
+
+When creating a new pixmap/bo for dri2 drawable there is no need to create a
+new texture, instead the texture associated with the new pixmap should be use
+otherwise there is a missmatch between the bo backing the texture for the
+drawable and the bo used by dri2 client.
+
+Signed-off-by: Jerome Glisse <jglisse at redhat.com>
+Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
+---
+ configure.ac      |  2 +-
+ src/radeon_dri2.c | 17 ++++++-----------
+ 2 files changed, 7 insertions(+), 12 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0fe0991..835b7b9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -107,7 +107,7 @@ AC_ARG_ENABLE(glamor,
+ AC_MSG_RESULT([$GLAMOR])
+ AM_CONDITIONAL(GLAMOR, test x$GLAMOR != xno)
+ if test "x$GLAMOR" != "xno"; then
+-	PKG_CHECK_MODULES(LIBGLAMOR, [glamor >= 0.5.1])
++	PKG_CHECK_MODULES(LIBGLAMOR, [glamor >= 0.5.0])
+ 	PKG_CHECK_MODULES(LIBGLAMOR_EGL, [glamor-egl])
+ 	AC_DEFINE(USE_GLAMOR, 1, [Enable glamor acceleration])
+ fi
+diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
+index a211960..79d8f39 100644
+--- a/src/radeon_dri2.c
++++ b/src/radeon_dri2.c
+@@ -66,6 +66,10 @@
+ 
+ #define FALLBACK_SWAP_DELAY 16
+ 
++#ifdef USE_GLAMOR
++#include <glamor.h>
++#endif
++
+ typedef DRI2BufferPtr BufferPtr;
+ 
+ struct dri2_buffer_priv {
+@@ -89,7 +93,6 @@ static PixmapPtr fixup_glamor(DrawablePtr drawable, PixmapPtr pixmap)
+ 	PixmapPtr old = get_drawable_pixmap(drawable);
+ #ifdef USE_GLAMOR
+ 	ScreenPtr screen = drawable->pScreen;
+-	ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+ 	struct radeon_pixmap *priv = radeon_get_pixmap_private(pixmap);
+ 	GCPtr gc;
+ 
+@@ -118,21 +121,13 @@ static PixmapPtr fixup_glamor(DrawablePtr drawable, PixmapPtr pixmap)
+ 	}
+ 
+ 	radeon_set_pixmap_private(pixmap, NULL);
+-	screen->DestroyPixmap(pixmap);
+ 
+ 	/* And redirect the pixmap to the new bo (for 3D). */
++	glamor_egl_exchange_buffers(old, pixmap);
+ 	radeon_set_pixmap_private(old, priv);
++	screen->DestroyPixmap(pixmap);
+ 	old->refcnt++;
+ 
+-	/* This creating should not fail, as we already created its
+-	 * successfully. But if it happens, we put a warning indicator
+-	 * here, and the old pixmap will still be a glamor pixmap, and
+-	 * latter the pixmap_flink will get a 0 name, then the X server
+-	 * will pass a BadAlloc to the client.*/
+-	if (!radeon_glamor_create_textured_pixmap(old))
+-		xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+-			   "Failed to get DRI drawable for glamor pixmap.\n");
+-
+ 	screen->ModifyPixmapHeader(old,
+ 				   old->drawable.width,
+ 				   old->drawable.height,
+-- 
+1.8.3.1
+
diff --git a/xorg-x11-drv-ati.spec b/xorg-x11-drv-ati.spec
index 56dd4e0..c4fe326 100644
--- a/xorg-x11-drv-ati.spec
+++ b/xorg-x11-drv-ati.spec
@@ -11,7 +11,7 @@
 Summary:   Xorg X11 ati video driver
 Name:      xorg-x11-drv-ati
 Version:   7.2.0
-Release:   1%{?gver}%{?dist}
+Release:   2%{?gver}%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X Hardware Support
@@ -21,6 +21,7 @@ Source0:    http://www.x.org/pub/individual/driver/%{tarball}-%{version}.tar.bz2
 
 Patch10:    radeon-6.12.2-lvds-default-modes.patch
 Patch13:    fix-default-modes.patch
+Patch14:    glamor-fix-rendering.patch
 
 ExcludeArch: s390 s390x
 
@@ -45,6 +46,7 @@ X.Org X11 ati video driver.
 %setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{?!gitdate:%{version}}
 %patch10 -p1 -b .lvds
 %patch13 -p1 -b .def
+%patch14 -p1 -b .glamor
 
 %build
 autoreconf -iv
@@ -72,6 +74,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man4/radeon.4*
 
 %changelog
+* Fri Oct 25 2013 Jerome Glisse <jglisse at redhat.com> - 7.2.0-2
+- Fix gnome-shell rendering issue with radeonsi
+
 * Fri Oct 25 2013 Adam Jackson <ajax at redhat.com> - 7.2.0-1
 - ABI rebuild
 


More information about the scm-commits mailing list