[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-intel: Changes to 'ubuntu'



 debian/changelog                                                        |    8 +
 debian/patches/107-submit-batch-buffers-from-flush-callback-chain.patch |   66 ++++++++++
 debian/patches/series                                                   |    1 
 3 files changed, 75 insertions(+)

New commits:
commit 96ba0f7c582afe17cc217ee14062c2690f226099
Author: Robert Hooker <sarvatt@ubuntu.com>
Date:   Mon Oct 4 11:07:49 2010 -0400

    Backport a commit from 2.13 to fix text rendering issues with compiz.

diff --git a/debian/changelog b/debian/changelog
index 56d4a66..6a626fa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+xserver-xorg-video-intel (2:2.12.0-1ubuntu5.1) maverick; urgency=low
+
+  * Add 107-submit-batch-buffers-from-flush-callback-chain.patch:
+    Fixes a text rendering issue in many applications when compiz is
+    enabled. Backport of upstream commit 69d65f918. (LP: #644943, #635258)
+
+ -- Robert Hooker <robert.hooker@canonical.com>  Mon, 04 Oct 2010 10:53:59 -0400
+
 xserver-xorg-video-intel (2:2.12.0-1ubuntu5) maverick; urgency=low
 
   [ Robert Hooker ]
diff --git a/debian/patches/107-submit-batch-buffers-from-flush-callback-chain.patch b/debian/patches/107-submit-batch-buffers-from-flush-callback-chain.patch
new file mode 100644
index 0000000..c8f86b7
--- /dev/null
+++ b/debian/patches/107-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/debian/patches/series b/debian/patches/series
index 478c050..2fa3dd7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,4 @@
 104_sandybridge_id_update.patch
 105_sandybridge_dri_disable.patch
 106_backport_vblank_on_server_regenerate_fix.patch
+107-submit-batch-buffers-from-flush-callback-chain.patch


Reply to: