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 +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 +Reviewed-by: Alex Deucher +--- + 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 ++#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 - 7.2.0-2 +- Fix gnome-shell rendering issue with radeonsi + * Fri Oct 25 2013 Adam Jackson - 7.2.0-1 - ABI rebuild