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; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev