summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-02-24 15:15:00 +1000
committerBen Skeggs <bskeggs@redhat.com>2011-02-24 15:27:51 +1000
commitbc5dec2ca7ca7edc340a99bd73946e228117dfd8 (patch)
treeaf9b83cbc2b75dd12bd1f3e9d200e4f29e4c6b0e
parentc123618470b5ff32c6377a4cae0f148d4a518a5d (diff)
dri2: disable page flipping if any crtc is rotated
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/nouveau_dri2.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c
index 45add0f..d5afa8a 100644
--- a/src/nouveau_dri2.c
+++ b/src/nouveau_dri2.c
@@ -134,7 +134,16 @@ static Bool
can_exchange(DrawablePtr draw, PixmapPtr dst_pix, PixmapPtr src_pix)
{
ScrnInfoPtr scrn = xf86Screens[draw->pScreen->myNum];
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
NVPtr pNv = NVPTR(scrn);
+ int i;
+
+ for (i = 0; i < xf86_config->num_crtc; i++) {
+ xf86CrtcPtr crtc = xf86_config->crtc[i];
+ if (crtc->enabled && crtc->rotatedData)
+ return FALSE;
+
+ }
return (!nouveau_exa_pixmap_is_onscreen(dst_pix) ||
(DRI2CanFlip(draw) && pNv->has_pageflip)) &&