diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index 23fa4163e..019e2fba6 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -337,6 +337,7 @@ WrappedOpenGL::WrappedOpenGL(const char *logfile, const GLHookSet &funcs) glExts.push_back("GL_ARB_internalformat_query"); glExts.push_back("GL_ARB_internalformat_query2"); glExts.push_back("GL_ARB_ES2_compatibility"); + glExts.push_back("GL_ARB_ES3_compatibility"); glExts.push_back("GL_EXT_texture_filter_anisotropic"); glExts.push_back("GL_EXT_texture_sRGB_decode"); glExts.push_back("GL_EXT_texture_compression_s3tc"); @@ -351,7 +352,6 @@ WrappedOpenGL::WrappedOpenGL(const char *logfile, const GLHookSet &funcs) glExts.push_back("GL_ARB_multi_draw_indirect"); glExts.push_back("GL_ARB_compute_shader"); glExts.push_back("GL_ARB_explicit_uniform_location"); - glExts.push_back("GL_ARB_ES3_compatibility"); glExts.push_back("GL_ARB_texture_buffer_range"); glExts.push_back("GL_ARB_copy_image"); glExts.push_back("GL_ARB_texture_query_levels"); @@ -366,7 +366,27 @@ WrappedOpenGL::WrappedOpenGL(const char *logfile, const GLHookSet &funcs) glExts.push_back("GL_ARB_seamless_cubemap_per_texture"); glExts.push_back("GL_ARB_multi_bind"); glExts.push_back("GL_KHR_debug"); - + glExts.push_back("GL_EXT_depth_bounds_test"); + glExts.push_back("GL_EXT_pixel_buffer_object"); + glExts.push_back("GL_ARB_pixel_buffer_object"); + glExts.push_back("GL_ARB_sync"); + glExts.push_back("GL_ARB_timer_query"); + glExts.push_back("GL_EXT_timer_query"); + glExts.push_back("GL_ARB_framebuffer_object"); + glExts.push_back("GL_EXT_framebuffer_object"); + glExts.push_back("GL_EXT_framebuffer_blit"); + glExts.push_back("GL_ARB_texture_multisample"); + glExts.push_back("GL_ARB_texture_compression"); + glExts.push_back("GL_ARB_sampler_objects"); + glExts.push_back("GL_ARB_map_buffer_range"); + glExts.push_back("GL_ARB_draw_elements_base_vertex"); + glExts.push_back("GL_ARB_get_program_binary"); + glExts.push_back("GL_ARB_uniform_buffer_object"); + glExts.push_back("GL_ARB_occlusion_query"); + glExts.push_back("GL_ARB_vertex_array_object"); + glExts.push_back("GL_ARB_vertex_buffer_object"); + glExts.push_back("GL_ARB_vertex_program"); + #if !defined(_RELEASE) CaptureOptions &opts = (CaptureOptions &)RenderDoc::Inst().GetCaptureOptions(); opts.RefAllResources = true; diff --git a/renderdoc/driver/gl/gl_hookset.h b/renderdoc/driver/gl/gl_hookset.h index 0bc0ff566..c2f75d213 100644 --- a/renderdoc/driver/gl/gl_hookset.h +++ b/renderdoc/driver/gl/gl_hookset.h @@ -101,12 +101,12 @@ struct GLHookSet PFNGLTEXBUFFERPROC glTexBuffer; PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample; PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample; - PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D; - PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D; - PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D; - PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D; - PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D; - PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D; + PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D; // aliases glCompressedTexImage1DARB + PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D; // aliases glCompressedTexImage2DARB + PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D; // aliases glCompressedTexImage3DARB + PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D; // aliases glCompressedTexSubImage1DARB + PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D; // aliases glCompressedTexSubImage2DARB + PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D; // aliases glCompressedTexSubImage3DARB PFNGLTEXBUFFERRANGEPROC glTexBufferRange; PFNGLTEXTUREVIEWPROC glTextureView; PFNGLTEXPARAMETERIIVPROC glTexParameterIiv; @@ -120,9 +120,9 @@ struct GLHookSet PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D; PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ; PFNGLGETINTERNALFORMATI64VPROC glGetInternalformati64v; - PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv; + PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv; // aliases glGetBufferParameterivARB PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v; - PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv; + PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv; // aliases glGetBufferPointervARB PFNGLGETFRAGDATAINDEXPROC glGetFragDataIndex; PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation; PFNGLGETSTRINGIPROC glGetStringi; @@ -158,16 +158,16 @@ struct GLHookSet PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv; PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv; PFNGLGETQUERYINDEXEDIVPROC glGetQueryIndexediv; - PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v; - PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv; - PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v; - PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv; - PFNGLGETQUERYIVPROC glGetQueryiv; + PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v; // aliases glGetQueryObjectui64vEXT + PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv; // aliases glGetQueryObjectuivARB + PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v; // aliases glGetQueryObjecti64vEXT + PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv; // aliases glGetQueryObjectivARB + PFNGLGETQUERYIVPROC glGetQueryiv; // aliases glGetQueryivARB PFNGLGETSYNCIVPROC glGetSynciv; - PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData; + PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData; // aliases glGetBufferSubDataARB PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv; PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv; - PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage; + PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage; // aliases glGetCompressedTexImageARB PFNGLGETNCOMPRESSEDTEXIMAGEPROC glGetnCompressedTexImage; // aliases glGetnCompressedTexImageARB PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glGetCompressedTextureImage; PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glGetCompressedTextureSubImage; @@ -288,11 +288,11 @@ struct GLHookSet PFNGLENABLEIPROC glEnablei; PFNGLDISABLEIPROC glDisablei; PFNGLISENABLEDIPROC glIsEnabledi; - PFNGLISBUFFERPROC glIsBuffer; + PFNGLISBUFFERPROC glIsBuffer; // aliases glIsBufferARB PFNGLISFRAMEBUFFERPROC glIsFramebuffer; PFNGLISPROGRAMPROC glIsProgram; PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline; - PFNGLISQUERYPROC glIsQuery; + PFNGLISQUERYPROC glIsQuery; // aliases glIsQueryARB PFNGLISRENDERBUFFERPROC glIsRenderbuffer; PFNGLISSAMPLERPROC glIsSampler; PFNGLISSHADERPROC glIsShader; @@ -321,18 +321,18 @@ struct GLHookSet PFNGLCLIENTWAITSYNCPROC glClientWaitSync; PFNGLWAITSYNCPROC glWaitSync; PFNGLDELETESYNCPROC glDeleteSync; - PFNGLGENQUERIESPROC glGenQueries; - PFNGLBEGINQUERYPROC glBeginQuery; + PFNGLGENQUERIESPROC glGenQueries; // aliases glGenQueriesARB + PFNGLBEGINQUERYPROC glBeginQuery; // aliases glBeginQueryARB PFNGLBEGINQUERYINDEXEDPROC glBeginQueryIndexed; - PFNGLENDQUERYPROC glEndQuery; + PFNGLENDQUERYPROC glEndQuery; // aliases glEndQueryARB PFNGLENDQUERYINDEXEDPROC glEndQueryIndexed; PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender; PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender; PFNGLQUERYCOUNTERPROC glQueryCounter; - PFNGLDELETEQUERIESPROC glDeleteQueries; + PFNGLDELETEQUERIESPROC glDeleteQueries; // aliases glDeleteQueriesARB PFNGLBUFFERDATAPROC glBufferData; // aliases glBufferDataARB PFNGLBUFFERSTORAGEPROC glBufferStorage; - PFNGLBUFFERSUBDATAPROC glBufferSubData; + PFNGLBUFFERSUBDATAPROC glBufferSubData; // aliases glBufferSubDataARB PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData; PFNGLBINDBUFFERBASEPROC glBindBufferBase; PFNGLBINDBUFFERRANGEPROC glBindBufferRange; diff --git a/renderdoc/driver/gl/gl_hookset_defs.h b/renderdoc/driver/gl/gl_hookset_defs.h index 832253997..cd3166689 100644 --- a/renderdoc/driver/gl/gl_hookset_defs.h +++ b/renderdoc/driver/gl/gl_hookset_defs.h @@ -106,11 +106,17 @@ HookExtension(PFNGLTEXIMAGE2DMULTISAMPLEPROC, glTexImage2DMultisample); \ HookExtension(PFNGLTEXIMAGE3DMULTISAMPLEPROC, glTexImage3DMultisample); \ HookExtension(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE1DPROC, glCompressedTexImage1D, glCompressedTexImage1DARB); \ HookExtension(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE2DPROC, glCompressedTexImage2D, glCompressedTexImage2DARB); \ HookExtension(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXIMAGE3DPROC, glCompressedTexImage3D, glCompressedTexImage3DARB); \ HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC, glCompressedTexSubImage1D, glCompressedTexSubImage1DARB); \ HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC, glCompressedTexSubImage2D, glCompressedTexSubImage2DARB); \ HookExtension(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D); \ + HookExtensionAlias(PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC, glCompressedTexSubImage3D, glCompressedTexSubImage3DARB); \ HookExtension(PFNGLTEXBUFFERRANGEPROC, glTexBufferRange); \ HookExtension(PFNGLTEXTUREVIEWPROC, glTextureView); \ HookExtension(PFNGLTEXPARAMETERIIVPROC, glTexParameterIiv); \ @@ -125,8 +131,10 @@ HookExtension(PFNGLGETINTERNALFORMATIVPROC, glGetInternalformativ); \ HookExtension(PFNGLGETINTERNALFORMATI64VPROC, glGetInternalformati64v); \ HookExtension(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv); \ + HookExtensionAlias(PFNGLGETBUFFERPARAMETERIVPROC, glGetBufferParameteriv, glGetBufferParameterivARB); \ HookExtension(PFNGLGETBUFFERPARAMETERI64VPROC, glGetBufferParameteri64v); \ HookExtension(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv); \ + HookExtensionAlias(PFNGLGETBUFFERPOINTERVPROC, glGetBufferPointerv, glGetBufferPointervARB); \ HookExtension(PFNGLGETFRAGDATAINDEXPROC, glGetFragDataIndex); \ HookExtension(PFNGLGETFRAGDATALOCATIONPROC, glGetFragDataLocation); \ HookExtension(PFNGLGETSTRINGIPROC, glGetStringi); \ @@ -165,15 +173,22 @@ HookExtension(PFNGLGETMULTISAMPLEFVPROC, glGetMultisamplefv); \ HookExtension(PFNGLGETQUERYINDEXEDIVPROC, glGetQueryIndexediv); \ HookExtension(PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v); \ + HookExtensionAlias(PFNGLGETQUERYOBJECTUI64VPROC, glGetQueryObjectui64v, glGetQueryObjectui64vEXT); \ HookExtension(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv); \ + HookExtensionAlias(PFNGLGETQUERYOBJECTUIVPROC, glGetQueryObjectuiv, glGetQueryObjectuivARB); \ HookExtension(PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v); \ + HookExtensionAlias(PFNGLGETQUERYOBJECTI64VPROC, glGetQueryObjecti64v, glGetQueryObjecti64vEXT); \ HookExtension(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv); \ + HookExtensionAlias(PFNGLGETQUERYOBJECTIVPROC, glGetQueryObjectiv, glGetQueryObjectivARB); \ HookExtension(PFNGLGETQUERYIVPROC, glGetQueryiv); \ + HookExtensionAlias(PFNGLGETQUERYIVPROC, glGetQueryiv, glGetQueryivARB); \ HookExtension(PFNGLGETSYNCIVPROC, glGetSynciv); \ HookExtension(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData); \ + HookExtensionAlias(PFNGLGETBUFFERSUBDATAPROC, glGetBufferSubData, glGetBufferSubDataARB); \ HookExtension(PFNGLGETVERTEXATTRIBIVPROC, glGetVertexAttribiv); \ HookExtension(PFNGLGETVERTEXATTRIBPOINTERVPROC, glGetVertexAttribPointerv); \ HookExtension(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage); \ + HookExtensionAlias(PFNGLGETCOMPRESSEDTEXIMAGEPROC, glGetCompressedTexImage, glGetCompressedTexImageARB); \ HookExtension(PFNGLGETNCOMPRESSEDTEXIMAGEPROC, glGetnCompressedTexImage); \ HookExtensionAlias(PFNGLGETNCOMPRESSEDTEXIMAGEPROC, glGetnCompressedTexImage, glGetnCompressedTexImageARB); \ HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC, glGetCompressedTextureImage); \ @@ -313,10 +328,12 @@ HookExtension(PFNGLDISABLEIPROC, glDisablei); \ HookExtension(PFNGLISENABLEDIPROC, glIsEnabledi); \ HookExtension(PFNGLISBUFFERPROC, glIsBuffer); \ + HookExtensionAlias(PFNGLISBUFFERPROC, glIsBuffer, glIsBufferARB); \ HookExtension(PFNGLISFRAMEBUFFERPROC, glIsFramebuffer); \ HookExtension(PFNGLISPROGRAMPROC, glIsProgram); \ HookExtension(PFNGLISPROGRAMPIPELINEPROC, glIsProgramPipeline); \ HookExtension(PFNGLISQUERYPROC, glIsQuery); \ + HookExtensionAlias(PFNGLISQUERYPROC, glIsQuery, glIsQueryARB); \ HookExtension(PFNGLISRENDERBUFFERPROC, glIsRenderbuffer); \ HookExtension(PFNGLISSAMPLERPROC, glIsSampler); \ HookExtension(PFNGLISSHADERPROC, glIsShader); \ @@ -348,18 +365,23 @@ HookExtension(PFNGLWAITSYNCPROC, glWaitSync); \ HookExtension(PFNGLDELETESYNCPROC, glDeleteSync); \ HookExtension(PFNGLGENQUERIESPROC, glGenQueries); \ + HookExtensionAlias(PFNGLGENQUERIESPROC, glGenQueries, glGenQueriesARB); \ HookExtension(PFNGLBEGINQUERYPROC, glBeginQuery); \ + HookExtensionAlias(PFNGLBEGINQUERYPROC, glBeginQuery, glBeginQueryARB); \ HookExtension(PFNGLBEGINQUERYINDEXEDPROC, glBeginQueryIndexed); \ HookExtension(PFNGLENDQUERYPROC, glEndQuery); \ + HookExtensionAlias(PFNGLENDQUERYPROC, glEndQuery, glEndQueryARB); \ HookExtension(PFNGLENDQUERYINDEXEDPROC, glEndQueryIndexed); \ HookExtension(PFNGLBEGINCONDITIONALRENDERPROC, glBeginConditionalRender); \ HookExtension(PFNGLENDCONDITIONALRENDERPROC, glEndConditionalRender); \ HookExtension(PFNGLQUERYCOUNTERPROC, glQueryCounter); \ HookExtension(PFNGLDELETEQUERIESPROC, glDeleteQueries); \ + HookExtensionAlias(PFNGLDELETEQUERIESPROC, glDeleteQueries, glDeleteQueriesARB); \ HookExtension(PFNGLBUFFERDATAPROC, glBufferData); \ HookExtensionAlias(PFNGLBUFFERDATAPROC, glBufferData, glBufferDataARB); \ HookExtension(PFNGLBUFFERSTORAGEPROC, glBufferStorage); \ HookExtension(PFNGLBUFFERSUBDATAPROC, glBufferSubData); \ + HookExtensionAlias(PFNGLBUFFERSUBDATAPROC, glBufferSubData, glBufferSubDataARB); \ HookExtension(PFNGLCOPYBUFFERSUBDATAPROC, glCopyBufferSubData); \ HookExtension(PFNGLBINDBUFFERBASEPROC, glBindBufferBase); \ HookExtension(PFNGLBINDBUFFERRANGEPROC, glBindBufferRange); \ diff --git a/renderdoc/hooks/gl_win32_hooks.cpp b/renderdoc/hooks/gl_win32_hooks.cpp index 3433af68f..bfcfec9de 100644 --- a/renderdoc/hooks/gl_win32_hooks.cpp +++ b/renderdoc/hooks/gl_win32_hooks.cpp @@ -208,6 +208,8 @@ class OpenGLHook : LibraryHook wglExts.push_back("WGL_ARB_create_context"); wglExts.push_back("WGL_ARB_create_context_profile"); wglExts.push_back("WGL_ARB_pixel_format"); + wglExts.push_back("WGL_EXT_swap_control"); + wglExts.push_back("WGL_EXT_swap_control_tear"); merge(wglExts, wglExtsString, ' ');