On 07.07.2016 16:40, Jan Vesely wrote:
On Thu, 2016-07-07 at 09:39 +0200, Nicolai Hähnle wrote:
From: Nicolai Hähnle <nicolai.haeh...@amd.com>
---
src/gallium/include/pipe/p_state.h | 6 ++++++
src/gallium/state_trackers/clover/core/queue.cpp | 5 ++++-
src/mesa/state_tracker/st_debug.c | 5 ++++-
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/gallium/include/pipe/p_state.h
b/src/gallium/include/pipe/p_state.h
index f4bee38..f7bf402 100644
--- a/src/gallium/include/pipe/p_state.h
+++ b/src/gallium/include/pipe/p_state.h
@@ -809,6 +809,12 @@ struct pipe_compute_state
struct pipe_debug_callback
{
/**
+ * When set to \c true, the callback may be called asynchronously
from a
+ * driver-created thread.
+ */
+ bool async;
+
+ /**
* Callback for the driver to report debug/performance/etc
information back
* to the state tracker.
*
diff --git a/src/gallium/state_trackers/clover/core/queue.cpp
b/src/gallium/state_trackers/clover/core/queue.cpp
index 24d71f1..00afdb6 100644
--- a/src/gallium/state_trackers/clover/core/queue.cpp
+++ b/src/gallium/state_trackers/clover/core/queue.cpp
@@ -50,7 +50,10 @@ command_queue::command_queue(clover::context &ctx,
clover::device &dev,
throw error(CL_INVALID_DEVICE);
if (ctx.notify) {
- struct pipe_debug_callback cb = { &debug_notify_callback, this
};
+ struct pipe_debug_callback cb;
+ memset(&cb, 0, sizeof(db));
+ cb.debug_message = &debug_notify_callback;
+ cb.data = this;
I don't think this is necessary, elements that are not mentioned are
initialized to zero, both C(below) and C++.
Yes, but I think it's better to use a form of initialization that does
not depend on the order of variables.
I suppose one could use designated initializers instead, but the pattern
of memset to zero followed by explicit assignment is quite common in
Mesa (and Gallium in particular), so I stuck with that.
Nicolai
Jan
if (pipe->set_debug_callback)
pipe->set_debug_callback(pipe, &cb);
}
diff --git a/src/mesa/state_tracker/st_debug.c
b/src/mesa/state_tracker/st_debug.c
index eaf2549..214e223 100644
--- a/src/mesa/state_tracker/st_debug.c
+++ b/src/mesa/state_tracker/st_debug.c
@@ -172,7 +172,10 @@ st_enable_debug_output(struct st_context *st,
boolean enable)
return;
if (enable) {
- struct pipe_debug_callback cb = { st_debug_message, st };
+ struct pipe_debug_callback cb;
+ memset(&cb, 0, sizeof(cb));
+ cb.debug_message = st_debug_message;
+ cb.data = st;
pipe->set_debug_callback(pipe, &cb);
} else {
pipe->set_debug_callback(pipe, NULL);
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev