Module: vkd3d Branch: master Commit: 22d86653003aeec7b919d0b58b2c0bb76438936e URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=22d86653003aeec7b919d0b5...
Author: Conor McCarthy cmccarthy@codeweavers.com Date: Thu Mar 24 15:56:00 2022 +0100
vkd3d: Use Vulkan timeline semaphores for D3D12 fences.
D3D12 supports signalling a fence to a lower value, while Vulkan timeline semaphores do not. On the GPU side this is handled by simply submitting the signal anyway, if a test for this passes on device creation, because working around this is impractical. For CPU signals the Vulkan semaphore is replaced with a new one at the lower value only if no waits and/or signals are pending on the GPU. Otherwise, a fixme is emitted.
Partly based on a vkd3d-proton patch by Hans-Kristian Arntzen (not including the handling of lower fence values).
The old implementation is used if KHR_timeline_semaphore is not available or GPU signals do not work for a lower value.
Signed-off-by: Conor McCarthy cmccarthy@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d/command.c | 571 ++++++++++++++++++++++++++++++++++++++++++--- libs/vkd3d/device.c | 87 +++++++ libs/vkd3d/vkd3d_private.h | 30 +++ libs/vkd3d/vulkan_procs.h | 5 + tests/d3d12.c | 11 +- 5 files changed, 663 insertions(+), 41 deletions(-)
Diff: https://source.winehq.org/git/vkd3d.git/?a=commitdiff;h=22d86653003aeec7b919...