summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2015-06-20 00:34:50 +0100
committerRussell King <rmk@arm.linux.org.uk>2015-06-29 12:58:38 +0100
commitc3aae712e4d81db6982d2ee6194ffad41228d35e (patch)
treef58117fa57b854ee6a9073a5e17ef7a770b6706e
parentcc51835556cc4d31a2f7776124a7f0f1f495aa4a (diff)
etnaviv: drop the force argument from etnaviv_pict_format
We never force a format with etnaviv_pict_format() now, so get rid of this redundant argument. Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-rw-r--r--etnaviv/etnaviv_render.c95
1 files changed, 40 insertions, 55 deletions
diff --git a/etnaviv/etnaviv_render.c b/etnaviv/etnaviv_render.c
index 37ed063..46bc181 100644
--- a/etnaviv/etnaviv_render.c
+++ b/etnaviv/etnaviv_render.c
@@ -40,61 +40,46 @@
#include "etnaviv_utils.h"
#include "etnaviv_compat.h"
-static struct etnaviv_format etnaviv_pict_format(PictFormatShort format,
- Bool force)
+static struct etnaviv_format etnaviv_pict_format(PictFormatShort fmt)
{
- switch (format) {
-#define DE_FORMAT_UNKNOWN UNKNOWN_FORMAT
-#define C(pf,vf,af,sw) case PICT_##pf: \
- return (struct etnaviv_format){ \
- .format = force ? DE_FORMAT_##af : DE_FORMAT_##vf, \
- .swizzle = DE_SWIZZLE_##sw, \
- }
-
- C(a8r8g8b8, A8R8G8B8, A8R8G8B8, ARGB);
- C(x8r8g8b8, X8R8G8B8, A8R8G8B8, ARGB);
- C(a8b8g8r8, A8R8G8B8, A8R8G8B8, ABGR);
- C(x8b8g8r8, X8R8G8B8, A8R8G8B8, ABGR);
- C(b8g8r8a8, A8R8G8B8, A8R8G8B8, BGRA);
- C(b8g8r8x8, X8R8G8B8, A8R8G8B8, BGRA);
- C(r5g6b5, R5G6B5, UNKNOWN, ARGB);
- C(b5g6r5, R5G6B5, UNKNOWN, ABGR);
- C(a1r5g5b5, A1R5G5B5, A1R5G5B5, ARGB);
- C(x1r5g5b5, X1R5G5B5, A1R5G5B5, ARGB);
- C(a1b5g5r5, A1R5G5B5, A1R5G5B5, ABGR);
- C(x1b5g5r5, X1R5G5B5, A1R5G5B5, ABGR);
- C(a4r4g4b4, A4R4G4B4, A4R4G4B4, ARGB);
- C(x4r4g4b4, X4R4G4B4, A4R4G4B4, ARGB);
- C(a4b4g4r4, A4R4G4B4, A4R4G4B4, ABGR);
- C(x4b4g4r4, X4R4G4B4, A4R4G4B4, ABGR);
- C(a8, A8, A8, ARGB);
- C(c8, INDEX8, INDEX8, ARGB);
-
-/* The remainder we don't support */
-// C(r8g8b8, R8G8B8, UNKNOWN, ARGB);
-// C(b8g8r8, R8G8B8, UNKNOWN, ABGR);
-// C(r3g3b2, R3G3B2, UNKNOWN);
-// C(b2g3r3, UNKNOWN, UNKNOWN);
-// C(a2r2g2b2, A2R2G2B2, A2R2G2B2);
-// C(a2b2g2r2, UNKNOWN, A2R2G2B2);
-// C(g8, L8, UNKNOWN);
-// C(x4a4, UNKNOWN, UNKNOWN);
-// C(x4c4, UNKNOWN, UNKNOWN); /* same value as c8 */
-// C(x4g4, UNKNOWN, UNKNOWN); /* same value as g8 */
-// C(a4, A4, A4);
-// C(r1g2b1, UNKNOWN, UNKNOWN);
-// C(b1g2r1, UNKNOWN, UNKNOWN);
-// C(a1r1g1b1, UNKNOWN, UNKNOWN);
-// C(a1b1g1r1, UNKNOWN, UNKNOWN);
-// C(c4, INDEX4, UNKNOWN);
-// C(g4, L4, UNKNOWN);
-// C(a1, A1, A1);
-// C(g1, L1, UNKNOWN);
+ unsigned int format, swizzle;
+
+ switch (fmt) {
+#define C(pf, vf, sw) case PICT_##pf: \
+ format = DE_FORMAT_##vf; \
+ swizzle = DE_SWIZZLE_##sw; \
+ break
+
+ C(a8r8g8b8, A8R8G8B8, ARGB);
+ C(x8r8g8b8, X8R8G8B8, ARGB);
+ C(a8b8g8r8, A8R8G8B8, ABGR);
+ C(x8b8g8r8, X8R8G8B8, ABGR);
+ C(b8g8r8a8, A8R8G8B8, BGRA);
+ C(b8g8r8x8, X8R8G8B8, BGRA);
+ C(r5g6b5, R5G6B5, ARGB);
+ C(b5g6r5, R5G6B5, ABGR);
+ C(a1r5g5b5, A1R5G5B5, ARGB);
+ C(x1r5g5b5, X1R5G5B5, ARGB);
+ C(a1b5g5r5, A1R5G5B5, ABGR);
+ C(x1b5g5r5, X1R5G5B5, ABGR);
+ C(a4r4g4b4, A4R4G4B4, ARGB);
+ C(x4r4g4b4, X4R4G4B4, ARGB);
+ C(a4b4g4r4, A4R4G4B4, ABGR);
+ C(x4b4g4r4, X4R4G4B4, ABGR);
+ C(a8, A8, ARGB);
+ C(c8, INDEX8, ARGB);
+#undef C
+ /* Others are unsupported in hardware */
default:
- break;
+ return (struct etnaviv_format){
+ .format = UNKNOWN_FORMAT,
+ };
}
- return (struct etnaviv_format){ .format = UNKNOWN_FORMAT, .swizzle = 0 };
-#undef C
+
+ return (struct etnaviv_format){
+ .format = format,
+ .swizzle = swizzle,
+ };
}
#ifdef DEBUG_BLEND
@@ -242,7 +227,7 @@ static Bool etnaviv_blend(struct etnaviv *etnaviv, const BoxRec *clip,
static void etnaviv_set_format(struct etnaviv_pixmap *vpix, PicturePtr pict)
{
- vpix->pict_format = etnaviv_pict_format(pict->format, FALSE);
+ vpix->pict_format = etnaviv_pict_format(pict->format);
vpix->pict_format.tile = vpix->format.tile;
}
@@ -261,7 +246,7 @@ static struct etnaviv_pixmap *etnaviv_get_scratch_argb(ScreenPtr pScreen,
return NULL;
vpix = etnaviv_get_pixmap_priv(pixmap);
- vpix->pict_format = etnaviv_pict_format(PICT_a8r8g8b8, FALSE);
+ vpix->pict_format = etnaviv_pict_format(PICT_a8r8g8b8);
*ppPixmap = pixmap;
@@ -1134,7 +1119,7 @@ static void etnaviv_accel_glyph_upload(ScreenPtr pScreen, PicturePtr pDst,
etnaviv_add_freemem(etnaviv, unode);
op.src = INIT_BLIT_BO(usr, pitch,
- etnaviv_pict_format(pSrc->format, FALSE),
+ etnaviv_pict_format(pSrc->format),
src_offset);
}