[Mesa-dev] [PATCH v2 04/14] etnaviv: put logic for rs clear format selection into caller

Philipp Zabel p.zabel at pengutronix.de
Tue May 15 15:03:03 UTC 2018


On Tue, 2018-05-01 at 16:48 +0200, Christian Gmeiner wrote:
> We do no need to call translate_rs_format(..) as we can simplify
> things by using formats blocksize to choose the correct RS format
> for clearing.
> 
> No piglit regressions.
> 
> Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
> ---
>  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 fc4f65dbee..3febd8daef 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_blocksize(surf->base.format)) {
> +   case 2:
> +      format = RS_FORMAT_A4R4G4B4;
> +      break;
> +   case 4:
> +      format = RS_FORMAT_A8R8G8B8;
> +      break;
> +   default:
> +      format = ETNA_NO_MATCH;
> +      break;
> +   }

Naively, this does not look like a simplification to me.

It effectively replaces a call to translate_rs_format with a call to
util_format_description. Is there an advantage to doing it this way?

regards
Philipp


More information about the mesa-dev mailing list