-
1cd616fe
by Giovanni Mascellani at 2025-02-28T14:14:31+01:00
dxgi: Submit Vulkan presentation as soon as possible.
The new vkd3d API allows submitting presentation as soon as the
internal vkd3d work is flushed to Vulkan. Now we're also waiting
for it to be executed, which is useless.
-
20663069
by Giovanni Mascellani at 2025-02-28T14:14:35+01:00
dxgi: Set the frame latency even when increasing the frame latency.
This is only partially correct, because the frame latency waitable
should be a semaphore instead. However, it's a step in the right
direction, in preparation to make the waitable an actual semaphore.
-
383c00b9
by Giovanni Mascellani at 2025-02-28T14:14:37+01:00
dxgi: Do not bias the frame latency fence.
The bias was a broken solution for handling the maximum frame
latency changes. However we now already set the event (and, in the
future, release the sempahore) when the maximum frame latency is
increased, so there is no need for the bias anymore.
-
ac7245a7
by Giovanni Mascellani at 2025-02-28T14:14:38+01:00
dxgi: Directly signal the frame latency fence.
Instead of going through the command queue again. That's because at
that point we just submitted the frame for presentation to Vulkan,
so the best approximation we have for when the frame will be
presented is now, not after the currently outstanding work in the
command queue is processed. It's still a rather poor approximation,
but for something better we need VK_KHR_present_wait.
-
d66ede8d
by Giovanni Mascellani at 2025-02-28T14:14:39+01:00
dxgi: Remove the frame latency fence.
It is now useless: we signal signal it directly and use it to set
an event, without having anything to do with the CPU. We can set
the event directly instead.
-
6f47d472
by Giovanni Mascellani at 2025-02-28T14:14:40+01:00
dxgi: Make the frame latency waitable a semaphore.
As it should be, given that it is supposed to keep the count of
how many frames are currently in flight.
-
7f9e2bee
by Giovanni Mascellani at 2025-02-28T14:14:41+01:00
dxgi: Wait on the frame latency semaphore when the client doesn't do it.
The client is expected to wait on the frame latency semaphore when
the swapchain is created with DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT.
But when it is not, we're supposed to do it ourselves.
-
67604367
by Giovanni Mascellani at 2025-02-28T14:14:42+01:00
dxgi/tests: Use an explicit frame latency waitable when testing the back buffer index.
We're not going to use it anyway, but prevent DXGI from implicitly
wait on it. That wouldn't change the result result because
Present() eventually times out anyway, but it would uselessly
waste a few seconds.