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 <[email protected]> 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 <[email protected]> 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 <[email protected]> +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 <[email protected]> + +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 <[email protected]> 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 -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

