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
signature.asc
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev