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: