rusticl/event: we need to call the CL_COMPLETE callback on errors as well

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10673
Fixes: 47a80d7ff4 ("rusticl/event: proper eventing support")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27777>
(cherry picked from commit 36fb256e9a)
This commit is contained in:
Karol Herbst 2024-02-24 19:46:26 +01:00 committed by Eric Engestrom
parent eb30cab5e4
commit 85a62e0498
2 changed files with 6 additions and 3 deletions

View file

@ -2664,7 +2664,7 @@
"description": "rusticl/event: we need to call the CL_COMPLETE callback on errors as well",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "47a80d7ff4f966e3839640efd5f9d75e36af8906",
"notes": null

View file

@ -117,8 +117,11 @@ impl Event {
self.cv.notify_all();
}
if [CL_COMPLETE, CL_RUNNING, CL_SUBMITTED].contains(&(new as u32)) {
if let Some(cbs) = lock.cbs.get_mut(new as usize) {
// on error we need to call the CL_COMPLETE callbacks
let cb_idx = if new < 0 { CL_COMPLETE } else { new as u32 };
if [CL_COMPLETE, CL_RUNNING, CL_SUBMITTED].contains(&cb_idx) {
if let Some(cbs) = lock.cbs.get_mut(cb_idx as usize) {
cbs.drain(..).for_each(|cb| cb.call(self, new));
}
}