Commit 5d5253a3 by Geoff Lang Committed by Commit Bot

Clean up usage of EXT_debug_marker and KHR_debug in the backends.

In RendererGL, the EXT_debug_marker functions were calling the KHR_debug entry points, now they fall back only when EXT_debug_marker is missing. Separated the ContextImpl methods for the two extensions. BUG=781164 Change-Id: I615b5965b705e55eb730ebefa6e27e0ee6d86c31 Reviewed-on: https://chromium-review.googlesource.com/786337Reviewed-by: 's avatarYuly Novikov <ynovikov@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent 1f73b7c6
...@@ -3936,11 +3936,13 @@ void Context::pushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLc ...@@ -3936,11 +3936,13 @@ void Context::pushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLc
{ {
std::string msg(message, (length > 0) ? static_cast<size_t>(length) : strlen(message)); std::string msg(message, (length > 0) ? static_cast<size_t>(length) : strlen(message));
mGLState.getDebug().pushGroup(source, id, std::move(msg)); mGLState.getDebug().pushGroup(source, id, std::move(msg));
mImplementation->pushDebugGroup(source, id, length, message);
} }
void Context::popDebugGroup() void Context::popDebugGroup()
{ {
mGLState.getDebug().popGroup(); mGLState.getDebug().popGroup();
mImplementation->popDebugGroup();
} }
void Context::bufferData(BufferBinding target, GLsizeiptr size, const void *data, BufferUsage usage) void Context::bufferData(BufferBinding target, GLsizeiptr size, const void *data, BufferUsage usage)
......
...@@ -130,11 +130,15 @@ class ContextImpl : public GLImplFactory ...@@ -130,11 +130,15 @@ class ContextImpl : public GLImplFactory
virtual std::string getVendorString() const = 0; virtual std::string getVendorString() const = 0;
virtual std::string getRendererDescription() const = 0; virtual std::string getRendererDescription() const = 0;
// Debug markers. // EXT_debug_marker
virtual void insertEventMarker(GLsizei length, const char *marker) = 0; virtual void insertEventMarker(GLsizei length, const char *marker) = 0;
virtual void pushGroupMarker(GLsizei length, const char *marker) = 0; virtual void pushGroupMarker(GLsizei length, const char *marker) = 0;
virtual void popGroupMarker() = 0; virtual void popGroupMarker() = 0;
// KHR_debug
virtual void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message) = 0;
virtual void popDebugGroup() = 0;
// State sync with dirty bits. // State sync with dirty bits.
virtual void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) = 0; virtual void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) = 0;
......
...@@ -261,6 +261,18 @@ void Context11::popGroupMarker() ...@@ -261,6 +261,18 @@ void Context11::popGroupMarker()
mRenderer->getAnnotator()->endEvent(); mRenderer->getAnnotator()->endEvent();
} }
void Context11::pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message)
{
// Fall through to the EXT_debug_marker functions
pushGroupMarker(length, message);
}
void Context11::popDebugGroup()
{
// Fall through to the EXT_debug_marker functions
popGroupMarker();
}
void Context11::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) void Context11::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits)
{ {
mRenderer->getStateManager()->syncState(context, dirtyBits); mRenderer->getStateManager()->syncState(context, dirtyBits);
......
...@@ -110,11 +110,15 @@ class Context11 : public ContextImpl ...@@ -110,11 +110,15 @@ class Context11 : public ContextImpl
std::string getVendorString() const override; std::string getVendorString() const override;
std::string getRendererDescription() const override; std::string getRendererDescription() const override;
// Debug markers. // EXT_debug_marker
void insertEventMarker(GLsizei length, const char *marker) override; void insertEventMarker(GLsizei length, const char *marker) override;
void pushGroupMarker(GLsizei length, const char *marker) override; void pushGroupMarker(GLsizei length, const char *marker) override;
void popGroupMarker() override; void popGroupMarker() override;
// KHR_debug
void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message) override;
void popDebugGroup() override;
// State sync with dirty bits. // State sync with dirty bits.
void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override; void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override;
......
...@@ -240,6 +240,18 @@ void Context9::popGroupMarker() ...@@ -240,6 +240,18 @@ void Context9::popGroupMarker()
mRenderer->getAnnotator()->endEvent(); mRenderer->getAnnotator()->endEvent();
} }
void Context9::pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message)
{
// Fall through to the EXT_debug_marker functions
pushGroupMarker(length, message);
}
void Context9::popDebugGroup()
{
// Fall through to the EXT_debug_marker functions
popGroupMarker();
}
void Context9::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) void Context9::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits)
{ {
mRenderer->getStateManager()->syncState(mState.getState(), dirtyBits); mRenderer->getStateManager()->syncState(mState.getState(), dirtyBits);
......
...@@ -110,11 +110,15 @@ class Context9 : public ContextImpl ...@@ -110,11 +110,15 @@ class Context9 : public ContextImpl
std::string getVendorString() const override; std::string getVendorString() const override;
std::string getRendererDescription() const override; std::string getRendererDescription() const override;
// Debug markers. // EXT_debug_marker
void insertEventMarker(GLsizei length, const char *marker) override; void insertEventMarker(GLsizei length, const char *marker) override;
void pushGroupMarker(GLsizei length, const char *marker) override; void pushGroupMarker(GLsizei length, const char *marker) override;
void popGroupMarker() override; void popGroupMarker() override;
// KHR_debug
void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message) override;
void popDebugGroup() override;
// State sync with dirty bits. // State sync with dirty bits.
void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override; void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override;
......
...@@ -341,6 +341,16 @@ void ContextGL::popGroupMarker() ...@@ -341,6 +341,16 @@ void ContextGL::popGroupMarker()
mRenderer->popGroupMarker(); mRenderer->popGroupMarker();
} }
void ContextGL::pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message)
{
mRenderer->pushDebugGroup(source, id, length, message);
}
void ContextGL::popDebugGroup()
{
mRenderer->popDebugGroup();
}
void ContextGL::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) void ContextGL::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits)
{ {
mRenderer->getStateManager()->syncState(context, dirtyBits); mRenderer->getStateManager()->syncState(context, dirtyBits);
......
...@@ -162,11 +162,15 @@ class ContextGL : public ContextImpl ...@@ -162,11 +162,15 @@ class ContextGL : public ContextImpl
std::string getVendorString() const override; std::string getVendorString() const override;
std::string getRendererDescription() const override; std::string getRendererDescription() const override;
// Debug markers. // EXT_debug_marker
void insertEventMarker(GLsizei length, const char *marker) override; void insertEventMarker(GLsizei length, const char *marker) override;
void pushGroupMarker(GLsizei length, const char *marker) override; void pushGroupMarker(GLsizei length, const char *marker) override;
void popGroupMarker() override; void popGroupMarker() override;
// KHR_debug
void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message) override;
void popDebugGroup() override;
// State sync with dirty bits. // State sync with dirty bits.
void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override; void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override;
......
...@@ -2624,6 +2624,13 @@ void DispatchTableGL::initProcsSharedExtensions(const std::set<std::string> &ext ...@@ -2624,6 +2624,13 @@ void DispatchTableGL::initProcsSharedExtensions(const std::set<std::string> &ext
ASSIGN("glGetObjectLabelEXT", getObjectLabel); ASSIGN("glGetObjectLabelEXT", getObjectLabel);
} }
if (extensions.count("GL_EXT_debug_marker") != 0)
{
ASSIGN("glInsertEventMarkerEXT", insertEventMarkerEXT);
ASSIGN("glPopGroupMarkerEXT", popGroupMarkerEXT);
ASSIGN("glPushGroupMarkerEXT", pushGroupMarkerEXT);
}
if (extensions.count("GL_EXT_draw_instanced") != 0) if (extensions.count("GL_EXT_draw_instanced") != 0)
{ {
ASSIGN("glDrawArraysInstancedEXT", drawArraysInstanced); ASSIGN("glDrawArraysInstancedEXT", drawArraysInstanced);
...@@ -5331,6 +5338,13 @@ void DispatchTableGL::initProcsSharedExtensionsNULL(const std::set<std::string> ...@@ -5331,6 +5338,13 @@ void DispatchTableGL::initProcsSharedExtensionsNULL(const std::set<std::string>
getObjectLabel = &glGetObjectLabelNULL; getObjectLabel = &glGetObjectLabelNULL;
} }
if (extensions.count("GL_EXT_debug_marker") != 0)
{
insertEventMarkerEXT = &glInsertEventMarkerEXTNULL;
popGroupMarkerEXT = &glPopGroupMarkerEXTNULL;
pushGroupMarkerEXT = &glPushGroupMarkerEXTNULL;
}
if (extensions.count("GL_EXT_draw_instanced") != 0) if (extensions.count("GL_EXT_draw_instanced") != 0)
{ {
drawArraysInstanced = &glDrawArraysInstancedNULL; drawArraysInstanced = &glDrawArraysInstancedNULL;
......
...@@ -731,6 +731,11 @@ class DispatchTableGL : angle::NonCopyable ...@@ -731,6 +731,11 @@ class DispatchTableGL : angle::NonCopyable
PFNGLBLENDBARRIERPROC blendBarrier = nullptr; PFNGLBLENDBARRIERPROC blendBarrier = nullptr;
PFNGLPRIMITIVEBOUNDINGBOXPROC primitiveBoundingBox = nullptr; PFNGLPRIMITIVEBOUNDINGBOXPROC primitiveBoundingBox = nullptr;
// EXT_debug_marker
PFNGLINSERTEVENTMARKEREXTPROC insertEventMarkerEXT = nullptr;
PFNGLPOPGROUPMARKEREXTPROC popGroupMarkerEXT = nullptr;
PFNGLPUSHGROUPMARKEREXTPROC pushGroupMarkerEXT = nullptr;
// GL_EXT_discard_framebuffer // GL_EXT_discard_framebuffer
PFNGLDISCARDFRAMEBUFFEREXTPROC discardFramebufferEXT = nullptr; PFNGLDISCARDFRAMEBUFFEREXTPROC discardFramebufferEXT = nullptr;
......
...@@ -548,18 +548,69 @@ ContextImpl *RendererGL::createContext(const gl::ContextState &state) ...@@ -548,18 +548,69 @@ ContextImpl *RendererGL::createContext(const gl::ContextState &state)
void RendererGL::insertEventMarker(GLsizei length, const char *marker) void RendererGL::insertEventMarker(GLsizei length, const char *marker)
{ {
mFunctions->debugMessageInsert(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_MARKER, 0, if (mFunctions->insertEventMarkerEXT)
GL_DEBUG_SEVERITY_NOTIFICATION, length, marker); {
mFunctions->insertEventMarkerEXT(length, marker);
}
else if (mFunctions->debugMessageInsert)
{
mFunctions->debugMessageInsert(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_MARKER, 0,
GL_DEBUG_SEVERITY_NOTIFICATION, length, marker);
}
else
{
UNREACHABLE();
}
} }
void RendererGL::pushGroupMarker(GLsizei length, const char *marker) void RendererGL::pushGroupMarker(GLsizei length, const char *marker)
{ {
mFunctions->pushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, length, marker); if (mFunctions->pushGroupMarkerEXT)
{
mFunctions->pushGroupMarkerEXT(length, marker);
}
else if (mFunctions->pushDebugGroup)
{
// Fall back to KHR_debug to implement EXT_debug_marker
mFunctions->pushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, length, marker);
}
else
{
UNREACHABLE();
}
} }
void RendererGL::popGroupMarker() void RendererGL::popGroupMarker()
{ {
mFunctions->popDebugGroup(); if (mFunctions->popGroupMarkerEXT)
{
mFunctions->popGroupMarkerEXT();
}
else if (mFunctions->popDebugGroup)
{
// Fall back to KHR_debug to implement EXT_debug_marker
mFunctions->popDebugGroup();
}
else
{
UNREACHABLE();
}
}
void RendererGL::pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message)
{
if (mFunctions->pushDebugGroup)
{
mFunctions->pushDebugGroup(source, id, length, message);
}
}
void RendererGL::popDebugGroup()
{
if (mFunctions->popDebugGroup)
{
mFunctions->popDebugGroup();
}
} }
std::string RendererGL::getVendorString() const std::string RendererGL::getVendorString() const
......
...@@ -149,6 +149,10 @@ class RendererGL : angle::NonCopyable ...@@ -149,6 +149,10 @@ class RendererGL : angle::NonCopyable
void pushGroupMarker(GLsizei length, const char *marker); void pushGroupMarker(GLsizei length, const char *marker);
void popGroupMarker(); void popGroupMarker();
// KHR_debug
void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message);
void popDebugGroup();
std::string getVendorString() const; std::string getVendorString() const;
std::string getRendererDescription() const; std::string getRendererDescription() const;
......
...@@ -904,6 +904,13 @@ typedef void(INTERNAL_GL_APIENTRY *PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)(GLenum ...@@ -904,6 +904,13 @@ typedef void(INTERNAL_GL_APIENTRY *PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)(GLenum
GLenum pname, GLenum pname,
GLsizei bufSize, GLsizei bufSize,
GLint *params); GLint *params);
// EXT_debug_marker
typedef void(INTERNAL_GL_APIENTRY *PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length,
const GLchar *marker);
typedef void(INTERNAL_GL_APIENTRY *PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length,
const GLchar *marker);
typedef void(INTERNAL_GL_APIENTRY *PFNGLPOPGROUPMARKEREXTPROC)(void);
} }
#endif // LIBANGLE_RENDERER_GL_FUNCTIONSGLTYPEDEFS_H_ #endif // LIBANGLE_RENDERER_GL_FUNCTIONSGLTYPEDEFS_H_
...@@ -783,5 +783,12 @@ ...@@ -783,5 +783,12 @@
"GL_NV_internalformat_sample_query": "GL_NV_internalformat_sample_query":
[ [
"GetInternalformatSampleivNV" "GetInternalformatSampleivNV"
],
"GL_EXT_debug_marker":
[
"InsertEventMarkerEXT",
"PushGroupMarkerEXT",
"PopGroupMarkerEXT"
] ]
} }
...@@ -1960,6 +1960,10 @@ void INTERNAL_GL_APIENTRY glHintNULL(GLenum target, GLenum mode) ...@@ -1960,6 +1960,10 @@ void INTERNAL_GL_APIENTRY glHintNULL(GLenum target, GLenum mode)
{ {
} }
void INTERNAL_GL_APIENTRY glInsertEventMarkerEXTNULL(GLsizei length, const GLchar *marker)
{
}
void INTERNAL_GL_APIENTRY glInvalidateBufferDataNULL(GLuint buffer) void INTERNAL_GL_APIENTRY glInvalidateBufferDataNULL(GLuint buffer)
{ {
} }
...@@ -2352,6 +2356,10 @@ void INTERNAL_GL_APIENTRY glPopDebugGroupNULL() ...@@ -2352,6 +2356,10 @@ void INTERNAL_GL_APIENTRY glPopDebugGroupNULL()
{ {
} }
void INTERNAL_GL_APIENTRY glPopGroupMarkerEXTNULL()
{
}
void INTERNAL_GL_APIENTRY glPrimitiveBoundingBoxNULL(GLfloat minX, void INTERNAL_GL_APIENTRY glPrimitiveBoundingBoxNULL(GLfloat minX,
GLfloat minY, GLfloat minY,
GLfloat minZ, GLfloat minZ,
...@@ -2742,6 +2750,10 @@ void INTERNAL_GL_APIENTRY glPushDebugGroupNULL(GLenum source, ...@@ -2742,6 +2750,10 @@ void INTERNAL_GL_APIENTRY glPushDebugGroupNULL(GLenum source,
{ {
} }
void INTERNAL_GL_APIENTRY glPushGroupMarkerEXTNULL(GLsizei length, const GLchar *marker)
{
}
void INTERNAL_GL_APIENTRY glQueryCounterNULL(GLuint id, GLenum target) void INTERNAL_GL_APIENTRY glQueryCounterNULL(GLuint id, GLenum target)
{ {
} }
......
...@@ -972,6 +972,7 @@ void INTERNAL_GL_APIENTRY glGetnUniformuivNULL(GLuint program, ...@@ -972,6 +972,7 @@ void INTERNAL_GL_APIENTRY glGetnUniformuivNULL(GLuint program,
GLsizei bufSize, GLsizei bufSize,
GLuint *params); GLuint *params);
void INTERNAL_GL_APIENTRY glHintNULL(GLenum target, GLenum mode); void INTERNAL_GL_APIENTRY glHintNULL(GLenum target, GLenum mode);
void INTERNAL_GL_APIENTRY glInsertEventMarkerEXTNULL(GLsizei length, const GLchar *marker);
void INTERNAL_GL_APIENTRY glInvalidateBufferDataNULL(GLuint buffer); void INTERNAL_GL_APIENTRY glInvalidateBufferDataNULL(GLuint buffer);
void INTERNAL_GL_APIENTRY glInvalidateBufferSubDataNULL(GLuint buffer, void INTERNAL_GL_APIENTRY glInvalidateBufferSubDataNULL(GLuint buffer,
GLintptr offset, GLintptr offset,
...@@ -1133,6 +1134,7 @@ void INTERNAL_GL_APIENTRY glPointSizeNULL(GLfloat size); ...@@ -1133,6 +1134,7 @@ void INTERNAL_GL_APIENTRY glPointSizeNULL(GLfloat size);
void INTERNAL_GL_APIENTRY glPolygonModeNULL(GLenum face, GLenum mode); void INTERNAL_GL_APIENTRY glPolygonModeNULL(GLenum face, GLenum mode);
void INTERNAL_GL_APIENTRY glPolygonOffsetNULL(GLfloat factor, GLfloat units); void INTERNAL_GL_APIENTRY glPolygonOffsetNULL(GLfloat factor, GLfloat units);
void INTERNAL_GL_APIENTRY glPopDebugGroupNULL(); void INTERNAL_GL_APIENTRY glPopDebugGroupNULL();
void INTERNAL_GL_APIENTRY glPopGroupMarkerEXTNULL();
void INTERNAL_GL_APIENTRY glPrimitiveBoundingBoxNULL(GLfloat minX, void INTERNAL_GL_APIENTRY glPrimitiveBoundingBoxNULL(GLfloat minX,
GLfloat minY, GLfloat minY,
GLfloat minZ, GLfloat minZ,
...@@ -1355,6 +1357,7 @@ void INTERNAL_GL_APIENTRY glPushDebugGroupNULL(GLenum source, ...@@ -1355,6 +1357,7 @@ void INTERNAL_GL_APIENTRY glPushDebugGroupNULL(GLenum source,
GLuint id, GLuint id,
GLsizei length, GLsizei length,
const GLchar *message); const GLchar *message);
void INTERNAL_GL_APIENTRY glPushGroupMarkerEXTNULL(GLsizei length, const GLchar *marker);
void INTERNAL_GL_APIENTRY glQueryCounterNULL(GLuint id, GLenum target); void INTERNAL_GL_APIENTRY glQueryCounterNULL(GLuint id, GLenum target);
void INTERNAL_GL_APIENTRY glReadBufferNULL(GLenum src); void INTERNAL_GL_APIENTRY glReadBufferNULL(GLenum src);
void INTERNAL_GL_APIENTRY glReadPixelsNULL(GLint x, void INTERNAL_GL_APIENTRY glReadPixelsNULL(GLint x,
......
...@@ -935,9 +935,12 @@ void GenerateCaps(const FunctionsGL *functions, ...@@ -935,9 +935,12 @@ void GenerateCaps(const FunctionsGL *functions,
extensions->packSubimage = functions->standard == STANDARD_GL_DESKTOP || extensions->packSubimage = functions->standard == STANDARD_GL_DESKTOP ||
functions->isAtLeastGLES(gl::Version(3, 0)) || functions->isAtLeastGLES(gl::Version(3, 0)) ||
functions->hasGLESExtension("GL_NV_pack_subimage"); functions->hasGLESExtension("GL_NV_pack_subimage");
extensions->debugMarker = extensions->debugMarker = functions->isAtLeastGL(gl::Version(4, 3)) ||
functions->isAtLeastGL(gl::Version(4, 3)) || functions->hasGLExtension("GL_KHR_debug") || functions->hasGLExtension("GL_KHR_debug") ||
functions->isAtLeastGLES(gl::Version(3, 2)) || functions->hasGLESExtension("GL_KHR_debug"); functions->hasGLExtension("GL_EXT_debug_marker") ||
functions->isAtLeastGLES(gl::Version(3, 2)) ||
functions->hasGLESExtension("GL_KHR_debug") ||
functions->hasGLESExtension("GL_EXT_debug_marker");
if (functions->isAtLeastGL(gl::Version(3, 3)) || if (functions->isAtLeastGL(gl::Version(3, 3)) ||
functions->hasGLExtension("GL_ARB_timer_query") || functions->hasGLExtension("GL_ARB_timer_query") ||
functions->hasGLESExtension("GL_EXT_disjoint_timer_query")) functions->hasGLESExtension("GL_EXT_disjoint_timer_query"))
......
...@@ -280,6 +280,14 @@ void ContextNULL::popGroupMarker() ...@@ -280,6 +280,14 @@ void ContextNULL::popGroupMarker()
{ {
} }
void ContextNULL::pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message)
{
}
void ContextNULL::popDebugGroup()
{
}
void ContextNULL::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) void ContextNULL::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits)
{ {
} }
......
...@@ -132,11 +132,15 @@ class ContextNULL : public ContextImpl ...@@ -132,11 +132,15 @@ class ContextNULL : public ContextImpl
std::string getVendorString() const override; std::string getVendorString() const override;
std::string getRendererDescription() const override; std::string getRendererDescription() const override;
// Debug markers. // EXT_debug_marker
void insertEventMarker(GLsizei length, const char *marker) override; void insertEventMarker(GLsizei length, const char *marker) override;
void pushGroupMarker(GLsizei length, const char *marker) override; void pushGroupMarker(GLsizei length, const char *marker) override;
void popGroupMarker() override; void popGroupMarker() override;
// KHR_debug
void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message) override;
void popDebugGroup() override;
// State sync with dirty bits. // State sync with dirty bits.
void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override; void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override;
......
...@@ -503,6 +503,16 @@ void ContextVk::popGroupMarker() ...@@ -503,6 +503,16 @@ void ContextVk::popGroupMarker()
UNIMPLEMENTED(); UNIMPLEMENTED();
} }
void ContextVk::pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message)
{
UNIMPLEMENTED();
}
void ContextVk::popDebugGroup()
{
UNIMPLEMENTED();
}
void ContextVk::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) void ContextVk::syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits)
{ {
if (dirtyBits.any()) if (dirtyBits.any())
......
...@@ -77,11 +77,15 @@ class ContextVk : public ContextImpl, public ResourceVk ...@@ -77,11 +77,15 @@ class ContextVk : public ContextImpl, public ResourceVk
std::string getVendorString() const override; std::string getVendorString() const override;
std::string getRendererDescription() const override; std::string getRendererDescription() const override;
// Debug markers. // EXT_debug_marker
void insertEventMarker(GLsizei length, const char *marker) override; void insertEventMarker(GLsizei length, const char *marker) override;
void pushGroupMarker(GLsizei length, const char *marker) override; void pushGroupMarker(GLsizei length, const char *marker) override;
void popGroupMarker() override; void popGroupMarker() override;
// KHR_debug
void pushDebugGroup(GLenum source, GLuint id, GLsizei length, const char *message) override;
void popDebugGroup() override;
// State sync with dirty bits. // State sync with dirty bits.
void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override; void syncState(const gl::Context *context, const gl::State::DirtyBits &dirtyBits) override;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment