Mesa (main): radv/amdgpu: Initialize semaphore info with a designated initializer.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue May 10 18:46:17 UTC 2022


Module: Mesa
Branch: main
Commit: 05c372ca5e9f3391f926ee6d589222d88e660fa0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=05c372ca5e9f3391f926ee6d589222d88e660fa0

Author: Timur Kristóf <timur.kristof at gmail.com>
Date:   Thu May  5 21:50:44 2022 +0200

radv/amdgpu: Initialize semaphore info with a designated initializer.

Signed-off-by: Timur Kristóf <timur.kristof at gmail.com>
Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki at gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16361>

---

 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 44 ++++++++++++++++-----------
 1 file changed, 26 insertions(+), 18 deletions(-)

diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index 9a05d0e2749..d32a8bdfd41 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -1347,8 +1347,6 @@ radv_amdgpu_winsys_cs_submit(struct radeon_winsys_ctx *_ctx, uint32_t submit_cou
                              const struct vk_sync_signal *signals, bool can_patch)
 {
    struct radv_amdgpu_winsys *ws = radv_amdgpu_ctx(_ctx)->ws;
-   struct radv_winsys_sem_info sem_info;
-   memset(&sem_info, 0, sizeof(sem_info));
    VkResult result;
    unsigned wait_idx = 0, signal_idx = 0;
 
@@ -1362,18 +1360,13 @@ radv_amdgpu_winsys_cs_submit(struct radeon_winsys_ctx *_ctx, uint32_t submit_cou
       goto out;
    }
 
-   sem_info.wait.points = wait_points;
-   sem_info.wait.syncobj = wait_syncobj;
-   sem_info.signal.points = signal_points;
-   sem_info.signal.syncobj = signal_syncobj;
-
    for (uint32_t i = 0; i < wait_count; ++i) {
       if (waits[i].sync->type == &vk_sync_dummy_type)
          continue;
 
       assert(waits[i].sync->type == &ws->syncobj_sync_type);
-      sem_info.wait.syncobj[wait_idx] = ((struct vk_drm_syncobj *)waits[i].sync)->syncobj;
-      sem_info.wait.points[wait_idx] = waits[i].wait_value;
+      wait_syncobj[wait_idx] = ((struct vk_drm_syncobj *)waits[i].sync)->syncobj;
+      wait_points[wait_idx] = waits[i].wait_value;
       ++wait_idx;
    }
 
@@ -1382,22 +1375,37 @@ radv_amdgpu_winsys_cs_submit(struct radeon_winsys_ctx *_ctx, uint32_t submit_cou
          continue;
 
       assert(signals[i].sync->type == &ws->syncobj_sync_type);
-      sem_info.signal.syncobj[signal_idx] = ((struct vk_drm_syncobj *)signals[i].sync)->syncobj;
-      sem_info.signal.points[signal_idx] = signals[i].signal_value;
+      signal_syncobj[signal_idx] = ((struct vk_drm_syncobj *)signals[i].sync)->syncobj;
+      signal_points[signal_idx] = signals[i].signal_value;
       ++signal_idx;
    }
 
    assert(signal_idx <= signal_count);
    assert(wait_idx <= wait_count);
-   sem_info.wait.timeline_syncobj_count =
-      (ws->syncobj_sync_type.features & VK_SYNC_FEATURE_TIMELINE) ? wait_idx : 0;
-   sem_info.wait.syncobj_count = wait_idx - sem_info.wait.timeline_syncobj_count;
-   sem_info.cs_emit_wait = true;
 
-   sem_info.signal.timeline_syncobj_count =
+   const uint32_t wait_timeline_syncobj_count =
+      (ws->syncobj_sync_type.features & VK_SYNC_FEATURE_TIMELINE) ? wait_idx : 0;
+   const uint32_t signal_timeline_syncobj_count =
       (ws->syncobj_sync_type.features & VK_SYNC_FEATURE_TIMELINE) ? signal_idx : 0;
-   sem_info.signal.syncobj_count = signal_idx - sem_info.signal.timeline_syncobj_count;
-   sem_info.cs_emit_signal = true;
+
+   struct radv_winsys_sem_info sem_info = {
+      .wait =
+         {
+            .points = wait_points,
+            .syncobj = wait_syncobj,
+            .timeline_syncobj_count = wait_timeline_syncobj_count,
+            .syncobj_count = wait_idx - wait_timeline_syncobj_count,
+         },
+      .signal =
+         {
+            .points = signal_points,
+            .syncobj = signal_syncobj,
+            .timeline_syncobj_count = signal_timeline_syncobj_count,
+            .syncobj_count = signal_idx - signal_timeline_syncobj_count,
+         },
+      .cs_emit_wait = true,
+      .cs_emit_signal = true,
+   };
 
    /* Should submit to at least 1 queue. */
    assert(submit_count);



More information about the mesa-commit mailing list