Module: vkd3d
Branch: master
Commit: 22d86653003aeec7b919d0b58b2c0bb76438936e
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=22d86653003aeec7b919d0b…
Author: Conor McCarthy <cmccarthy(a)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(a)codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)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=22d86653003aeec7b91…
Module: vkd3d
Branch: master
Commit: 06274621927a624ab1f8c88d159ac054ee625efe
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=06274621927a624ab1f8c88…
Author: Conor McCarthy <cmccarthy(a)codeweavers.com>
Date: Thu Mar 24 14:36:09 2022 +1000
vkd3d: Use Vulkan null descriptors if EXT_robustness2 is available.
This implements all remaining unsupported image view dimensions and saves
a small amount of resources because null buffers and images are no longer
needed. It matches the D3D12 requirement that all reads return zero,
which is not strictly true of the existing implementation using resources
of small but non-zero size. Warnings on null view creation are silenced
because there should no longer be a difference from D3D12 behaviour.
Signed-off-by: Conor McCarthy <cmccarthy(a)codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
README | 2 +-
configure.ac | 2 +-
libs/vkd3d/device.c | 8 +++++
libs/vkd3d/resource.c | 76 ++++++++++++++++++++++++++++++----------------
libs/vkd3d/vkd3d_private.h | 1 +
5 files changed, 61 insertions(+), 28 deletions(-)
Diff: https://source.winehq.org/git/vkd3d.git/?a=commitdiff;h=06274621927a624ab1f…