Mesa (master): anv: discard all timeline wait/signal value=0

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 11 17:23:26 UTC 2021


Module: Mesa
Branch: master
Commit: 6673c40011c0183953718f45bf0b9b4cba06bee5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6673c40011c0183953718f45bf0b9b4cba06bee5

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Thu Feb 11 17:38:11 2021 +0200

anv: discard all timeline wait/signal value=0

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Fixes: 34f32a6d664807 ("anv: implement VK_KHR_timeline_semaphore")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4277
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8987>

---

 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 220a02441b1..bf6381a332f 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;



More information about the mesa-commit mailing list