[Mesa-dev] [PATCH] radeonsi: Handle more L/A format cases.

Alex Deucher alexdeucher at gmail.com
Thu Sep 6 07:23:02 PDT 2012


On Thu, Sep 6, 2012 at 7:04 AM, Michel Dänzer <michel at daenzer.net> wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> Fixes corresponding cases in piglit fbo-generatemipmap-formats.
>
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  src/gallium/drivers/radeonsi/si_state.c |   14 ++++++++++++++
>  1 file changed, 14 insertions(+)
>
> diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
> index 762887d..99c8b1a 100644
> --- a/src/gallium/drivers/radeonsi/si_state.c
> +++ b/src/gallium/drivers/radeonsi/si_state.c
> @@ -715,6 +715,9 @@ static uint32_t si_translate_colorformat(enum pipe_format format)
>         case PIPE_FORMAT_R16_SINT:
>         case PIPE_FORMAT_R16_FLOAT:
>         case PIPE_FORMAT_R16G16_FLOAT:
> +       case PIPE_FORMAT_L16_UNORM:
> +       case PIPE_FORMAT_I16_UNORM:
> +       case PIPE_FORMAT_A16_UNORM:
>                 return V_028C70_COLOR_16;
>
>         /* 32-bit buffers. */
> @@ -759,6 +762,7 @@ static uint32_t si_translate_colorformat(enum pipe_format format)
>         case PIPE_FORMAT_Z32_FLOAT:
>                 return V_028C70_COLOR_32;
>
> +       case PIPE_FORMAT_L16A16_UNORM:
>         case PIPE_FORMAT_R16G16_SSCALED:
>         case PIPE_FORMAT_R16G16_UNORM:
>         case PIPE_FORMAT_R16G16_UINT:
> @@ -863,12 +867,17 @@ static uint32_t si_translate_colorswap(enum pipe_format format)
>         case PIPE_FORMAT_R8G8_SINT:
>                 return V_028C70_SWAP_STD;
>
> +       case PIPE_FORMAT_I16_UNORM:
> +       case PIPE_FORMAT_L16_UNORM:
>         case PIPE_FORMAT_R16_UNORM:
>         case PIPE_FORMAT_R16_UINT:
>         case PIPE_FORMAT_R16_SINT:
>         case PIPE_FORMAT_R16_FLOAT:
>                 return V_028C70_SWAP_STD;
>
> +       case PIPE_FORMAT_A16_UNORM:
> +               return V_028C70_SWAP_ALT_REV;
> +
>         /* 32-bit buffers. */
>         case PIPE_FORMAT_A8B8G8R8_SRGB:
>                 return V_028C70_SWAP_STD_REV;
> @@ -924,6 +933,9 @@ static uint32_t si_translate_colorswap(enum pipe_format format)
>         case PIPE_FORMAT_R16G16_SINT:
>                 return V_028C70_SWAP_STD;
>
> +       case PIPE_FORMAT_L16A16_UNORM:
> +               return V_028C70_SWAP_ALT;
> +
>         /* 64-bit buffers. */
>         case PIPE_FORMAT_R32G32_FLOAT:
>         case PIPE_FORMAT_R32G32_UINT:
> @@ -1155,8 +1167,10 @@ static uint32_t si_translate_texformat(struct pipe_screen *screen,
>         switch (desc->channel[first_non_void].size) {
>         case 4:
>                 switch (desc->nr_channels) {
> +#if 0 /* Not supported as for render targets */
>                 case 2:
>                         return V_008F14_IMG_DATA_FORMAT_4_4;
> +#endif
>                 case 4:
>                         return V_008F14_IMG_DATA_FORMAT_4_4_4_4;
>                 }
> --
> 1.7.10.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list