From 625b54e2337dc19bb77ab29997bd98fd1770d702 Mon Sep 17 00:00:00 2001 From: Janos Pantos Date: Thu, 3 Aug 2017 15:40:18 +0200 Subject: [PATCH] Add some missing GLES extension names and aliases Extend supported GLES extension list and add missing aliases for the following extensions: * GL_EXT_texture_storage * GL_EXT_texture_view * GL_OES_draw_buffers_indexed * GL_OES_texture_cube_map_array * GL_OES_texture_view --- renderdoc/driver/gl/gl_driver.cpp | 4 ++++ renderdoc/driver/gl/gl_hookset.h | 18 ++++++++-------- renderdoc/driver/gl/gl_hookset_defs.h | 30 +++++++++------------------ 3 files changed, 23 insertions(+), 29 deletions(-) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index fc7142a28..13b090e62 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -779,6 +779,7 @@ void WrappedOpenGL::BuildGLESExtensions() m_GLESExtensions.push_back("GL_EXT_texture_sRGB_RG8"); m_GLESExtensions.push_back("GL_EXT_texture_storage"); m_GLESExtensions.push_back("GL_EXT_texture_type_2_10_10_10_REV"); + m_GLESExtensions.push_back("GL_EXT_texture_view"); m_GLESExtensions.push_back("GL_KHR_blend_equation_advanced"); m_GLESExtensions.push_back("GL_KHR_blend_equation_advanced_coherent"); m_GLESExtensions.push_back("GL_KHR_context_flush_control"); @@ -795,6 +796,7 @@ void WrappedOpenGL::BuildGLESExtensions() m_GLESExtensions.push_back("GL_OES_depth32"); m_GLESExtensions.push_back("GL_OES_depth_texture"); m_GLESExtensions.push_back("GL_OES_depth_texture_cube_map"); + m_GLESExtensions.push_back("GL_OES_draw_buffers_indexed"); m_GLESExtensions.push_back("GL_OES_draw_elements_base_vertex"); m_GLESExtensions.push_back("GL_OES_fbo_render_mipmap"); m_GLESExtensions.push_back("GL_OES_geometry_shader"); @@ -810,6 +812,7 @@ void WrappedOpenGL::BuildGLESExtensions() m_GLESExtensions.push_back("GL_OES_texture_border_clamp"); m_GLESExtensions.push_back("GL_OES_texture_buffer"); m_GLESExtensions.push_back("GL_OES_texture_compression_astc"); + m_GLESExtensions.push_back("GL_OES_texture_cube_map_array"); m_GLESExtensions.push_back("GL_OES_texture_float"); m_GLESExtensions.push_back("GL_OES_texture_float_linear"); m_GLESExtensions.push_back("GL_OES_texture_half_float"); @@ -817,6 +820,7 @@ void WrappedOpenGL::BuildGLESExtensions() m_GLESExtensions.push_back("GL_OES_texture_npot"); m_GLESExtensions.push_back("GL_OES_texture_stencil8"); m_GLESExtensions.push_back("GL_OES_texture_storage_multisample_2d_array"); + m_GLESExtensions.push_back("GL_OES_texture_view"); m_GLESExtensions.push_back("GL_OES_vertex_array_object"); m_GLESExtensions.push_back("GL_OES_vertex_half_float"); m_GLESExtensions.push_back("GL_OES_viewport_array"); diff --git a/renderdoc/driver/gl/gl_hookset.h b/renderdoc/driver/gl/gl_hookset.h index d695b4532..4c6642f98 100644 --- a/renderdoc/driver/gl/gl_hookset.h +++ b/renderdoc/driver/gl/gl_hookset.h @@ -108,9 +108,9 @@ struct GLHookSet // rather than here in the core section where you'd expect // ++ glext PFNGLACTIVETEXTUREPROC glActiveTexture; // aliases glActiveTextureARB - PFNGLTEXSTORAGE1DPROC glTexStorage1D; - PFNGLTEXSTORAGE2DPROC glTexStorage2D; - PFNGLTEXSTORAGE3DPROC glTexStorage3D; + PFNGLTEXSTORAGE1DPROC glTexStorage1D; // aliases glTexStorage1DEXT + PFNGLTEXSTORAGE2DPROC glTexStorage2D; // aliases glTexStorage2DEXT + PFNGLTEXSTORAGE3DPROC glTexStorage3D; // aliases glTexStorage3DEXT PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample; PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample; // aliases glTexStorage3DMultisampleOES PFNGLTEXIMAGE3DPROC glTexImage3D; // aliases glTexImage3DEXT, glTexImage3DOES @@ -125,7 +125,7 @@ struct GLHookSet PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D; // aliases glCompressedTexSubImage2DARB PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D; // aliases glCompressedTexSubImage3DARB, glCompressedTexSubImage3DOES PFNGLTEXBUFFERRANGEPROC glTexBufferRange; // aliases glTexBufferRangeEXT, glTexBufferRangeOES - PFNGLTEXTUREVIEWPROC glTextureView; + PFNGLTEXTUREVIEWPROC glTextureView; // aliases glTextureViewEXT, glTextureViewOES PFNGLTEXPARAMETERIIVPROC glTexParameterIiv; // aliases glTexParameterIivEXT, glTexParameterIivOES PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv; // aliases glTexParameterIuivEXT, glTexParameterIuivOES PFNGLGENERATEMIPMAPPROC glGenerateMipmap; // aliases glGenerateMipmapEXT @@ -225,18 +225,18 @@ struct GLHookSet PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv; PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus; // aliases glCheckFramebufferStatusEXT PFNGLBLENDCOLORPROC glBlendColor; // aliases glBlendColorEXT - PFNGLBLENDFUNCIPROC glBlendFunci; // aliases glBlendFunciARB, glBlendFunciEXT + PFNGLBLENDFUNCIPROC glBlendFunci; // aliases glBlendFunciARB, glBlendFunciEXT, glBlendFunciOES PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate; // aliases glBlendFuncSeparateARB - PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei; // aliases glBlendFuncSeparateiARB, glBlendFuncSeparateiEXT + PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei; // aliases glBlendFuncSeparateiARB, glBlendFuncSeparateiEXT, glBlendFuncSeparateiOES PFNGLBLENDEQUATIONPROC glBlendEquation; // aliases glBlendEquationEXT - PFNGLBLENDEQUATIONIPROC glBlendEquationi; // aliases glBlendEquationiARB, glBlendEquationiEXT + PFNGLBLENDEQUATIONIPROC glBlendEquationi; // aliases glBlendEquationiARB, glBlendEquationiEXT, glBlendEquationiOES PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate; // aliases glBlendEquationSeparateARB, glBlendEquationSeparateEXT - PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei; // aliases glBlendEquationSeparateiARB, glBlendEquationSeparateiEXT + PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei; // aliases glBlendEquationSeparateiARB, glBlendEquationSeparateiEXT, glBlendEquationSeparateiOES PFNGLBLENDBARRIERKHRPROC glBlendBarrierKHR; PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate; PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate; PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate; - PFNGLCOLORMASKIPROC glColorMaski; // aliases glColorMaskiEXT, glColorMaskIndexedEXT + PFNGLCOLORMASKIPROC glColorMaski; // aliases glColorMaskiEXT, glColorMaskIndexedEXT, glColorMaskiOES PFNGLSAMPLEMASKIPROC glSampleMaski; PFNGLSAMPLECOVERAGEPROC glSampleCoverage; // aliases glSampleCoverageARB PFNGLMINSAMPLESHADINGPROC glMinSampleShading; // aliases glMinSampleShadingARB, glMinSampleShadingOES diff --git a/renderdoc/driver/gl/gl_hookset_defs.h b/renderdoc/driver/gl/gl_hookset_defs.h index 9bc25222f..5bd0de853 100644 --- a/renderdoc/driver/gl/gl_hookset_defs.h +++ b/renderdoc/driver/gl/gl_hookset_defs.h @@ -341,6 +341,7 @@ HookExtension(PFNGLCOLORMASKIPROC, glColorMaski); \ HookExtensionAlias(PFNGLCOLORMASKIPROC, glColorMaski, glColorMaskiEXT); \ HookExtensionAlias(PFNGLCOLORMASKIPROC, glColorMaski, glColorMaskIndexedEXT); \ + HookExtensionAlias(PFNGLCOLORMASKIPROC, glColorMaski, glColorMaskiOES); \ HookExtension(PFNGLGETBOOLEANI_VPROC, glGetBooleani_v); \ HookExtension(PFNGLGETINTEGERI_VPROC, glGetIntegeri_v); \ HookExtension(PFNGLENABLEIPROC, glEnablei); \ @@ -607,15 +608,19 @@ HookExtension(PFNGLBLENDEQUATIONIPROC, glBlendEquationi); \ HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiARB); \ HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiEXT); \ + HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiOES); \ HookExtension(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei); \ HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiARB); \ HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiEXT); \ + HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiOES); \ HookExtension(PFNGLBLENDFUNCIPROC, glBlendFunci); \ HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciARB); \ HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciEXT); \ + HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciOES); \ HookExtension(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei); \ HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiARB); \ HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiEXT); \ + HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiOES); \ HookExtension(PFNGLDRAWARRAYSINDIRECTPROC, glDrawArraysIndirect); \ HookExtension(PFNGLDRAWELEMENTSINDIRECTPROC, glDrawElementsIndirect); \ HookExtension(PFNGLUNIFORM1DPROC, glUniform1d); \ @@ -837,8 +842,11 @@ HookExtension(PFNGLMEMORYBARRIERPROC, glMemoryBarrier); \ HookExtensionAlias(PFNGLMEMORYBARRIERPROC, glMemoryBarrier, glMemoryBarrierEXT); \ HookExtension(PFNGLTEXSTORAGE1DPROC, glTexStorage1D); \ + HookExtensionAlias(PFNGLTEXSTORAGE1DPROC, glTexStorage1D, glTexStorage1DEXT); \ HookExtension(PFNGLTEXSTORAGE2DPROC, glTexStorage2D); \ + HookExtensionAlias(PFNGLTEXSTORAGE2DPROC, glTexStorage2D, glTexStorage2DEXT); \ HookExtension(PFNGLTEXSTORAGE3DPROC, glTexStorage3D); \ + HookExtensionAlias(PFNGLTEXSTORAGE3DPROC, glTexStorage3D, glTexStorage3DEXT); \ HookExtension(PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC, glDrawTransformFeedbackInstanced); \ HookExtension(PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC, glDrawTransformFeedbackStreamInstanced); \ HookExtension(PFNGLCLEARBUFFERDATAPROC, glClearBufferData); \ @@ -873,6 +881,8 @@ HookExtension(PFNGLTEXSTORAGE3DMULTISAMPLEPROC, glTexStorage3DMultisample); \ HookExtensionAlias(PFNGLTEXSTORAGE3DMULTISAMPLEPROC, glTexStorage3DMultisample, glTexStorage3DMultisampleOES); \ HookExtension(PFNGLTEXTUREVIEWPROC, glTextureView); \ + HookExtensionAlias(PFNGLTEXTUREVIEWPROC, glTextureView, glTextureViewEXT); \ + HookExtensionAlias(PFNGLTEXTUREVIEWPROC, glTextureView, glTextureViewOES); \ HookExtension(PFNGLBINDVERTEXBUFFERPROC, glBindVertexBuffer); \ HookExtension(PFNGLVERTEXATTRIBFORMATPROC, glVertexAttribFormat); \ HookExtension(PFNGLVERTEXATTRIBIFORMATPROC, glVertexAttribIFormat); \ @@ -3602,15 +3612,9 @@ HookWrapper4(void, glgetnuniformuivkhr, GLuint, program, GLint, location, GLsizei, bufSize, GLuint *, params); \ HookWrapper2(void, gleglimagetargettexture2does, GLenum, target, GLeglImageOES, image); \ HookWrapper2(void, gleglimagetargetrenderbufferstorageoes, GLenum, target, GLeglImageOES, image); \ - HookWrapper2(void, glblendequationioes, GLuint, buf, GLenum, mode); \ - HookWrapper3(void, glblendequationseparateioes, GLuint, buf, GLenum, modeRGB, GLenum, modeAlpha); \ - HookWrapper3(void, glblendfuncioes, GLuint, buf, GLenum, src, GLenum, dst); \ - HookWrapper5(void, glblendfuncseparateioes, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \ - HookWrapper5(void, glcolormaskioes, GLuint, index, GLboolean, r, GLboolean, g, GLboolean, b, GLboolean, a); \ HookWrapper6(void, gldrawelementsinstancedbasevertexoes, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex); \ HookWrapper5(void, glgetprogrambinaryoes, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLenum *, binaryFormat, void *, binary); \ HookWrapper4(void, glprogrambinaryoes, GLuint, program, GLenum, binaryFormat, const void *, binary, GLint, length); \ - HookWrapper8(void, gltextureviewoes, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \ HookWrapper10(void, glblitframebufferangle, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \ HookWrapper5(void, glrenderbufferstoragemultisampleangle, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \ HookWrapper4(void, gldrawarraysinstancedangle, GLenum, mode, GLint, first, GLsizei, count, GLsizei, primcount); \ @@ -3661,10 +3665,6 @@ HookWrapper1(GLsizei, glgetframebufferpixellocalstoragesizeext, GLuint, target); \ HookWrapper3(void, glclearpixellocalstorageuiext, GLsizei, offset, GLsizei, n, const GLuint *, values); \ HookWrapper9(void, gltexpagecommitmentext, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, commit); \ - HookWrapper4(void, gltexstorage1dext, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width); \ - HookWrapper5(void, gltexstorage2dext, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height); \ - HookWrapper6(void, gltexstorage3dext, GLenum, target, GLsizei, levels, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth); \ - HookWrapper8(void, gltextureviewext, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \ HookWrapper3(void, glwindowrectanglesext, GLenum, mode, GLsizei, count, const GLint *, box); \ HookWrapper1(GLuint64, glgettexturehandleimg, GLuint, texture); \ HookWrapper2(GLuint64, glgettexturesamplerhandleimg, GLuint, texture, GLuint, sampler); \ @@ -5541,15 +5541,9 @@ HandleUnsupported(PFNGLGETNUNIFORMUIVKHRPROC, glgetnuniformuivkhr); \ HandleUnsupported(PFNGLEGLIMAGETARGETTEXTURE2DOESPROC, gleglimagetargettexture2does); \ HandleUnsupported(PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC, gleglimagetargetrenderbufferstorageoes); \ - HandleUnsupported(PFNGLBLENDEQUATIONIOESPROC, glblendequationioes); \ - HandleUnsupported(PFNGLBLENDEQUATIONSEPARATEIOESPROC, glblendequationseparateioes); \ - HandleUnsupported(PFNGLBLENDFUNCIOESPROC, glblendfuncioes); \ - HandleUnsupported(PFNGLBLENDFUNCSEPARATEIOESPROC, glblendfuncseparateioes); \ - HandleUnsupported(PFNGLCOLORMASKIOESPROC, glcolormaskioes); \ HandleUnsupported(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC, gldrawelementsinstancedbasevertexoes); \ HandleUnsupported(PFNGLGETPROGRAMBINARYOESPROC, glgetprogrambinaryoes); \ HandleUnsupported(PFNGLPROGRAMBINARYOESPROC, glprogrambinaryoes); \ - HandleUnsupported(PFNGLTEXTUREVIEWOESPROC, gltextureviewoes); \ HandleUnsupported(PFNGLBLITFRAMEBUFFERANGLEPROC, glblitframebufferangle); \ HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC, glrenderbufferstoragemultisampleangle); \ HandleUnsupported(PFNGLDRAWARRAYSINSTANCEDANGLEPROC, gldrawarraysinstancedangle); \ @@ -5600,10 +5594,6 @@ HandleUnsupported(PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC, glgetframebufferpixellocalstoragesizeext); \ HandleUnsupported(PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC, glclearpixellocalstorageuiext); \ HandleUnsupported(PFNGLTEXPAGECOMMITMENTEXTPROC, gltexpagecommitmentext); \ - HandleUnsupported(PFNGLTEXSTORAGE1DEXTPROC, gltexstorage1dext); \ - HandleUnsupported(PFNGLTEXSTORAGE2DEXTPROC, gltexstorage2dext); \ - HandleUnsupported(PFNGLTEXSTORAGE3DEXTPROC, gltexstorage3dext); \ - HandleUnsupported(PFNGLTEXTUREVIEWEXTPROC, gltextureviewext); \ HandleUnsupported(PFNGLWINDOWRECTANGLESEXTPROC, glwindowrectanglesext); \ HandleUnsupported(PFNGLGETTEXTUREHANDLEIMGPROC, glgettexturehandleimg); \ HandleUnsupported(PFNGLGETTEXTURESAMPLERHANDLEIMGPROC, glgettexturesamplerhandleimg); \