Commit Graph

372 Commits

Author SHA1 Message Date
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
Paul Gofman 24eb875f02 [dxgi] Return success from DxgiSwapChain::Present1() if window is destroyed 2021-10-07 20:34:37 +02:00
Philip Rebohle aa4b7c9f92
[dxvk] Rework 32-bit check 2021-10-01 14:18:42 +02:00
Georg Lehmann 8844dc2091 [dxgi] Downgrade format fall back warnings to info 2021-08-09 13:17:43 +02:00
Connor Abbott aae0e57a46
Don't add def file as an object
This is unnecessary even on mingw, and leads to duplicating the .def
file on the linking command line which winegcc complains about.
2021-07-03 14:28:28 +02:00
Connor Abbott 2988875e93
[dxgi] Call QueryPerformanceCounter directly
dxvk::high_resolution_clock is meant to be a wrapper around the C++ time
library, and getCounter() is (AFAIK) an internal thing so calling it
directly is odd. On winelib this redirects to the host's implementation,
which means this fails to compile. Since this is a Windows API and not
for internal usage just call the Windows API function directly.
2021-07-03 14:28:28 +02:00
Philip Rebohle cd8a2bcfcd [dxvk] Use custom sync primitives 2021-06-29 00:51:20 +02:00
Philip Rebohle 6044e63eb0 [dxgi] Notify presenter about display mode changes 2021-06-12 13:50:08 +02:00
Philip Rebohle e281eee795 [dxgi] Add NotifyModeChange method to IDXGIVkSwapChain 2021-06-12 13:50:08 +02:00
Joshua Ashton 15e0594ec4 [dxgi] Add emulateUMA option
Some games think we are on Intel given a lack of NVAPI or AGS/atiadlxx support. Report our device memory as shared memory, and some small amount for a "carveout".
2021-06-01 19:26:41 +02:00
Joshua Ashton 1d4c540b21 [dxgi] Add custom device description option 2021-06-01 19:26:41 +02:00
Philip Rebohle 0af7229b8e
[util] Restore display modes of all monitors in RestoreMonitorDisplayMode
Fixes #2064.
2021-06-01 01:48:12 +02:00
Philip Rebohle 2764f4abb5
[dxgi] Add format mapping for DXGI_FORMAT_AYUV 2021-05-30 19:42:43 +02:00
Philip Rebohle d859361a37
[dxgi] Add format mapping for DXGI_FORMAT_YUY2
And fix some existing 422 mappings.
2021-05-30 19:42:43 +02:00
Philip Rebohle 9b236078c2
[dxgi] Add format mapping for DXGI_FORMAT_NV12 and DXGI_FORMAT_420_OPAQUE 2021-05-30 19:42:43 +02:00
Joshua Ashton c51080068e [dxgi] Handle DXGI_PRESENT_TEST and failures in GetFrameStatistics 2021-05-20 23:02:07 +01:00
Philip Rebohle 401edc53fe [dxgi] Show warning in DxgiOutput::GetFrameStatistics 2021-05-20 22:27:36 +01:00
Philip Rebohle db3654a07f [dxgi] Implement present count and frame statistics for swap chains 2021-05-20 22:27:36 +01:00
Joshua Ashton a690210eae [dxgi] Implement swapchain dispatcher
Some overlays and hooks check if the vtable funcs reside in the dxgi.dll module.

Fixes: #1996
2021-03-30 17:48:10 +02:00
Joshua Ashton 0367bf95c4 [build] MSVC check cleanup 2021-03-03 18:57:42 +01:00
Philip Rebohle 148272fbce [d3d11] Use DxvkSwapchainBlitter for presentation 2021-02-27 14:54:14 +00:00
Philip Rebohle 5d4d32c613
[d3d11] Remove explicit spec constant for gamma texture
No longer needed.
2021-02-21 02:20:14 +01:00
Philip Rebohle fe5e215dfc [dxgi] Support multiple outputs per adapter 2021-02-18 14:19:55 +01:00
Philip Rebohle 01a511aa99
[dxvk,dxgi,d3d9] Fix shader spec constant IDs
These changed after changing the render target output swizzle stuff.
2021-01-29 16:46:01 +01:00
Joshua Ashton dde28a967f [d3d11] Fix forward declaration of ID3D11Texture2D
This should be struct not class.

Silences warnings in MSVC.
2021-01-08 13:06:02 +01:00
Andrew Eikum a3065fca8e [d3d11] Extend interop interfaces for OpenXR support 2021-01-07 23:54:02 +01:00
Philip Rebohle d0cdd79dd2
[dxgi] Allow creating R16_SFLOAT views for D16_UNORM images
Just use R16_UNORM. For some reason, D3D11 actually allows this, and
Trine 4 wants the corresponding calls to succeed, although we're going
to interpret the data as UNORM rather than FLOAT.
2020-11-20 17:14:41 +01:00
Philip Rebohle 13052d4949
[dxgi] Actually expose new DXGI interfaces
Derp.
2020-10-24 17:41:55 +02:00
Philip Rebohle 54a4e91dad
[dxgi] Implment IDXGIFactory7 2020-10-23 12:21:02 +02:00
Philip Rebohle a7de355646
[dxgi] Implement IDXGIFactory6 2020-10-23 12:15:48 +02:00
Philip Rebohle 41a49a9c14
[dxgi] Add B8G8A8X8 formats to GetMonitorFormatBpp
Doesn't really fix anything, just silences some warnings
in Horizon Zero Dawn.
2020-09-04 17:54:01 +02:00
Philip Rebohle cb7f1dc966
[dxgi] Use VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT if available 2020-08-10 09:45:45 +02:00
Philip Rebohle 3322da4b94
[dxgi] Add DXGIGetDebugInterface1 stub
Required for Metro Exodus. Also exports the DXGI entry points
with their correct ordinals.
2020-07-24 12:25:48 +02:00
Gabriel Ivăncescu 1efe91e17d
[dxgi] Restore the Topmost state upon exiting fullscreen
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2020-07-08 18:57:49 +02:00
Philip Rebohle f1e069568d
[build] Remove .spec files
No longer needed now that we don't support winelib builds anymore.
2020-05-01 00:52:33 +02:00
Philip Rebohle 80009831d4 [d3d11] Use explicit spec constant for gamma texture
With null descriptors, the "bound" spec constants would always be 1.
2020-04-30 16:36:59 +02:00
Philip Rebohle ca59d8e74b
[dxgi] Implement DXGIDeclareAdapterRemovalSupport 2020-04-28 15:20:43 +02:00
Philip Rebohle 5d0efd87c2
[dxgi] Implement IDXGIOutput6 2020-04-28 15:00:57 +02:00
Philip Rebohle 15f5efe4c3
[dxgi] Implement IDXGIAdapter4 2020-04-28 14:50:36 +02:00
Philip Rebohle 26ea12b18e
[dxgi] Include DXGI 1.6 headers 2020-04-28 14:44:20 +02:00
Philip Rebohle 4d6f47640f
[dxgi] Name adapter event thread 2020-04-03 02:09:06 +02:00
Philip Rebohle 079cda1c0c
[dxgi] Implement RegisterVideoMemoryBudgetChangeNotificationEvent
Closes #1544.
2020-04-03 02:05:23 +02:00
Philip Rebohle a623e8e7d6 [dxgi] Use new common monitor functions 2020-03-04 23:06:15 +00:00
Philip Rebohle 66503aeaa0 [util] Factor out common monitor-related functions 2020-03-04 23:06:15 +00:00
Joshua Ashton 74d23c22de [build] Use __CRT_UUID_DECL for uuid definitions
Closes #1463
2020-02-18 20:25:05 +01:00
Philip Rebohle be16da37d7 [d3d11] Introduce COM interface to set and get API version
Allows us to identify DirectX 10 applications correctly.
2020-01-28 16:32:58 +00:00
Andrew Eikum 5706ec55e4 [dxgi] Don't check window validity in IDXGISwapchain::GetFullscreenState
This causes an error on exit in Jump King, which uses SharpDX.
2020-01-16 17:50:32 +01: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 fc91fe1d34
[dxgi] Add fake implementation of DxgiFactory::EnumWarpAdapter
Apparently FIFA 19 needs this.
2019-12-09 23:27:56 +01:00