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++.

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);

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to