Henri Verbeet pushed to branch master at wine / vkd3d
Commits: ed7a846e by Giovanni Mascellani at 2025-01-21T13:45:27+01:00 vkd3d: Only call d3d12_fence_garbage_collect_vk_semaphores_locked() when using binary semaphores.
The function is specific to binary semaphores, and will unconditionally access the "u.binary" field of struct vkd3d_signaled_semaphore.
- - - - - bdb8291f by Giovanni Mascellani at 2025-01-21T13:45:33+01:00 vkd3d: Release queued fences when stopping the fence worker.
- - - - - 22d08414 by Giovanni Mascellani at 2025-01-21T14:02:22+01:00 vkd3d: Support signalling a fence once all outstanding work is submitted to Vulkan.
When the client acquires the Vulkan queue it has to ensure that it is not submitting work before other work it depends on already submitted through the Direct3D 12 API but currently in the internal vkd3d queue. Currently we suggest to enqueue signalling a fence and than wait for it before acquiring the Vulkan queue, which is correct but excessive: it will wait not just for the work currently in the queue to be submitted, but for it to be executed too, introducing useless dependencies.
By adding a way to enqueue signalling a fence on the CPU side we allow the client to wait for the currently outstanding work to be submitted to Vulkan, but nothing more.
- - - - -
5 changed files:
- include/vkd3d.h - libs/vkd3d/command.c - libs/vkd3d/vkd3d.map - libs/vkd3d/vkd3d_private.h - tests/vkd3d_api.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/4fbfb4468112bcf578202b4e69e95...