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

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



 debian/changelog                                                       |   10 +
 debian/patches/.gitignore                                              |    1 
 debian/patches/102_disable_pageflipping_for_transformed_displays.patch |   64 ++++++++++
 debian/patches/series                                                  |    1 
 4 files changed, 76 insertions(+)

New commits:
commit 4d9ef31faba62ab7b0691817f6209ebc61ec5580
Author: Bryce Harrington <bryce@canonical.com>
Date:   Tue Jun 21 12:56:37 2011 -0700

    Add cherrypick to disable pageflipping on rotated displays

diff --git a/debian/changelog b/debian/changelog
index faf8c50..23863d7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+xserver-xorg-video-ati (1:6.14.0-0ubuntu5) oneiric; urgency=low
+
+  * 102_disable_pageflipping_for_transformed_displays.patch:
+    Add cherrypick patch to not enable pageflipping if display has been
+    rotated.  Fixes issue where garbage appears on rotated screens
+    while rotated.
+    (LP: #772111)
+
+ -- Bryce Harrington <bryce@ubuntu.com>  Tue, 21 Jun 2011 12:41:28 -0700
+
 xserver-xorg-video-ati (1:6.14.0-0ubuntu4) natty; urgency=low
 
   * Bump the build-dep on xserver-xorg-dev.
diff --git a/debian/patches/102_disable_pageflipping_for_transformed_displays.patch b/debian/patches/102_disable_pageflipping_for_transformed_displays.patch
new file mode 100644
index 0000000..6a2cf0b
--- /dev/null
+++ b/debian/patches/102_disable_pageflipping_for_transformed_displays.patch
@@ -0,0 +1,64 @@
+commit 04293a3a84acd96ccdf8e5e865cf973325ca43a1
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date:   Thu Feb 24 02:33:41 2011 -0500
+
+    dri2: disable pageflipping for transformed displays
+    
+    Based on Ben's nouveau patch.
+    
+    Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
+
+diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
+index e8e16ff..66df03c 100644
+--- a/src/radeon_dri2.c
++++ b/src/radeon_dri2.c
+@@ -626,12 +626,21 @@ radeon_dri2_schedule_flip(ScrnInfoPtr scrn, ClientPtr client,
+ }
+ 
+ static Bool
+-can_exchange(DRI2BufferPtr front, DRI2BufferPtr back)
++can_exchange(ScrnInfoPtr pScrn,
++	     DRI2BufferPtr front, DRI2BufferPtr back)
+ {
+     struct dri2_buffer_priv *front_priv = front->driverPrivate;
+     struct dri2_buffer_priv *back_priv = back->driverPrivate;
+     PixmapPtr front_pixmap = front_priv->pixmap;
+     PixmapPtr back_pixmap = back_priv->pixmap;
++    xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
++    int i;
++
++    for (i = 0; i < xf86_config->num_crtc; i++) {
++	xf86CrtcPtr crtc = xf86_config->crtc[i];
++	if (crtc->enabled && crtc->rotatedData)
++	    return FALSE;
++    }
+ 
+     if (front_pixmap->drawable.width != back_pixmap->drawable.width)
+ 	return FALSE;
+@@ -712,7 +721,7 @@ void radeon_dri2_frame_event_handler(unsigned int frame, unsigned int tv_sec,
+     case DRI2_FLIP:
+ 	if (info->allowPageFlip &&
+ 	    DRI2CanFlip(drawable) &&
+-	    can_exchange(event->front, event->back) &&
++	    can_exchange(scrn, event->front, event->back) &&
+ 	    radeon_dri2_schedule_flip(scrn,
+ 				      event->client,
+ 				      drawable,
+@@ -727,7 +736,7 @@ void radeon_dri2_frame_event_handler(unsigned int frame, unsigned int tv_sec,
+ 	/* else fall through to exchange/blit */
+     case DRI2_SWAP:
+ 	if (DRI2CanExchange(drawable) &&
+-	    can_exchange(event->front, event->back)) {
++	    can_exchange(scrn, event->front, event->back)) {
+ 	    radeon_dri2_exchange_buffers(drawable, event->front, event->back);
+ 	    swap_type = DRI2_EXCHANGE_COMPLETE;
+ 	} else {
+@@ -1075,7 +1084,7 @@ static int radeon_dri2_schedule_swap(ClientPtr client, DrawablePtr draw,
+     /* Flips need to be submitted one frame before */
+     if (info->allowPageFlip &&
+ 	DRI2CanFlip(draw) &&
+-	can_exchange(front, back)) {
++	can_exchange(scrn, front, back)) {
+ 	swap_type = DRI2_FLIP;
+ 	flip = 1;
+     }
diff --git a/debian/patches/series b/debian/patches/series
index 139a73c..b321e86 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 100_radeon-6.9.0-bgnr-enable.patch
 101_fix_build_aginst_1.10rc3.diff
+102_disable_pageflipping_for_transformed_displays.patch

commit f6bfa7ecf3fea90129b52d50ff943d15a9111bd3
Author: Bryce Harrington <bryce@canonical.com>
Date:   Tue Jun 21 12:54:48 2011 -0700

    Don't ignore .patch files in debian/patches

diff --git a/debian/patches/.gitignore b/debian/patches/.gitignore
new file mode 100644
index 0000000..69f1bf4
--- /dev/null
+++ b/debian/patches/.gitignore
@@ -0,0 +1 @@
+!*.patch


Reply to: