[PATCH 2/3] etnaviv: Add TS_SAMPLER formats to etnaviv_format

Christian Gmeiner christian.gmeiner at gmail.com
Tue Nov 7 18:33:57 UTC 2017


2017-11-07 17:43 GMT+01:00 Wladimir J. van der Laan <laanwj at gmail.com>:
> Sampler TS introduces yet another format enumeration for renderable
> formats. Introduce it into etnaviv_format as unobtrusively as possible.
>
> Signed-off-by: Wladimir J. van der Laan <laanwj at gmail.com>

Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>

> ---
>  src/gallium/drivers/etnaviv/etnaviv_format.c | 19 +++++++++++++++++++
>  src/gallium/drivers/etnaviv/etnaviv_format.h |  3 +++
>  2 files changed, 22 insertions(+)
>
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_format.c b/src/gallium/drivers/etnaviv/etnaviv_format.c
> index 3dd212f..f3cba46 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_format.c
> +++ b/src/gallium/drivers/etnaviv/etnaviv_format.c
> @@ -40,6 +40,7 @@ struct etna_format {
>     unsigned vtx;
>     unsigned tex;
>     unsigned rs;
> +   unsigned ts;
>     boolean present;
>     const unsigned char tex_swiz[4];
>  };
> @@ -53,6 +54,13 @@ struct etna_format {
>  #define RS_FORMAT_X8B8G8R8    (RS_FORMAT_X8R8G8B8 | RS_FORMAT_RB_SWAP)
>  #define RS_FORMAT_A8B8G8R8    (RS_FORMAT_A8R8G8B8 | RS_FORMAT_RB_SWAP)
>
> +#define TS_SAMPLER_FORMAT_NONE      ETNA_NO_MATCH
> +#define TS_SAMPLER_FORMAT_X4R4G4B4  TS_SAMPLER_FORMAT_A4R4G4B4
> +#define TS_SAMPLER_FORMAT_X1R5G5B5  TS_SAMPLER_FORMAT_A1R5G5B5
> +#define TS_SAMPLER_FORMAT_YUY2      TS_SAMPLER_FORMAT_NONE /* Not supported AFAIK */
> +#define TS_SAMPLER_FORMAT_X8B8G8R8  TS_SAMPLER_FORMAT_X8R8G8B8
> +#define TS_SAMPLER_FORMAT_A8B8G8R8  TS_SAMPLER_FORMAT_A8R8G8B8
> +
>  #define SWIZ(x,y,z,w) {    \
>     PIPE_SWIZZLE_##x,       \
>     PIPE_SWIZZLE_##y,       \
> @@ -66,6 +74,7 @@ struct etna_format {
>        .vtx = FE_DATA_TYPE_##vtxfmt, \
>        .tex = TEXTURE_FORMAT_##texfmt,                     \
>        .rs = RS_FORMAT_##rsfmt,                            \
> +      .ts = TS_SAMPLER_FORMAT_##rsfmt,        \
>        .present = 1,                                       \
>        .tex_swiz = texswiz,                                \
>     }
> @@ -76,6 +85,7 @@ struct etna_format {
>        .vtx = ETNA_NO_MATCH,        \
>        .tex = TEXTURE_FORMAT_##fmt, \
>        .rs = RS_FORMAT_##rsfmt,     \
> +      .ts = TS_SAMPLER_FORMAT_##rsfmt,     \
>        .present = 1,                \
>        .tex_swiz = swiz,            \
>     }
> @@ -356,3 +366,12 @@ translate_vertex_format_type(enum pipe_format fmt)
>
>     return formats[fmt].vtx;
>  }
> +
> +uint32_t
> +translate_ts_sampler_format(enum pipe_format fmt)
> +{
> +   if (!formats[fmt].present)
> +      return ETNA_NO_MATCH;
> +
> +   return formats[fmt].ts;
> +}
> diff --git a/src/gallium/drivers/etnaviv/etnaviv_format.h b/src/gallium/drivers/etnaviv/etnaviv_format.h
> index 1672d67..20c8e1b 100644
> --- a/src/gallium/drivers/etnaviv/etnaviv_format.h
> +++ b/src/gallium/drivers/etnaviv/etnaviv_format.h
> @@ -53,4 +53,7 @@ translate_rs_format_rb_swap(enum pipe_format fmt);
>  uint32_t
>  translate_vertex_format_type(enum pipe_format fmt);
>
> +uint32_t
> +translate_ts_sampler_format(enum pipe_format fmt);
> +
>  #endif /* ETNAVIV_FORMAT_H_ */
> --
> 2.7.4
>



-- 
greets
--
Christian Gmeiner, MSc

https://christian-gmeiner.info


More information about the etnaviv mailing list