From 37af75f88c8c1daf67f3d4747613040a6dd9caf8 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Sun, 26 May 2019 21:06:51 +0200 Subject: [PATCH] etnaviv: rs: choose clear format based on block size Fixes following piglit and does not introduce any regressions. spec@ext_packed_depth_stencil@fbo-depth-gl_depth24_stencil8-blit Signed-off-by: Christian Gmeiner Reviewed-by: Lucas Stach --- src/gallium/drivers/etnaviv/etnaviv_rs.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/etnaviv/etnaviv_rs.c b/src/gallium/drivers/etnaviv/etnaviv_rs.c index a9d3872..f51a81e 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_rs.c +++ b/src/gallium/drivers/etnaviv/etnaviv_rs.c @@ -254,7 +254,19 @@ etna_rs_gen_clear_surface(struct etna_context *ctx, struct etna_surface *surf, uint32_t clear_value) { struct etna_resource *dst = etna_resource(surf->base.texture); - uint32_t format = translate_rs_format(surf->base.format); + uint32_t format; + + switch (util_format_get_blocksizebits(surf->base.format)) { + case 16: + format = RS_FORMAT_A4R4G4B4; + break; + case 32: + format = RS_FORMAT_A8R8G8B8; + break; + default: + format = ETNA_NO_MATCH; + break; + } if (format == ETNA_NO_MATCH) { BUG("etna_rs_gen_clear_surface: Unhandled clear fmt %s", util_format_name(surf->base.format)); -- 2.7.4