glPushDebugGroup.3G - Man Page

push a named debug group into the command stream

C Specification

void glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const char * message);



The source of the debug message.


The identifier of the message.


The length of the message to be sent to the debug output stream.


The a string containing the message to be sent to the debug output stream.


glPushDebugGroup pushes a debug group described by the string message into the command stream. The value of id specifies the ID of messages generated. The parameter length contains the number of characters in message. If length is negative, it is implied that message contains a null terminated string. The message has the specified source and id, the type GL_DEBUG_TYPE_PUSH_GROUP, and severity GL_DEBUG_SEVERITY_NOTIFICATION. The GL will put a new debug group on top of the debug group stack which inherits the control of the volume of debug output of the debug group previously residing on the top of the debug group stack. Because debug groups are strictly hierarchical, any additional control of the debug output volume will only apply within the active debug group and the debug groups pushed on top of the active debug group.


GL_INVALID_ENUM is generated if the value of source is neither GL_DEBUG_SOURCE_APPLICATION nor GL_DEBUG_SOURCE_THIRD_PARTY.

GL_INVALID_VALUE is generated if length is negative and the number of characters in message, excluding the null-terminator, is not less than the value of GL_MAX_DEBUG_MESSAGE_LENGTH.

Associated Gets

glGet() with argument GL_MAX_DEBUG_MESSAGE_LENGTH.

Version Support

OpenGL Version
Function / Feature Name2.

See Also

glPopDebugGroup(), glObjectLabel(), glObjectPtrLabel().

Referenced By

glGetObjectLabel.3G(3), glGetObjectPtrLabel.3G(3), glGetProgramInterface.3G(3), glObjectLabel.3G(3), glObjectPtrLabel.3G(3), glPopDebugGroup.3G(3).