1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-14 18:23:52 +01:00
Commit Graph

32 Commits

Author SHA1 Message Date
Philip Rebohle
42edb62df8
[d3d11] Use smart pointer for swap chain back buffer 2022-03-22 19:28:49 +01:00
Philip Rebohle
56395c9bc8
[d3d11] Re-implement frame latency events using Win32 semaphore
Matches native DXGI behaviour more accurately, and fixes a hang in
Shin Megami Tensei 3.
2021-08-05 22:57:58 +02:00
Philip Rebohle
e281eee795 [dxgi] Add NotifyModeChange method to IDXGIVkSwapChain 2021-06-12 13:50:08 +02:00
Philip Rebohle
8b67ef724e [d3d11] Add frame rate limiter and dxgi.maxFrameRate option 2021-06-12 13:50:08 +02:00
Joshua Ashton
f98a45b305 [d3d11] Sync frame latency after presentation 2021-06-01 18:16:35 +02:00
Philip Rebohle
148272fbce [d3d11] Use DxvkSwapchainBlitter for presentation 2021-02-27 14:54:14 +00:00
Philip Rebohle
c560ec44b5 [d3d11] Re-introduce client API HUD item 2020-01-28 16:32:58 +00:00
Philip Rebohle
aa40decc23
[d3d11] Don't present if the presenter has no swap chain.
Also fixes DXGI_PRESENT_TEST handling for zero-sized windows.
2019-12-15 11:38:57 +01:00
Philip Rebohle
ae7189f9a4
[d3d11] Update HUD on CS thread
Otherwise, we may end up reading some bollocks since the CS thread
might not have finished processing the entire frame yet.
2019-12-13 15:02:45 +01:00
Philip Rebohle
945a64252d
[d3d11] Determine exclusive fullscreen mode based on swap chain flags 2019-12-05 13:11:06 +01:00
Philip Rebohle
9785fba66e
[dxgi] Implement IDXGISwapChain2::GetFrameLatencyWaitableObject 2019-11-26 16:54:52 +01:00
Philip Rebohle
65cc8c2b31
[d3d11] Create frame latency event for swap chain
Needed in order to support the DXGI 1.3 frame latency API.
2019-11-26 16:54:52 +01:00
Philip Rebohle
ef37b5fed6
[dxgi] Implement IDXGISwapChain2::SetFrameLatency 2019-11-26 16:11:46 +01:00
Philip Rebohle
2d1fb52b2f
[util] Reimplement Signal
The new implementation is more akin to D3D12 fences or timeline
semaphores, and should make implementing similar concepts easier.
2019-11-26 16:11:46 +01:00
Philip Rebohle
69bad7bf8c
[d3d11] Move frame latency handling into D3D11SwapChain 2019-11-26 16:11:46 +01:00
Philip Rebohle
77a0cb2b19
[d3d11] Don't synchronize with CS thread on present
Instead, submit from the CS thread in order to prevent out-of-order
submissions. Improves minimum FPS in Final Fantasy XIV by 5-10%.
2019-11-02 17:53:17 +01:00
Philip Rebohle
0f15c60192
[d3d11] Use private reference to D3D11 device in D3D11SwapChain
Fixes a wine test failure.
2019-10-01 22:26:07 +02:00
Philip Rebohle
bc0537df37 [d3d11] Remove d3d11.asyncPresent option 2019-08-04 21:49:55 +02:00
Philip Rebohle
c631953ab6
[d3d11] Don't immediately synchronize after present
This will actually enable asynchronous presentation.
Improves performance in Quake Champions.
2019-07-05 21:20:09 +02:00
Philip Rebohle
ed5c43a14d
[dxvk] Implement asynchronous presentation
Off-loads the vkQueuePresentKHR call to the queue submission thread
to avoid synchronization with that thread on a present call.
2019-07-05 15:11:59 +02:00
Philip Rebohle
7687db0303
[dxvk] Remove extra pipeline state
This can be expressed with specialization constants now.
2019-05-06 00:18:59 +02:00
Philip Rebohle
93bd923c17
[d3d11] Set up extra state for the HUD renderer 2019-05-01 01:57:34 +02:00
Philip Rebohle
981ea547f9 [d3d11] Don't use presentation fence 2019-04-23 20:14:34 +02:00
Philip Rebohle
632b254714
[d3d11] Use combined image sampler descriptors for the presenter 2019-04-03 17:40:05 +02:00
Philip Rebohle
be1832a348
[d3d11] Don't sample gamma texture if the gamma curve is identity
Saves some GPU time in games that don't use DXGI gamma control at all.
2019-03-24 18:07:21 +01:00
Philip Rebohle
19f82826bb
[d3d11] Don't use presentation fence on ANV
Should hopefully fix stuttering issues introduced with 1.0.
2019-03-14 18:50:33 +01:00
Philip Rebohle
328871de7e
[d3d11] Re-introduce support for dxgi.numBackBuffers option 2018-12-14 14:58:36 +01:00
Philip Rebohle
c5deedef2d
[d3d11] Move IDXGIDevice implementation to D3D11 module
Helps decouple the D3D11 module from the DXGI implementation. This
also allows us to clean up D3D11 device creation, which is much needed.

Based on zzhiyi/dxvk@fa441937f1

Co-authored-by: Zhiyi Zhang <zzhang@codeweavers.com>
2018-12-04 19:38:38 +01:00
Philip Rebohle
9139fbf95d
[d3d11] Use new Vulkan presenter 2018-11-28 12:44:17 +01:00
Philip Rebohle
1724d51079
[dxgi] Refactor presenter creation
This change is needed to support non-D3D11 presenters in our DXGI code.
2018-11-12 11:39:34 +01:00
Philip Rebohle
589229f4ca
[dxgi] Query device interface from the presenter
Removes the coupling between IDXGISwapChain and IDXGIDevice.
This is necessary because D3D12 devices don't support IDXGIDevice.
2018-10-24 15:54:56 +02:00
Philip Rebohle
8cb4852a61
[d3d11] Add new D3D11 swap chain code
- Fix deferred surface creation
2018-10-23 14:58:39 +02:00