[xorg-x11-drv-intel/f14/master] Backport upstream fix to fix compiz corruption issue (RH #613118)
drago01
drago01 at fedoraproject.org
Mon Sep 13 20:34:36 UTC 2010
commit a6c6c63fec2ab1b6394326c3277ff11ebe2ef1eb
Author: Adel Gadllah <adel.gadllah at gmail.com>
Date: Mon Sep 13 22:33:54 2010 +0200
Backport upstream fix to fix compiz corruption issue (RH #613118)
...t-batch-buffers-from-flush-callback-chain.patch | 66 ++++++++++++++++++++
xorg-x11-drv-intel.spec | 11 +++-
2 files changed, 76 insertions(+), 1 deletions(-)
---
diff --git a/intel-2.12-submit-batch-buffers-from-flush-callback-chain.patch b/intel-2.12-submit-batch-buffers-from-flush-callback-chain.patch
new file mode 100644
index 0000000..c8f86b7
--- /dev/null
+++ b/intel-2.12-submit-batch-buffers-from-flush-callback-chain.patch
@@ -0,0 +1,66 @@
+diff -upNr xf86-video-intel-2.12.0.orign/src/i830_driver.c xf86-video-intel-2.12.0/src/i830_driver.c
+--- xf86-video-intel-2.12.0.orign/src/i830_driver.c 2010-09-13 20:59:08.722629729 +0200
++++ xf86-video-intel-2.12.0/src/i830_driver.c 2010-09-13 20:59:46.783566903 +0200
+@@ -865,16 +865,8 @@ I830BlockHandler(int i, pointer blockDat
+ intel->BlockHandler = screen->BlockHandler;
+ screen->BlockHandler = I830BlockHandler;
+
+- if (scrn->vtSema) {
+- /* Emit a flush of the rendering cache, or on the 965 and beyond
+- * rendering results may not hit the framebuffer until significantly
+- * later.
+- */
+- intel_batch_submit(scrn,
+- intel->need_mi_flush ||
+- !list_is_empty(&intel->flush_pixmaps));
++ if (scrn->vtSema == TRUE)
+ drmCommandNone(intel->drmSubFD, DRM_I915_GEM_THROTTLE);
+- }
+
+ i830_uxa_block_handler(screen);
+
+@@ -1072,6 +1064,24 @@ I830UeventFini(ScrnInfoPtr scrn)
+ }
+ }
+
++static void
++intel_flush_callback(CallbackListPtr *list,
++ pointer user_data, pointer call_data)
++{
++ ScrnInfoPtr scrn = user_data;
++ intel_screen_private *intel = intel_get_screen_private(scrn);
++
++ if (scrn->vtSema) {
++ /* Emit a flush of the rendering cache, or on the 965
++ * and beyond rendering results may not hit the
++ * framebuffer until significantly later.
++ */
++ intel_batch_submit(scrn,
++ intel->need_mi_flush ||
++ !list_is_empty(&intel->flush_pixmaps));
++ }
++}
++
+ static Bool
+ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ {
+@@ -1248,6 +1258,9 @@ I830ScreenInit(int scrnIndex, ScreenPtr
+ intel->BlockHandler = screen->BlockHandler;
+ screen->BlockHandler = I830BlockHandler;
+
++ if (!AddCallback(&FlushCallback, intel_flush_callback, scrn))
++ return FALSE;
++
+ screen->SaveScreen = xf86SaveScreen;
+ intel->CloseScreen = screen->CloseScreen;
+ screen->CloseScreen = I830CloseScreen;
+@@ -1402,6 +1415,8 @@ static Bool I830CloseScreen(int scrnInde
+ intel->front_buffer = NULL;
+ }
+
++ DeleteCallback(&FlushCallback, intel_flush_callback, scrn);
++
+ intel_batch_teardown(scrn);
+
+ if (IS_I965G(intel))
+
diff --git a/xorg-x11-drv-intel.spec b/xorg-x11-drv-intel.spec
index 6055656..7bee853 100644
--- a/xorg-x11-drv-intel.spec
+++ b/xorg-x11-drv-intel.spec
@@ -8,7 +8,7 @@
Summary: Xorg X11 Intel video driver
Name: xorg-x11-drv-intel
Version: 2.12.0
-Release: 5%{?dist}
+Release: 6%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -40,6 +40,11 @@ Patch61: intel-2.10.0-add-mbp-backlight.patch
# https://bugzilla.redhat.com/588421
Patch62: intel-2.11-no-pageflipping.patch
+# https://bugzilla.redhat.com/show_bug.cgi?id=613118
+# https://bugs.freedesktop.org/show_bug.cgi?id=28438
+# Upstream: 69d65f9184006eac790efcff78a0e425160e95aa
+Patch63: intel-2.12-submit-batch-buffers-from-flush-callback-chain.patch
+
ExclusiveArch: %{ix86} x86_64 ia64
BuildRequires: autoconf automake libtool
@@ -99,6 +104,7 @@ Debugging tools for Intel graphics chips
%patch60 -p1 -b .uevent
%patch61 -p1 -b .mbp-backlight
%patch62 -p1 -b .no-flip
+%patch63 -p1 -b .batchbuffer-flush
%build
@@ -151,6 +157,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/intel_*.1*
%changelog
+* Mon Sep 13 2010 Adel Gadllah <adel.gadllah at gmail.com> 2.12.0-6
+- Backport upstream fix to fix compiz corruption issue (RH #613118)
+
* Thu Jul 08 2010 Adam Jackson <ajax at redhat.com> 2.12.0-5
- Install COPYING.
More information about the scm-commits
mailing list