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

420 Commits

Author SHA1 Message Date
Philip Rebohle
ebd29007d4 [dxgi] Actually unlock monitor info
Fixes some deadlocks.
2022-11-21 20:24:15 +01:00
Joshua Ashton
f0a0e1b964 [dxgi] Report display metadata in IDXGIOutput6::GetDesc1 2022-11-21 17:26:53 +01:00
Joshua Ashton
aa71e7e323 [dxgi] Cache display metadata + colorimetry in DXGI_VK_MONITOR_DATA 2022-11-21 17:26:53 +01:00
Philip Rebohle
76e6b2764b [dxgi] Change CreateSwapChain to take a surface factory 2022-11-07 14:14:05 +01:00
Philip Rebohle
3a9e975a71 [dxgi] Implement DxgiSurfaceFactory 2022-11-07 14:14:05 +01:00
Philip Rebohle
bd87e19de1 [dxgi] Introduce IDXGIVkSurfaceFactory 2022-11-07 14:14:05 +01:00
Paul Gofman
e311f25287 [dxgi] Store device pointer in DxgiSwapChainDispatcher 2022-10-20 19:05:19 +02:00
Philip Rebohle
69d7af42a4 [dxgi] Change swap chain interface to better map to D3D12 needs 2022-10-16 16:38:29 +02:00
Philip Rebohle
d7ac21b6c7 [dxgi] Use new DXVK swap chain factory if available 2022-10-16 16:38:29 +02:00
Philip Rebohle
580dd5cf4a [dxgi] Add swap chain factory interface definition 2022-10-16 16:38:29 +02:00
Joshua Ashton
1d3decf100 [build] Add version scripts for native builds
FEX would like clean symbols for experimenting with making thunks down the line.

We also just shouldn't be exporting a bunch of random crap -- sadly -fvisibility=hidden doesn't help with a bunch of stuff :(

For reference, RADV also does this.
2022-10-15 19:10:57 +02:00
Joshua Ashton
25798f6fe1 [build] Set name_prefix to libdxvk_ for native builds
Less rude and nicer than just d3d9.so.
Matches old DXVK native behaviour too.
2022-10-15 19:10:57 +02:00
Philip Rebohle
bd7d2aac71 [dxgi] Get rid of NotifyModeChange method
Was only used for the FPS limiter.
2022-10-07 13:25:56 +02:00
Philip Rebohle
9fa587e13c [dxgi] Always use swap chain-local present count for frame statistics
Doesn't appear to match Windows behaviour, but there may be scenarios
when we can't query the current monitor. Statistics still need to be
consistent in this case.

See #2933.
2022-09-17 05:01:36 +02:00
Philip Rebohle
67bd2b5e76 [dxgi] Report swap chain frame statistics 2022-09-16 12:49:42 +02:00
Philip Rebohle
fe3fc82d8e [dxgi] Handle mode changes for frame statistics 2022-09-16 12:49:42 +02:00
Philip Rebohle
faaa6bf1df [dxgi] Promote output stored in swap chain to IDXGIOutput1 2022-09-16 12:49:42 +02:00
Philip Rebohle
57af9e8760 [dxgi] Estimate vblank count for frame statistics 2022-09-16 12:49:42 +02:00
Philip Rebohle
c56a9b5a3f [dxgi] Implement WaitForVBlank using new sleep helper
Not very accurate, but probably good enough if the display
refresh rate is known.
2022-09-16 12:49:42 +02:00
Philip Rebohle
1c33d8be1f [dxgi] Fix return value of ChangeDisplayMode 2022-09-15 15:35:54 +02:00
Paul Gofman
10d6e15646 [d3d9] Do not set window size and position when restoring from fullscreen state
Closes #2920.
2022-09-15 09:33:24 +01:00
Joshua Ashton
be33ccbce9 [dxgi] Revert 538b132490967239e2d673659789ea9b76698ee3
This breaks things for 32-bit, but it really shouldn't. My hypothesis currently is that the .lib generated is bogus, but the exports in the actual DLL are correct.
2022-08-21 20:28:40 +00:00
Joshua Ashton
a4261ddd14 [dxgi] Use high_resolution_clock get_counter instead of QPC for SyncQPCTime
Abstracts this across platforms
2022-08-21 22:24:06 +02:00
Joshua Ashton
8b7e0bc2fd [dxgi] Include win32 compat headers where applicable 2022-08-21 21:40:55 +02:00
Joshua Ashton
f0f4258be3 [dxgi] Correct DLLEXPORT for native builds 2022-08-21 21:36:50 +02:00
Joshua Ashton
538b132490 [dxgi] Don't declspec dllexport on MinGW builds
Fixes ordinal exporting on MinGW on 32-bit builds.
Mirrors this D3D9 commit here: 904d3e6c9014bff7aa0843630b009c51879a1d06
2022-08-21 21:36:50 +02:00
Joshua Ashton
fad6f764ea [dxgi] Remove unused DEVMODE variable 2022-08-21 21:35:09 +02:00
Joshua Ashton
e51c196ee9 [dxgi] Remove MonitorEnumProc and MonitorEnumInfo
Not used anymore, replaced by WSI abstraction.
2022-08-21 21:35:09 +02:00
Joshua Ashton
16ff9b48cd [dxgi] Enumerate interlaced modes if requested 2022-08-20 20:27:07 +02:00
Joshua Ashton
bc8e75fdfa [dxgi] Make adapter code use new wsi interface 2022-08-20 20:27:07 +02:00
Joshua Ashton
59b943cf12 [dxgi] Remove unused util_monitor include 2022-08-20 20:27:07 +02:00
Joshua Ashton
21744198e0 [dxgi] Make swapchain use new wsi interface 2022-08-20 20:27:07 +02:00
Joshua Ashton
e13a9f9cf6 [dxgi] Make output code use new wsi interface 2022-08-20 20:27:07 +02:00
Joshua Ashton
71a630801e [dxgi] Add helpers for new wsi interface 2022-08-20 20:27:07 +02:00
Philip Rebohle
13152088d4
[dxgi] Use new format support queries to initialize format table 2022-08-17 15:39:03 +02:00
Philip Rebohle
0d33d063ca
[dxvk] Remove device LUID workaround
winevulkan properly supports this now.
2022-08-11 16:01:53 +02:00
Paul Gofman
59441b1ff5 [dxgi] Also support use after free in IDXGISwapChain::SetFullscreenState() 2022-08-09 23:10:50 +02:00
Philip Rebohle
ec7de66419 [util] Use transcodeString in tows and fromws helpers 2022-07-30 20:30:32 +02:00
Philip Rebohle
bb3c0b9707 [dxgi] Use transcodeString to convert adapter name 2022-07-30 20:30:32 +02:00
Philip Rebohle
6c5f73ac26
[dxvk] Reintroduce VkPhysicalDeviceIDProperties
We need this to get the device LUID. Wine does not fill in the
LUID properties in VkPhysicalDeviceVulkan11Properties right now.

Fixes DLSS not working, as well as other potential issues.
2022-07-26 22:38:33 +02:00
Philip Rebohle
d6d7d5137b
[dxvk] Drop VK_EXT_4444_formats
These formats are core in Vulkan 1.3 and all relevant drivers support them.
2022-07-14 21:21:34 +02:00
Philip Rebohle
2774a04195
[dxvk] Use VkPhysicalDeviceVulkan11{Features,Properties} where appropriate 2022-07-14 21:21:34 +02:00
Zhiyi Zhang
8147844aef [dxgi] Return DXGI_ERROR_INVALID_CALL for invalid IDXGIAdapter3::RegisterVideoMemoryBudgetChangeNotificationEvent() parameters
According to wine tests 14237e321b

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
2022-05-25 18:44:20 +02:00
Philip Rebohle
a85f7c48a5
[d3d11] Make ClearUnorderedAccessViewUINT fallback more generic 2022-04-25 17:34:45 +02:00
Philip Rebohle
8823e4bb3d
[dxgi] Work around swapchain use-after-free bugs
Affects Divinity: Original Sin Enhanced Edition. Requires Wine hack to
delay memory deallocation to not crash during resolution changes.
2022-03-23 15:09:39 +01:00
Georg Lehmann
2550cff149 [build] Cleanup build system.
No changes except dropping support for msvc before 15.3.
2022-03-17 01:38:58 +00:00
Liam Middlebrook
f92c6ae859 [dxgi] Add DXVK_ENABLE_NVAPI envvar
Add a new environment variable DXVK_ENABLE_NVAPI as an environment-level
override for 'nvapiHack'. This will allow for DLSS (and other
NvAPI-backed features) to be available without the user manually writing
a configuration file, allowing for more seamless integration with
Proton's launch script.
2022-03-16 13:06:25 +01:00
Philip Rebohle
c87660480d
[d3d11] Reimplement R11G11B10 UAV clears without R32 views 2022-03-12 16:23:42 +01:00
Philip Rebohle
b53c3057e1
[dxgi] Fix refresh rate filtering in FindClosestMatchingMode
We need to operate on the pre-filtered list, or otherwise we may run into
problems where not all refresh rates are supported for all display modes.
2022-01-10 14:45:19 +01:00
Philip Rebohle
b6cd6aaecc
[d3d11] Fix depth aspect not being applied to some D16_UNORM views 2021-11-29 15:39:41 +01:00