diff --git a/renderdoc/driver/gl/gl_driver.h b/renderdoc/driver/gl/gl_driver.h index 88a23f6d3..ed83a48dc 100644 --- a/renderdoc/driver/gl/gl_driver.h +++ b/renderdoc/driver/gl/gl_driver.h @@ -429,6 +429,7 @@ class WrappedOpenGL GLenum glCheckFramebufferStatus(GLenum target); IMPLEMENT_FUNCTION_SERIALISED(void, glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label)); + IMPLEMENT_FUNCTION_SERIALISED(void, glObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label)); IMPLEMENT_FUNCTION_SERIALISED(void, glDebugMessageCallback(GLDEBUGPROC callback, const void *userParam)); IMPLEMENT_FUNCTION_SERIALISED(void, glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)); diff --git a/renderdoc/driver/gl/gl_hookset.h b/renderdoc/driver/gl/gl_hookset.h index 7697793d0..afbe87b18 100644 --- a/renderdoc/driver/gl/gl_hookset.h +++ b/renderdoc/driver/gl/gl_hookset.h @@ -266,6 +266,7 @@ struct GLHookSet PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup; PFNGLPOPDEBUGGROUPPROC glPopDebugGroup; PFNGLOBJECTLABELPROC glObjectLabel; + PFNGLOBJECTPTRLABELPROC glObjectPtrLabel; PFNGLENABLEIPROC glEnablei; PFNGLDISABLEIPROC glDisablei; PFNGLISENABLEDIPROC glIsEnabledi; diff --git a/renderdoc/driver/gl/gl_hookset_defs.h b/renderdoc/driver/gl/gl_hookset_defs.h index 579b490de..530a1e713 100644 --- a/renderdoc/driver/gl/gl_hookset_defs.h +++ b/renderdoc/driver/gl/gl_hookset_defs.h @@ -285,6 +285,7 @@ HookExtension(PFNGLPUSHDEBUGGROUPPROC, glPushDebugGroup); \ HookExtension(PFNGLPOPDEBUGGROUPPROC, glPopDebugGroup); \ HookExtension(PFNGLOBJECTLABELPROC, glObjectLabel); \ + HookExtension(PFNGLOBJECTPTRLABELPROC, glObjectPtrLabel); \ HookExtension(PFNGLENABLEIPROC, glEnablei); \ HookExtension(PFNGLDISABLEIPROC, glDisablei); \ HookExtension(PFNGLISENABLEDIPROC, glIsEnabledi); \ @@ -905,6 +906,7 @@ HookWrapper4(void, glPushDebugGroup, GLenum, source, GLuint, id, GLsizei, length, const GLchar *, message); \ HookWrapper0(void, glPopDebugGroup); \ HookWrapper4(void, glObjectLabel, GLenum, identifier, GLuint, name, GLsizei, length, const GLchar *, label); \ + HookWrapper3(void, glObjectPtrLabel, const void *, ptr, GLsizei, length, const GLchar *, label); \ HookWrapper2(void, glEnablei, GLenum, target, GLuint, index); \ HookWrapper2(void, glDisablei, GLenum, target, GLuint, index); \ HookWrapper2(GLboolean, glIsEnabledi, GLenum, target, GLuint, index); \ diff --git a/renderdoc/driver/gl/wrappers/gl_debug_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_debug_funcs.cpp index 524507c06..c9bbabf14 100644 --- a/renderdoc/driver/gl/wrappers/gl_debug_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_debug_funcs.cpp @@ -81,6 +81,19 @@ void WrappedOpenGL::glObjectLabel(GLenum identifier, GLuint name, GLsizei length } } +void WrappedOpenGL::glObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label) +{ + m_Real.glObjectPtrLabel(ptr, length, label); + + if(m_State >= WRITING) + { + SCOPED_SERIALISE_CONTEXT(OBJECT_LABEL); + ResourceId id = GetResourceManager()->GetSyncID((GLsync)ptr); + Serialise_glObjectLabel(eGL_SYNC_FENCE, GetResourceManager()->GetCurrentResource(id).name, length, label); + + m_DeviceRecord->AddChunk(scope.Get()); + } +} void WrappedOpenGL::glDebugMessageCallback(GLDEBUGPROC callback, const void *userParam) {