<constant>GL_DEBUG_TYPE_PERFORMANCE</constant>, <constant>GL_DEBUG_TYPE_MARKER</constant>, <constant>GL_DEBUG_TYPE_PUSH_GROUP</constant>, <constant>GL_DEBUG_TYPE_POP_GROUP</constant>, or <constant>GL_DEBUG_TYPE_OTHER</constant>.
<parameter>severity</parameter> indicates the severity of the message and may be <constant>GL_DEBUG_SEVERITY_LOW</constant>,
<constant>GL_DEBUG_SEVERITY_MEDIUM</constant>, <constant>GL_DEBUG_SEVERITY_HIGH</constant> or <constant>GL_DEBUG_SEVERITY_NOTIFICATION</constant>.
<parameter>id</parameter> is available for application defined use and may be any value. This value
will be recorded and used to identify the message.
</para>
<para>
<parameter>length</parameter> contains a count of the characters in the character array
whose address is given in <parameter>message</parameter>. If <parameter>length</parameter>
is negative then <parameter>message</parameter> is treated as a null-terminated string.
The length of the message, whether specified explicitly or implicitly, must be less than
or equal to the implementation defined constant <constant>GL_MAX_DEBUG_MESSAGE_LENGTH</constant>.
</para>
</refsect1>
<refsect1id="notes"><title>Notes</title>
<para>
<constant>GL_DEBUG_TYPE_MARKER</constant>, <constant>GL_DEBUG_TYPE_PUSH_GROUP</constant>, <constant>GL_DEBUG_TYPE_POP_GROUP</constant>, and <constant>GL_DEBUG_SEVERITY_NOTIFICATION</constant>
are available only if the GL version is 4.3 or higher.
</para>
</refsect1>
<refsect1id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if any of <parameter>source</parameter>, <parameter>type</parameter>
or <parameter>severity</parameter> is not one of the accepted interface types.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if the length of the message is greater than the
value of <constant>GL_MAX_DEBUG_MESSAGE_LENGTH</constant>.