Mesa (master): etnaviv: add support for extended pe formats
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Nov 25 19:13:33 UTC 2019
Module: Mesa
Branch: master
Commit: 92d5e3c692483a6c90f5738b6cfabb6d11a7ef78
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=92d5e3c692483a6c90f5738b6cfabb6d11a7ef78
Author: Christian Gmeiner <christian.gmeiner at gmail.com>
Date: Fri Jun 14 08:22:07 2019 +0200
etnaviv: add support for extended pe formats
Use the extended format if an such a format was passed.
v1 -> v2:
- set FORMAT_MASK bit when using ext PE format as suggested
by Wladimir J. van der Laan
Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Reviewed-by: Jonathan Marek <jonathan at marek.ca>
---
src/gallium/drivers/etnaviv/etnaviv_state.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_state.c b/src/gallium/drivers/etnaviv/etnaviv_state.c
index e913fe7783c..5c8448315f0 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_state.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_state.c
@@ -141,12 +141,18 @@ etna_set_framebuffer_state(struct pipe_context *pctx,
struct etna_surface *cbuf = etna_surface(fb->cbufs[0]);
struct etna_resource *res = etna_resource(cbuf->base.texture);
bool color_supertiled = (res->layout & ETNA_LAYOUT_BIT_SUPER) != 0;
+ uint32_t fmt = translate_pe_format(cbuf->base.format);
assert(res->layout & ETNA_LAYOUT_BIT_TILE); /* Cannot render to linear surfaces */
etna_update_render_resource(pctx, etna_resource(cbuf->prsc));
- cs->PE_COLOR_FORMAT =
- VIVS_PE_COLOR_FORMAT_FORMAT(translate_pe_format(cbuf->base.format)) |
+ if (fmt >= PE_FORMAT_R16F)
+ cs->PE_COLOR_FORMAT = VIVS_PE_COLOR_FORMAT_FORMAT_EXT(fmt) |
+ VIVS_PE_COLOR_FORMAT_FORMAT_MASK;
+ else
+ cs->PE_COLOR_FORMAT = VIVS_PE_COLOR_FORMAT_FORMAT(fmt);
+
+ cs->PE_COLOR_FORMAT |=
VIVS_PE_COLOR_FORMAT_COMPONENTS__MASK |
VIVS_PE_COLOR_FORMAT_OVERWRITE |
COND(color_supertiled, VIVS_PE_COLOR_FORMAT_SUPER_TILED) |
More information about the mesa-commit
mailing list