diff options
| -rw-r--r-- | src/mesa/state_tracker/st_format.c | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c index a8ae30a454..a9387c05df 100644 --- a/src/mesa/state_tracker/st_format.c +++ b/src/mesa/state_tracker/st_format.c @@ -512,6 +512,32 @@ st_choose_format(struct pipe_context *pipe, GLint internalFormat,           return PIPE_FORMAT_Z24S8_UNORM;        return PIPE_FORMAT_NONE; +   case GL_SRGB_EXT: +   case GL_SRGB8_EXT: +   case GL_COMPRESSED_SRGB_EXT: +   case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT: +   case GL_SRGB_ALPHA_EXT: +   case GL_SRGB8_ALPHA8_EXT: +   case GL_COMPRESSED_SRGB_ALPHA_EXT: +   case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: +   case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: +   case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: +      return default_rgba_format( screen, target, tex_usage, geom_flags ); + +   case GL_SLUMINANCE_ALPHA_EXT: +   case GL_SLUMINANCE8_ALPHA8_EXT: +   case GL_COMPRESSED_SLUMINANCE_EXT: +   case GL_COMPRESSED_SLUMINANCE_ALPHA_EXT: +      if (screen->is_format_supported( screen, PIPE_FORMAT_A8L8_UNORM, target, tex_usage, geom_flags )) +         return PIPE_FORMAT_A8L8_UNORM; +      return default_rgba_format( screen, target, tex_usage, geom_flags ); + +   case GL_SLUMINANCE_EXT: +   case GL_SLUMINANCE8_EXT: +      if (screen->is_format_supported( screen, PIPE_FORMAT_L8_UNORM, target, tex_usage, geom_flags )) +         return PIPE_FORMAT_L8_UNORM; +      return default_rgba_format( screen, target, tex_usage, geom_flags ); +     default:        return PIPE_FORMAT_NONE;     }  | 
