[Mesa-dev] [PATCH 01/12] st/mesa: use DXT SRGB formats for COMPRESSED_SRGB

Keith Whitwell keithw at vmware.com
Wed Dec 22 02:16:30 PST 2010


Marek,

This series looks good to me.

Keith

On Tue, 2010-12-21 at 19:00 -0800, Marek Olšák wrote:
> And also check if the formats are supported to return something meaningful
> if compression cannot be used.
> ---
>  src/mesa/state_tracker/st_format.c |   20 ++++++++++++++++----
>  1 files changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
> index 955d821..531fa94 100644
> --- a/src/mesa/state_tracker/st_format.c
> +++ b/src/mesa/state_tracker/st_format.c
> @@ -717,18 +717,30 @@ st_choose_format(struct pipe_screen *screen, GLenum internalFormat,
>  
>     case GL_SRGB_EXT:
>     case GL_SRGB8_EXT:
> -   case GL_COMPRESSED_SRGB_EXT:
> -   case GL_COMPRESSED_SRGB_ALPHA_EXT:
>     case GL_SRGB_ALPHA_EXT:
>     case GL_SRGB8_ALPHA8_EXT:
>        return default_srgba_format( screen, target, sample_count, bindings,
>                                     geom_flags );
> +
> +   case GL_COMPRESSED_SRGB_EXT:
>     case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
> -      return PIPE_FORMAT_DXT1_SRGB;
> +      if (screen->is_format_supported(screen, PIPE_FORMAT_DXT1_SRGB, target,
> +                                      sample_count, bindings, geom_flags))
> +         return PIPE_FORMAT_DXT1_SRGB;
> +      return default_srgba_format( screen, target, sample_count, bindings,
> +                                   geom_flags );
> +
>     case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
>        return PIPE_FORMAT_DXT1_SRGBA;
> +
> +   case GL_COMPRESSED_SRGB_ALPHA_EXT:
>     case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
> -      return PIPE_FORMAT_DXT3_SRGBA;
> +      if (screen->is_format_supported(screen, PIPE_FORMAT_DXT3_SRGBA, target,
> +                                      sample_count, bindings, geom_flags))
> +         return PIPE_FORMAT_DXT3_SRGBA;
> +      return default_srgba_format( screen, target, sample_count, bindings,
> +                                   geom_flags );
> +
>     case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
>        return PIPE_FORMAT_DXT5_SRGBA;
>  




More information about the mesa-dev mailing list