svga: add svga_winsys_context::pipe_debug_callback pointer
authorBrian Paul <brianp@vmware.com>
Wed, 24 Feb 2016 01:02:11 +0000 (18:02 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 21 Mar 2016 19:37:40 +0000 (13:37 -0600)
The svga winsys modules can use this to send debug messages to the
state tracker and Mesa.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>
src/gallium/drivers/svga/svga_pipe_misc.c
src/gallium/drivers/svga/svga_winsys.h

index af9356d7c755744bef816037d0631ab7389f25a2..a26e577d8f74f3891be44dcd20f1505e74968dd7 100644 (file)
@@ -254,10 +254,13 @@ svga_set_debug_callback(struct pipe_context *pipe,
 {
    struct svga_context *svga = svga_context(pipe);
 
-   if (cb)
+   if (cb) {
       svga->debug.callback = *cb;
-   else
+      svga->swc->debug_callback = &svga->debug.callback;
+   } else {
       memset(&svga->debug.callback, 0, sizeof(svga->debug.callback));
+      svga->swc->debug_callback = NULL;
+   }
 }
 
 
index 0ad6b5e6c76dde915795e80dc5584ea2014463c2..7da2c4e77caf1e48a2c91366d4af046aebfa6036 100644 (file)
@@ -48,6 +48,7 @@ struct svga_winsys_screen;
 struct svga_winsys_buffer;
 struct pipe_screen;
 struct pipe_context;
+struct pipe_debug_callback;
 struct pipe_fence_handle;
 struct pipe_resource;
 struct svga_region;
@@ -286,6 +287,9 @@ struct svga_winsys_context
                       struct svga_winsys_surface *surface,
                       struct svga_winsys_gb_shader *shader,
                       unsigned flags);
+
+   /** To report perf/conformance/etc issues to the state tracker */
+   struct pipe_debug_callback *debug_callback;
 };