render/vulkan: create binary semaphore when signal timeline is supplied

We were only creating the binary semaphore when implicit sync
interop was available. We also use the binary semaphore when
explicit sync is enabled.

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3973
This commit is contained in:
Simon Ser 2025-05-05 22:14:40 +02:00
parent 22db307e4c
commit d4e4c9f64b

View file

@ -480,7 +480,7 @@ static bool render_pass_submit(struct wlr_render_pass *wlr_pass) {
.semaphore = renderer->timeline_semaphore,
.value = render_timeline_point,
};
if (renderer->dev->implicit_sync_interop) {
if (renderer->dev->implicit_sync_interop || pass->signal_timeline != NULL) {
if (render_cb->binary_semaphore == VK_NULL_HANDLE) {
VkExportSemaphoreCreateInfo export_info = {
.sType = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,