[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