[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