summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/etnaviv
diff options
context:
space:
mode:
authorChristian Gmeiner <[email protected]>2019-07-16 20:14:00 +0200
committerChristian Gmeiner <[email protected]>2019-08-19 22:36:45 +0200
commitf52b9218ff8b869e7a0e2583a4f417a399a244cd (patch)
tree988e928144429f846cc24ab94417c6ea5f1d84f2 /src/gallium/drivers/etnaviv
parent7492685b1be0f1300ba910de07d0f409bddf3be3 (diff)
etnaviv: rs: add support for 64bpp clears
Starting with HALTI2 the RS supports 64bpp clears. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Philipp Zabel <[email protected]> Reviewed-by: Jonathan Marek <[email protected]>
Diffstat (limited to 'src/gallium/drivers/etnaviv')
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_rs.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_rs.c b/src/gallium/drivers/etnaviv/etnaviv_rs.c
index 0979607cdc2..0ac9b67f5f3 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_rs.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_rs.c
@@ -262,17 +262,15 @@ etna_rs_gen_clear_surface(struct etna_context *ctx, struct etna_surface *surf,
case 32:
format = RS_FORMAT_A8R8G8B8;
break;
+ case 64:
+ assert(ctx->specs.halti >= 2);
+ format = RS_FORMAT_64BPP_CLEAR;
+ break;
default:
- format = ETNA_NO_MATCH;
+ unreachable("bpp not supported for clear by RS");
break;
}
- if (format == ETNA_NO_MATCH) {
- BUG("etna_rs_gen_clear_surface: Unhandled clear fmt %s", util_format_name(surf->base.format));
- format = RS_FORMAT_A8R8G8B8;
- assert(0);
- }
-
/* use tiled clear if width is multiple of 16 */
bool tiled_clear = (surf->surf.padded_width & ETNA_RS_WIDTH_MASK) == 0 &&
(surf->surf.padded_height & ETNA_RS_HEIGHT_MASK) == 0;