vulkan: Set signals[i].stageMask = ALL_COMMANDS for QueueSubmit2 wrapping
authorJason Ekstrand <jason.ekstrand@collabora.com>
Mon, 25 Apr 2022 16:08:42 +0000 (11:08 -0500)
committerMarge Bot <emma+marge@anholt.net>
Tue, 26 Apr 2022 14:17:28 +0000 (14:17 +0000)
My understanding of the signal masks is that they control what stages
must complete before the semaphore is signaled.  Using 0 theoretically
means the semaphore could be signaled immediately without waiting on
anything.  Use ~0 instead to say it depends on everything.

Fixes: 97f0a4494b97 ("vulkan: implement legacy entrypoints on top of VK_KHR_synchronization2")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16145>

src/vulkan/runtime/vk_synchronization2.c

index aead366..870f93c 100644 (file)
@@ -370,7 +370,7 @@ vk_common_QueueSubmit(
             .sType     = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR,
             .semaphore = pSubmits[s].pSignalSemaphores[i],
             .value     = signal_values ? signal_values[i] : 0,
-            .stageMask = 0,
+            .stageMask = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,
             .deviceIndex = group_info ? group_info->pSignalSemaphoreDeviceIndices[i] : 0,
          };
       }