[virglrenderer-devel] [PATCH 04/16] vrend: Improved KHR_debug usage
Jakob Bornecrantz
jakob.bornecrantz at collabora.com
Fri Dec 22 18:57:44 UTC 2017
Make sure we add debug printing to the sub-context
and disable printing when getting the format list.
Signed-off-by: Jakob Bornecrantz <jakob.bornecrantz at collabora.com>
---
src/vrend_renderer.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
index ce04106..e741434 100644
--- a/src/vrend_renderer.c
+++ b/src/vrend_renderer.c
@@ -100,6 +100,7 @@ struct global_renderer_state {
bool inited;
bool use_core_profile;
+ bool have_debug_cb;
bool have_mesa_invert;
bool have_samplers;
bool have_robustness;
@@ -3852,6 +3853,7 @@ int vrend_renderer_init(struct vrend_if_cbs *cbs, uint32_t flags)
glDebugMessageCallback(vrend_debug_cb, NULL);
glEnable(GL_DEBUG_OUTPUT);
glDisable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
+ vrend_state.have_debug_cb = true;
}
vrend_state.gl_major_ver = gl_ver / 10;
@@ -3901,8 +3903,18 @@ int vrend_renderer_init(struct vrend_if_cbs *cbs, uint32_t flags)
vrend_object_set_destroy_callback(VIRGL_OBJECT_SAMPLER_STATE, vrend_destroy_sampler_state_object);
vrend_object_set_destroy_callback(VIRGL_OBJECT_VERTEX_ELEMENTS, vrend_destroy_vertex_elements_object);
+ /* disable for format testing, spews a lot of errors */
+ if (vrend_state.have_debug_cb) {
+ glDisable(GL_DEBUG_OUTPUT);
+ }
+
vrend_build_format_list();
+ /* disable for format testing */
+ if (vrend_state.have_debug_cb) {
+ glDisable(GL_DEBUG_OUTPUT);
+ }
+
vrend_clicbs->destroy_gl_context(gl_context);
list_inithead(&vrend_state.fence_list);
list_inithead(&vrend_state.fence_wait_list);
@@ -6449,6 +6461,13 @@ void vrend_renderer_create_sub_ctx(struct vrend_context *ctx, int sub_ctx_id)
sub->gl_context = vrend_clicbs->create_gl_context(0, &ctx_params);
vrend_clicbs->make_current(0, sub->gl_context);
+ /* enable if vrend_renderer_init function has done it as well */
+ if (vrend_state.have_debug_cb) {
+ glDebugMessageCallback(vrend_debug_cb, NULL);
+ glEnable(GL_DEBUG_OUTPUT);
+ glDisable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
+ }
+
sub->sub_ctx_id = sub_ctx_id;
if (!vrend_state.have_vertex_attrib_binding) {
--
2.11.0
More information about the virglrenderer-devel
mailing list