Alexandre Julliard pushed to branch master at wine / wine
Commits: 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.
- - - - -
3 changed files:
- dlls/dxgi/swapchain.c - dlls/dxgi/tests/dxgi.c - dlls/wined3d/wined3d.spec
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/0d6a390d7121b649e0b107f9a10a58...