Hi guys, As I'm yet to receive feedback I thought I'd explain more thoroughly what my patch does to make reviewing it easier.
Currently glDebugMessageControlARB() ALWAYS throws an assertion whenever the count parameter it set to anything greater than 0. This is because the gl_enum_to_debug_* functions are called twice which means that type, severity and source are ALWAYS equal to MESA_DEBUG_*_COUNT I also removed the assert because _mesa_DebugMessageControlARB already does this same test and returns with an GL_INVALID_OPERATION error so the assert would never be true once the extra enum conversion is removed. As this is a bug that stops glDebugMessageControlARB() from working properly I would also say this is probably a good candidate for the stable branches. Thanks for your time, Tim ----- Original Message ----- From: Timothy Arceri <t_arc...@yahoo.com.au> To: mesa-dev@lists.freedesktop.org Cc: Timothy Arceri <t_arc...@yahoo.com.au> Sent: Wednesday, 21 August 2013 4:18 PM Subject: [PATCH] mesa: Fix assertion error with glDebugMessageControl enums were being converted twice resulting in incorrect values. The extra conversion has been remove and the redundant assert is removed also. Signed-off-by: Timothy Arceri <t_arc...@yahoo.com.au> --- src/mesa/main/errors.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c index 5a0758d..cc93d3b 100644 --- a/src/mesa/main/errors.c +++ b/src/mesa/main/errors.c @@ -609,11 +609,6 @@ control_app_messages(struct gl_context *ctx, GLenum esource, GLenum etype, enum mesa_debug_type type = gl_enum_to_debug_type(etype); enum mesa_debug_severity severity = gl_enum_to_debug_severity(eseverity); - if (count) - assert(severity == MESA_DEBUG_SEVERITY_COUNT - && type != MESA_DEBUG_TYPE_COUNT - && source != MESA_DEBUG_SOURCE_COUNT); - for (i = 0; i < count; i++) set_message_state(ctx, source, type, ids[i], enabled); @@ -629,9 +624,6 @@ _mesa_DebugMessageControlARB(GLenum gl_source, GLenum gl_type, GLsizei count, const GLuint *ids, GLboolean enabled) { - enum mesa_debug_source source; - enum mesa_debug_type type; - enum mesa_debug_severity severity; GET_CURRENT_CONTEXT(ctx); if (count < 0) { @@ -651,11 +643,8 @@ _mesa_DebugMessageControlARB(GLenum gl_source, GLenum gl_type, return; } - source = gl_enum_to_debug_source(gl_source); - type = gl_enum_to_debug_type(gl_type); - severity = gl_enum_to_debug_severity(gl_severity); - - control_app_messages(ctx, source, type, severity, count, ids, enabled); + control_app_messages(ctx, gl_source, gl_type, gl_severity, + count, ids, enabled); } void GLAPIENTRY -- 1.8.3.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev