From 2c107677327f02719cd584716705ce04f558f725 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Tue, 27 Feb 2024 11:25:54 -0800 Subject: [PATCH] radv: set VK_SYNC_FEATURE_GPU_MULTI_WAIT I think amdgpu always supports multi wait since syncobj is just a container of dma-fences. Fixes Assertion `!(req_features & ~ttype->point_sync_type->features)' failed. in vk_sync_timeline_type_validate on older kernels. Part-of: --- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c index e7f8f615eed..c7740fe5be2 100644 --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c @@ -294,6 +294,9 @@ radv_amdgpu_winsys_create(int fd, uint64_t debug_flags, uint64_t perftest_flags, ws->syncobj_sync_type = vk_drm_syncobj_get_type(amdgpu_device_get_fd(ws->dev)); if (ws->syncobj_sync_type.features) { + /* multi wait is always supported */ + ws->syncobj_sync_type.features |= VK_SYNC_FEATURE_GPU_MULTI_WAIT; + ws->sync_types[num_sync_types++] = &ws->syncobj_sync_type; if (!(ws->syncobj_sync_type.features & VK_SYNC_FEATURE_TIMELINE)) { ws->emulated_timeline_sync_type = vk_sync_timeline_get_type(&ws->syncobj_sync_type);