From b3eeadd256456b59f0c3cdd5404f0212ff170b8c Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 5 Jul 2018 15:23:40 +0100 Subject: [PATCH] Check for EXT_texture_sRGB_decode before using enums --- renderdoc/driver/gl/gl_common.h | 1 + renderdoc/driver/gl/gl_initstate.cpp | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/renderdoc/driver/gl/gl_common.h b/renderdoc/driver/gl/gl_common.h index 2edec60ea..41ddafb5c 100644 --- a/renderdoc/driver/gl/gl_common.h +++ b/renderdoc/driver/gl/gl_common.h @@ -624,6 +624,7 @@ extern bool IsGLES; EXT_TO_CHECK(99, 99, EXT_raster_multisample) \ EXT_TO_CHECK(99, 30, EXT_texture_swizzle) \ EXT_TO_CHECK(99, 99, KHR_blend_equation_advanced_coherent) \ + EXT_TO_CHECK(99, 99, EXT_texture_sRGB_decode) \ /* OpenGL ES extensions */ \ EXT_TO_CHECK(99, 32, EXT_color_buffer_float) \ EXT_TO_CHECK(99, 32, EXT_primitive_bounding_box) \ diff --git a/renderdoc/driver/gl/gl_initstate.cpp b/renderdoc/driver/gl/gl_initstate.cpp index d9ce8dec1..5f52b148b 100644 --- a/renderdoc/driver/gl/gl_initstate.cpp +++ b/renderdoc/driver/gl/gl_initstate.cpp @@ -658,8 +658,11 @@ void GLResourceManager::PrepareTextureInitialContents(ResourceId liveid, Resourc // only non-ms textures have sampler state if(!ms) { - GL.glGetTextureParameterivEXT(res.name, details.curType, eGL_TEXTURE_SRGB_DECODE_EXT, - (GLint *)&state.srgbDecode); + if(HasExt[EXT_texture_sRGB_decode]) + GL.glGetTextureParameterivEXT(res.name, details.curType, eGL_TEXTURE_SRGB_DECODE_EXT, + (GLint *)&state.srgbDecode); + else + state.srgbDecode = eGL_DECODE_EXT; GL.glGetTextureParameterivEXT(res.name, details.curType, eGL_TEXTURE_COMPARE_FUNC, (GLint *)&state.compareFunc); GL.glGetTextureParameterivEXT(res.name, details.curType, eGL_TEXTURE_COMPARE_MODE, @@ -1861,8 +1864,9 @@ void GLResourceManager::Apply_InitialState(GLResource live, GLInitialContents in if(!ms) { - GL.glTextureParameterivEXT(live.name, details.curType, eGL_TEXTURE_SRGB_DECODE_EXT, - (GLint *)&state.srgbDecode); + if(HasExt[EXT_texture_sRGB_decode]) + GL.glTextureParameterivEXT(live.name, details.curType, eGL_TEXTURE_SRGB_DECODE_EXT, + (GLint *)&state.srgbDecode); GL.glTextureParameterivEXT(live.name, details.curType, eGL_TEXTURE_COMPARE_FUNC, (GLint *)&state.compareFunc); GL.glTextureParameterivEXT(live.name, details.curType, eGL_TEXTURE_COMPARE_MODE,