DebuggingGL 4.3
glDebugMessageControl
Filters which debug messages reach the callback.
Signature
void glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
How it works
Each parameter narrows the filter; GL_DONT_CARE matches everything. The usual setup is to silence GL_DEBUG_SEVERITY_NOTIFICATION messages (buffer placement info, etc.) so real errors stand out.
Parameters
sourceGLenum
Origin: GL_DEBUG_SOURCE_API, _SHADER_COMPILER, _APPLICATION… or GL_DONT_CARE.
typeGLenum
Kind: GL_DEBUG_TYPE_ERROR, _PERFORMANCE, _DEPRECATED_BEHAVIOR… or GL_DONT_CARE.
severityGLenum
Importance, or GL_DONT_CARE.
Common values
- GL_DEBUG_SEVERITY_HIGH
- Errors and undefined behavior.
- GL_DEBUG_SEVERITY_MEDIUM
- Serious performance warnings.
- GL_DEBUG_SEVERITY_LOW
- Minor issues.
- GL_DEBUG_SEVERITY_NOTIFICATION
- Informational noise.
countGLsizei
Number of specific message IDs in ids (0 = all).
idsconst GLuint *
Specific message IDs, or nullptr.
enabledGLboolean
GL_TRUE to enable matching messages, GL_FALSE to mute them.
Example
example.cpp
1glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DEBUG_SEVERITY_NOTIFICATION,
2 0, nullptr, GL_FALSE);