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);
Official Khronos documentation