summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/main/formatquery.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mesa/main/formatquery.c b/src/mesa/main/formatquery.c
index 03ec11ae56f..444995b6414 100644
--- a/src/mesa/main/formatquery.c
+++ b/src/mesa/main/formatquery.c
@@ -600,6 +600,7 @@ _mesa_query_internal_format_default(struct gl_context *ctx, GLenum target,
case GL_AUTO_GENERATE_MIPMAP:
case GL_SRGB_READ:
case GL_SRGB_WRITE:
+ case GL_SRGB_DECODE_ARB:
params[0] = GL_FULL_SUPPORT;
break;
@@ -1131,7 +1132,15 @@ _mesa_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname,
break;
case GL_SRGB_DECODE_ARB:
- /* @TODO */
+ /* Presence of EXT_texture_sRGB_decode was already verified */
+ if (!_mesa_has_EXT_texture_sRGB(ctx) ||
+ target == GL_RENDERBUFFER ||
+ !_mesa_is_srgb_format(internalformat)) {
+ goto end;
+ }
+
+ ctx->Driver.QueryInternalFormat(ctx, target, internalformat, pname,
+ buffer);
break;
case GL_FILTER: