From fa071a6ca51fcb149c7f820cceec7c61917a6359 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 27 Oct 2017 17:12:29 +0100 Subject: [PATCH] Allow specifying source/id/severity when adding GL markers --- renderdoc/driver/gl/gl_common.cpp | 13 ++++++------- renderdoc/driver/gl/gl_common.h | 9 ++++++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/renderdoc/driver/gl/gl_common.cpp b/renderdoc/driver/gl/gl_common.cpp index 12fcb38db..dfe746cc3 100644 --- a/renderdoc/driver/gl/gl_common.cpp +++ b/renderdoc/driver/gl/gl_common.cpp @@ -737,9 +737,9 @@ void DoVendorChecks(const GLHookSet &gl, GLPlatform &platform, GLWindowingData c const GLHookSet *GLMarkerRegion::gl; -GLMarkerRegion::GLMarkerRegion(const std::string &marker) +GLMarkerRegion::GLMarkerRegion(const std::string &marker, GLenum source, GLuint id) { - Begin(marker); + Begin(marker, source, id); } GLMarkerRegion::~GLMarkerRegion() @@ -747,21 +747,20 @@ GLMarkerRegion::~GLMarkerRegion() End(); } -void GLMarkerRegion::Begin(const std::string &marker) +void GLMarkerRegion::Begin(const std::string &marker, GLenum source, GLuint id) { if(gl == NULL || !HasExt[KHR_debug] || !gl->glPushDebugGroup) return; - gl->glPushDebugGroup(eGL_DEBUG_SOURCE_APPLICATION, 0, -1, marker.c_str()); + gl->glPushDebugGroup(source, id, -1, marker.c_str()); } -void GLMarkerRegion::Set(const std::string &marker) +void GLMarkerRegion::Set(const std::string &marker, GLenum source, GLuint id, GLenum severity) { if(gl == NULL || !HasExt[KHR_debug] || !gl->glDebugMessageInsert) return; - gl->glDebugMessageInsert(eGL_DEBUG_SOURCE_APPLICATION, eGL_DEBUG_TYPE_MARKER, 0, - eGL_DEBUG_SEVERITY_NOTIFICATION, -1, marker.c_str()); + gl->glDebugMessageInsert(source, eGL_DEBUG_TYPE_MARKER, id, severity, -1, marker.c_str()); } void GLMarkerRegion::End() diff --git a/renderdoc/driver/gl/gl_common.h b/renderdoc/driver/gl/gl_common.h index d278417a3..9669f4513 100644 --- a/renderdoc/driver/gl/gl_common.h +++ b/renderdoc/driver/gl/gl_common.h @@ -248,11 +248,14 @@ struct GLHookSet; // replay only class for handling marker regions struct GLMarkerRegion { - GLMarkerRegion(const std::string &marker); + GLMarkerRegion(const std::string &marker, GLenum source = eGL_DEBUG_SOURCE_APPLICATION, + GLuint id = 0); ~GLMarkerRegion(); - static void Begin(const std::string &marker); - static void Set(const std::string &marker); + static void Begin(const std::string &marker, GLenum source = eGL_DEBUG_SOURCE_APPLICATION, + GLuint id = 0); + static void Set(const std::string &marker, GLenum source = eGL_DEBUG_SOURCE_APPLICATION, + GLuint id = 0, GLenum severity = eGL_DEBUG_SEVERITY_NOTIFICATION); static void End(); static const GLHookSet *gl;