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