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