Jan Vesely <jan.ves...@rutgers.edu> writes:

> Trigger waiter condition variable.
> Passes 'events' CTS on turks and carrizo.
> Signed-off-by: Jan Vesely <jan.ves...@rutgers.edu>
> ---
>  src/gallium/state_trackers/clover/core/event.cpp | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/state_trackers/clover/core/event.cpp 
> b/src/gallium/state_trackers/clover/core/event.cpp
> index b7eb33dbfc..0de4e2b984 100644
> --- a/src/gallium/state_trackers/clover/core/event.cpp
> +++ b/src/gallium/state_trackers/clover/core/event.cpp
> @@ -65,8 +65,10 @@ event::abort_self(cl_int status) {
>     std::vector<intrusive_ref<event>> evs;
>  
>     _status = status;
> -   std::swap(_chain, evs);
> +   if (!--_wait_count)

This doesn't look correct to me.  The event is being aborted immediately
regardless of its previous _wait_count.  You probably just want to set
_wait_count to zero here.  The line below should be unconditional for
dependent events to be aborted recursively.

> +      std::swap(_chain, evs);
>  
> +   cv.notify_all();
>     return evs;
>  }
>  
> -- 
> 2.17.1

Attachment: signature.asc
Description: PGP signature

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

Reply via email to