Conor McCarthy : vkd3d: Use Vulkan timeline semaphores for D3D12 fences.
Alexandre Julliard
julliard at winehq.org
Thu Mar 24 17:38:02 CDT 2022
Module: vkd3d
Branch: master
Commit: 22d86653003aeec7b919d0b58b2c0bb76438936e
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=22d86653003aeec7b919d0b58b2c0bb76438936e
Author: Conor McCarthy <cmccarthy at 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 at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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=22d86653003aeec7b919d0b58b2c0bb76438936e
More information about the wine-cvs
mailing list