1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-23 10:54:14 +01:00

6510 Commits

Author SHA1 Message Date
Philip Rebohle
3eb96fb9e5 [d3d11] Stub out ID3DLowLatencyDevice for D3D11 2025-01-21 15:48:02 +01:00
Philip Rebohle
d8f4ce15d8 [d3d11] Add ID3DLowLatencyDevice definitions 2025-01-21 15:48:02 +01:00
Philip Rebohle
75617db76e [d3d11] Add queue parameter to CS chunk injection 2025-01-21 15:48:02 +01:00
Philip Rebohle
b686d95e71 [dxvk] Refactor CS chunk queues
Introduces two queues and allows us to dispatch chunks to the ordered
queue without disrupting the sequence number.
2025-01-21 15:48:02 +01:00
Philip Rebohle
95e2635397 [dxvk] Implement Reflex latency tracker 2025-01-21 15:48:02 +01:00
Philip Rebohle
d1c33c3328 [dxvk] Add NV_low_latency2 path to latency tracker 2025-01-21 15:48:02 +01:00
Philip Rebohle
00fc4af7ca [dxvk] Pass present IDs to command submissions as necessary 2025-01-21 15:48:02 +01:00
Philip Rebohle
f4dc269493 [dxvk] Implement NV_low_latency2 functionality in presenter 2025-01-21 15:48:02 +01:00
Philip Rebohle
d09cef512a [dxvk] Add option to disable VK_NV_low_latency2 2025-01-21 15:48:02 +01:00
Philip Rebohle
7f3831461d [dxvk] Enable VK_NV_low_latency2 if supported 2025-01-21 15:48:02 +01:00
Philip Rebohle
1eb7da548c [d3d9] Always limit to display refresh in low latency mode 2025-01-21 15:48:02 +01:00
Philip Rebohle
a537ecf421 [d3d9] Implement latency tracking 2025-01-21 15:48:02 +01:00
Philip Rebohle
970378a267 [dxgi] Pass display refresh in windowed mode if latency sleep is enabled 2025-01-21 15:48:02 +01:00
Philip Rebohle
ac8868594f [d3d11] Implement latency tracking 2025-01-21 15:48:02 +01:00
Philip Rebohle
7c88807790 [hud] Add frame latency item 2025-01-21 15:48:02 +01:00
Philip Rebohle
1dee62ebfc [dxvk] Add latency tracker to context 2025-01-21 15:48:02 +01:00
Philip Rebohle
fa6c32684a [dxvk] Add latency tracker to presenter 2025-01-21 15:48:02 +01:00
Philip Rebohle
26ff3d9817 [dxvk] Add latency tracker to queue submissions 2025-01-21 15:48:02 +01:00
Philip Rebohle
9a0057fc45 [dxvk] Add latency tracker
Implements a basic latency sleep solution that is intended to work
without requiring games to support any related vendor features.

This alone is not enough to expose the Reflex API to applications via
dxvk-nvapi, but since that relies on NV_low_latency2 specifics anyway,
we are going to add an implementation based on that extension later
with an extended interface.
2025-01-21 15:48:02 +01:00
Philip Rebohle
1998c6a6ab [util] Expose frame rate environment variable
We'll need this in more places.
2025-01-21 15:48:02 +01:00
Philip Rebohle
b446d0acda [util] Add parameter to initialize small_vector with a given size
Matches std::vector.
2025-01-21 15:48:02 +01:00
Blisto91
a3ba8fb4dc [util] Add configs for Star Wars Empire at War
In both the base game and expansion the Water and Shader Detail options are locked at their lowest value when they see Intel.
In the base game (not expansion) the AA option disappears for some reason whenit sees vram at 2075MB and above.
2025-01-20 23:01:25 +01:00
Vasiliy Stelmachenok
685126482d [d3d11] Fix missing argument reference
Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>
2025-01-20 22:59:54 +01:00
Philip Rebohle
863591275c [dxvk] Error out on surface creation again
Unless it's NATIVE_WINDOW_IN_USE. Should fix a regression where
D3D swapchain creation would succeed on out-of-memory errors.
2025-01-20 18:20:14 +01:00
Philip Rebohle
c52a68a5be [dxvk] Fix typo that breaks HDR metadata 2025-01-16 17:47:56 +01:00
Philip Rebohle
5ed2d990af [d3d9] Fix software cursor texture format
The new code expects texture reads to be in linear space, so we need
to use an sRGB format here.
2025-01-16 12:05:17 +01:00
Philip Rebohle
3dbe8ad43c [d3d9] Rework device reset detection
More robust.
2025-01-16 11:38:39 +01:00
Philip Rebohle
f9c3dd1f5f [d3d9] Remove explicit swapchain synchronization
No longer necessary.
2025-01-16 11:38:39 +01:00
Philip Rebohle
c43cf6895b [d3d9] Refactor presenter management
There's basically no reason to ever recreate a presenter for an already
managed window with the new code.
2025-01-16 11:38:39 +01:00
Philip Rebohle
785649f3b8 [d3d11] Remove explicit swapchain synchronization 2025-01-16 11:38:39 +01:00
Philip Rebohle
42adc4ac11 [dxvk] Perform acquire and present synchronization in the backend
And add method to explicitly destroy relevant Vulkan objects.
2025-01-16 11:38:39 +01:00
Philip Rebohle
b03ff775ce [dxvk] Do not initialize present status from presentImage
Meaningless, this needs to be done elsewhere anyway.
2025-01-16 11:38:39 +01:00
Philip Rebohle
81c3242b6d [dxvk] Dirty swapchain if present returns SUBOPTIMAL
May fix some issues in case the WSI implementation can return SUBOPTIMAL
from present but not acquire. Also ensure to keep state consistent.
2025-01-16 11:38:39 +01:00
Philip Rebohle
816f8e9c87 [dxvk] Improve swapchain debug logging 2025-01-16 11:38:39 +01:00
Philip Rebohle
0f9245ff33 [d3d9,d3d11] Remove numBackBuffers option
Useless.
2025-01-16 11:38:39 +01:00
Philip Rebohle
cb42ea21be [dxvk] Adjust swapchain format preferences in various cases
For sRGB, using a native sRGB format allows the swapchain blitter
to use a more efficient code path for drawing the HUD.

Also allow RGB9E5 for sRGB and HDR10.
2025-01-16 11:38:39 +01:00
Philip Rebohle
d200184306 [dxvk] Rework swapchain composition
Also adds a separate set of shaders for the software cursor, provided it
can be drawn directly with alpha blending.
2025-01-16 11:38:39 +01:00
Philip Rebohle
a09d372caf [dxvk] Prepare swapchain blitter for compositing HUD and cursor
This will be necessary for non-linear color spaces to get proper blending.
2025-01-16 11:38:39 +01:00
Philip Rebohle
8be30d7d5a [hud] Add method to check whether HUD is empty 2025-01-16 11:38:39 +01:00
Philip Rebohle
5134a4b3c5 [dxvk] Move HUD update and rendering into swapchain blitter 2025-01-16 11:38:39 +01:00
Philip Rebohle
c1ed8cd1f3 [hud] Add function to change API name dynamically
Needed for D3D8 due to implicit swapchain shenanigans.
2025-01-16 11:38:39 +01:00
Philip Rebohle
0eeedf9259 [hud] Allow returning HUD item objects to the caller 2025-01-16 11:38:39 +01:00
Philip Rebohle
d5744e5a81 [dxvk] Enable automatic fallbacks for HDR color spaces
The swap chain blitter can deal with the conversion.
2025-01-16 11:38:39 +01:00
Philip Rebohle
d85d07c0ec [dxvk] Infer swap chain color space from image views 2025-01-16 11:38:39 +01:00
Philip Rebohle
1d790970d5 [d3d9] Set color space for swap chain image 2025-01-16 11:38:39 +01:00
Philip Rebohle
b586294e29 [d3d11] Set color space for swap chain image 2025-01-16 11:38:39 +01:00
Philip Rebohle
ed3c02906c [dxvk] Set color space for swap chain back buffers 2025-01-16 11:38:39 +01:00
Philip Rebohle
84317f913a [dxvk] Don't redundantly update image debug names 2025-01-16 11:38:39 +01:00
Philip Rebohle
ff41a5ab12 [dxvk] Add color space property to image description 2025-01-16 11:38:39 +01:00
Philip Rebohle
ad11509e83 [dxvk] Soften error reporting from the presenter 2025-01-16 11:38:39 +01:00