mesa: if MESA_DEBUG=context, create a debug context
authorBrian Paul <brianp@vmware.com>
Tue, 15 Nov 2016 22:56:04 +0000 (15:56 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 16 Nov 2016 16:34:10 +0000 (09:34 -0700)
commitcd724208d3e1e3307f84a794f2c1fc83b69ccf8a
tree5c128458c722d6ce5d2b94babdb9bb43acc2b3a1
parentfb17b7f99dc30a1c976f0f99cfe6572c538a381f
mesa: if MESA_DEBUG=context, create a debug context

A number of drivers report useful debug/perf information accessible
through GL_ARB_debug_output and with debug contexts (i.e. setting the
GLX_CONTEXT_DEBUG_BIT_ARB flag).  But few applications actually use
the GL_ARB_debug_output extension.

This change lets one set the MESA_DEBUG env var to "context" to force-set
a debug context and report debug/perf messages to stderr (or whatever
file MESA_LOG_FILE is set to).  This is a useful debugging tool.

The small change in st_api_create_context() is needed so that
st_update_debug_callback() gets called to hook up the driver debug
callbacks when ST_CONTEXT_FLAG_DEBUG was not set, but MESA_DEBUG=context.

v2: use %.*s format string instead of allocating temporary buffer.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/mesa/main/debug.c
src/mesa/main/debug_output.c
src/mesa/main/mtypes.h
src/mesa/state_tracker/st_manager.c