From 6673c40011c0183953718f45bf0b9b4cba06bee5 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Thu, 11 Feb 2021 17:38:11 +0200 Subject: [PATCH] anv: discard all timeline wait/signal value=0 Signed-off-by: Lionel Landwerlin Fixes: 34f32a6d664807 ("anv: implement VK_KHR_timeline_semaphore") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4277 Reviewed-by: Jason Ekstrand Part-of: --- src/intel/vulkan/anv_queue.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_queue.c b/src/intel/vulkan/anv_queue.c index 220a024..bf6381a 100644 --- a/src/intel/vulkan/anv_queue.c +++ b/src/intel/vulkan/anv_queue.c @@ -997,18 +997,24 @@ anv_queue_submit_add_in_semaphores(struct anv_queue_submit *submit, } case ANV_SEMAPHORE_TYPE_TIMELINE: + assert(in_values); + if (in_values[i] == 0) + break; result = anv_queue_submit_add_timeline_wait(submit, device, &impl->timeline, - in_values ? in_values[i] : 0); + in_values[i]); if (result != VK_SUCCESS) return result; break; case ANV_SEMAPHORE_TYPE_DRM_SYNCOBJ_TIMELINE: + assert(in_values); + if (in_values[i] == 0) + break; result = anv_queue_submit_add_syncobj(submit, device, impl->syncobj, I915_EXEC_FENCE_WAIT, - in_values ? in_values[i] : 0); + in_values[i]); if (result != VK_SUCCESS) return result; break; @@ -1074,17 +1080,23 @@ anv_queue_submit_add_out_semaphores(struct anv_queue_submit *submit, } case ANV_SEMAPHORE_TYPE_TIMELINE: + assert(out_values); + if (out_values[i] == 0) + break; result = anv_queue_submit_add_timeline_signal(submit, device, &impl->timeline, - out_values ? out_values[i] : 0); + out_values[i]); if (result != VK_SUCCESS) return result; break; case ANV_SEMAPHORE_TYPE_DRM_SYNCOBJ_TIMELINE: + assert(out_values); + if (out_values[i] == 0) + break; result = anv_queue_submit_add_syncobj(submit, device, impl->syncobj, I915_EXEC_FENCE_SIGNAL, - out_values ? out_values[i] : 0); + out_values[i]); if (result != VK_SUCCESS) return result; break; -- 2.7.4