[PATCH] nv50: check drawable.bitsPerPixel instead of depth to get format

Christoph Bumiller e0425955 at student.tuwien.ac.at
Wed Dec 30 09:28:25 PST 2009


---
 src/nv50_exa.c |    6 +++---
 src/nv50_xv.c  |    6 ++++--
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/nv50_exa.c b/src/nv50_exa.c
index 1f5a4ac..bddc463 100644
--- a/src/nv50_exa.c
+++ b/src/nv50_exa.c
@@ -77,7 +77,7 @@ NV50EXA2DSurfaceFormat(PixmapPtr ppix, uint32_t *fmt)
 {
 	NV50EXA_LOCALS(ppix);
 
-	switch (ppix->drawable.depth) {
+	switch (ppix->drawable.bitsPerPixel) {
 	case 8 : *fmt = NV50_2D_SRC_FORMAT_R8_UNORM; break;
 	case 15: *fmt = NV50_2D_SRC_FORMAT_X1R5G5B5_UNORM; break;
 	case 16: *fmt = NV50_2D_SRC_FORMAT_R5G6B5_UNORM; break;
@@ -86,7 +86,7 @@ NV50EXA2DSurfaceFormat(PixmapPtr ppix, uint32_t *fmt)
 	case 32: *fmt = NV50_2D_SRC_FORMAT_A8R8G8B8_UNORM; break;
 	default:
 		 NOUVEAU_FALLBACK("Unknown surface format for bpp=%d\n",
-				  ppix->drawable.depth);
+				  ppix->drawable.bitsPerPixel);
 		 return FALSE;
 	}
 
@@ -179,7 +179,7 @@ NV50EXASetROP(PixmapPtr pdpix, int alu, Pixel planemask)
 	}
 
 	BEGIN_RING(chan, eng2d, NV50_2D_PATTERN_FORMAT, 2);
-	switch (pdpix->drawable.depth) {
+	switch (pdpix->drawable.bitsPerPixel) {
 		case  8: OUT_RING  (chan, 3); break;
 		case 15: OUT_RING  (chan, 1); break;
 		case 16: OUT_RING  (chan, 0); break;
diff --git a/src/nv50_xv.c b/src/nv50_xv.c
index b0eccfd..bb9bb43 100644
--- a/src/nv50_xv.c
+++ b/src/nv50_xv.c
@@ -41,10 +41,11 @@ extern Atom xvSyncToVBlank, xvSetDefaults;
 static Bool
 nv50_xv_check_image_put(PixmapPtr ppix)
 {
-	switch (ppix->drawable.depth) {
+	switch (ppix->drawable.bitsPerPixel) {
 	case 32:
 	case 24:
 	case 16:
+	case 15:
 		break;
 	default:
 		return FALSE;
@@ -78,10 +79,11 @@ nv50_xv_state_emit(PixmapPtr ppix, int id, struct nouveau_bo *src,
 		MARK_UNDO(chan);
 		return FALSE;
 	}
-	switch (ppix->drawable.depth) {
+	switch (ppix->drawable.bitsPerPixel) {
 	case 32: OUT_RING  (chan, NV50TCL_RT_FORMAT_A8R8G8B8_UNORM); break;
 	case 24: OUT_RING  (chan, NV50TCL_RT_FORMAT_X8R8G8B8_UNORM); break;
 	case 16: OUT_RING  (chan, NV50TCL_RT_FORMAT_R5G6B5_UNORM); break;
+	case 15: OUT_RING  (chan, NV50TCL_RT_FORMAT_X1R5G5B5_UNORM); break;
 	}
 	OUT_RING  (chan, bo->tile_mode << 4);
 	OUT_RING  (chan, 0);
-- 
1.6.4.4


--------------010501060201030906090507--


More information about the Nouveau mailing list