summaryrefslogtreecommitdiff
path: root/src/sna/sna_io.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sna/sna_io.c')
-rw-r--r--src/sna/sna_io.c30
1 files changed, 9 insertions, 21 deletions
diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index d32bd583..d03280ed 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -465,13 +465,9 @@ fallback:
}
br13 = 0xcc << 16;
- switch (cpp) {
- default:
- case 4: cmd |= BLT_WRITE_ALPHA | BLT_WRITE_RGB;
- br13 |= 1 << 25; /* RGB8888 */
- case 2: br13 |= 1 << 24; /* RGB565 */
- case 1: break;
- }
+ br13 |= sna_br13_color_depth(cpp * 4);
+ if (cpp == 4)
+ cmd |= BLT_WRITE_ALPHA | BLT_WRITE_RGB;
kgem_set_mode(kgem, KGEM_BLT, dst_bo);
if (!kgem_check_batch(kgem, 10) ||
@@ -1042,13 +1038,9 @@ tile:
br13 >>= 2;
}
br13 |= 0xcc << 16;
- switch (dst->drawable.bitsPerPixel) {
- default:
- case 32: cmd |= BLT_WRITE_ALPHA | BLT_WRITE_RGB;
- br13 |= 1 << 25; /* RGB8888 */
- case 16: br13 |= 1 << 24; /* RGB565 */
- case 8: break;
- }
+ br13 |= sna_br13_color_depth(dst->drawable.bitsPerPixel);
+ if (dst->drawable.bitsPerPixel == 32)
+ cmd |= BLT_WRITE_ALPHA | BLT_WRITE_RGB;
kgem_set_mode(kgem, KGEM_BLT, dst_bo);
if (!kgem_check_batch(kgem, 10) ||
@@ -1548,13 +1540,9 @@ tile:
br13 >>= 2;
}
br13 |= 0xcc << 16;
- switch (dst->drawable.bitsPerPixel) {
- default:
- case 32: cmd |= BLT_WRITE_ALPHA | BLT_WRITE_RGB;
- br13 |= 1 << 25; /* RGB8888 */
- case 16: br13 |= 1 << 24; /* RGB565 */
- case 8: break;
- }
+ br13 |= sna_br13_color_depth(dst->drawable.bitsPerPixel);
+ if (dst->drawable.bitsPerPixel == 32)
+ cmd |= BLT_WRITE_ALPHA | BLT_WRITE_RGB;
kgem_set_mode(kgem, KGEM_BLT, dst_bo);
if (!kgem_check_batch(kgem, 10) ||