[PATCH] xv: fix non-kms/non-dri Xv column ordering on big endian systems

Heikki Lindholm holin at iki.fi
Sun Aug 22 23:52:20 PDT 2010


Column order is wrong on big endian systems, primarly because of a
bits / bytes mix up with the bpp variable. Fix tested with r100 and
r300, screen depth 16 and 32 with YV12 and YUY2 (overlay, textured video),
RGBA and RGBT (overlay).

Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=29041

Signed-off-by: Heikki Lindholm <holin at iki.fi>
---
 src/radeon_video.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/radeon_video.c b/src/radeon_video.c
index dc75279..1a42951 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -2216,11 +2216,15 @@ RADEONCopyData(
 		swap = RADEON_HOST_DATA_SWAP_32BIT;
 		break;
 	    }
-	} else if (bpp != pScrn->bitsPerPixel) {
-	    if (bpp == 8)
+	} else {
+	    switch (pScrn->bitsPerPixel) {
+	    case 16:
+		swap = RADEON_HOST_DATA_SWAP_16BIT;
+		break;
+	    case 32:
 		swap = RADEON_HOST_DATA_SWAP_32BIT;
-	    else
-		swap = RADEON_HOST_DATA_SWAP_HDW;
+		break;
+	    }
 	}
 #endif
 
-- 
1.7.1



More information about the xorg-driver-ati mailing list