summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2014-07-29 17:25:42 +0200
committerLucas Stach <l.stach@pengutronix.de>2014-07-30 12:22:54 +0200
commit980408b88c511354823db6a6060d29e8026b85f8 (patch)
tree3b54ddfbb27ac2d5ab7f97faa476d06ecf4836a3
parent3ee161834f925994f77e70800c232459f998bd1a (diff)
downloadmesa-980408b88c511354823db6a6060d29e8026b85f8.tar.gz
mesa-980408b88c511354823db6a6060d29e8026b85f8.tar.xz
etna: add translate helpers for RS format conversion
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
-rw-r--r--src/gallium/drivers/etna/etna_translate.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/gallium/drivers/etna/etna_translate.h b/src/gallium/drivers/etna/etna_translate.h
index a9480fd13f..81f1845611 100644
--- a/src/gallium/drivers/etna/etna_translate.h
+++ b/src/gallium/drivers/etna/etna_translate.h
@@ -235,6 +235,31 @@ static inline uint32_t translate_rt_format(enum pipe_format fmt, bool silent)
}
}
+static inline int translate_rb_format_swap(enum pipe_format fmt)
+{
+ switch (fmt) {
+ case PIPE_FORMAT_B4G4R4X4_UNORM:
+ case PIPE_FORMAT_B4G4R4A4_UNORM:
+ case PIPE_FORMAT_B5G5R5X1_UNORM:
+ case PIPE_FORMAT_B5G5R5A1_UNORM:
+ case PIPE_FORMAT_B5G6R5_UNORM:
+ case PIPE_FORMAT_B8G8R8X8_UNORM:
+ case PIPE_FORMAT_B8G8R8A8_UNORM:
+ case PIPE_FORMAT_YUYV:
+ default:
+ return 0;
+ case PIPE_FORMAT_R8G8B8X8_UNORM:
+ case PIPE_FORMAT_R8G8B8A8_UNORM:
+ return 1;
+ }
+}
+
+static inline int translate_rb_src_dst_swap(enum pipe_format src,
+ enum pipe_format dst)
+{
+ return translate_rb_format_swap(src) ^ translate_rb_format_swap(dst);
+}
+
static inline uint32_t translate_depth_format(enum pipe_format fmt, bool silent)
{
switch(fmt)