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

170 Commits

Author SHA1 Message Date
Philip Rebohle
fc3ff78083
[dxgi] Map typeless formats to their UNORM variants by default
Works around some annoyances with RenderDoc.
2018-06-12 22:35:02 +02:00
Philip Rebohle
e8ac81fe8a
[dxvk] Removed support for depth bounds test
This feature is not used in D3D11, so we don't need backend support.
2018-06-06 13:11:09 +02:00
Philip Rebohle
e615fc19a9
[dxgi] Support SyncInterval values > 1
Required for Eve Online and the Unity Blacksmith demo.
2018-05-28 21:06:35 +02:00
Philip Rebohle
23ba3e228a
[dxgi] Add option for deferred surface creation
Deferred surface creation is required for Frostpunk due to conflicts
with the D3D9 swap chain created by the game before it presents the
first frame to the DXGI swap chain, but breaks NieR:Automata due to
threading issues.
2018-05-24 12:31:21 +02:00
Philip Rebohle
66db3e8714
[dxgi] Add app-specific DXGI options 2018-05-24 12:31:04 +02:00
Philip Rebohle
61049c33fb
[dxgi] Reduce reported VRAM on 32-bit platforms
This is closer to what Windows does, and some applications may have
trouble with more than 3GB VRAM.
2018-05-24 10:48:06 +02:00
Philip Rebohle
38c5e57025
[dxgi] Refactor Vulkan swap chain and surface creation
Creating the Vulkan surface at the latest possible moment fixes
an issue with Frostpunk, which renders to a D3D9 swap chain
before presenting to the GXGI swap chain.
2018-05-23 13:03:12 +02:00
Philip Rebohle
531732fe91
[dxgi] Add IDXGIFactory2 to supported interfaces 2018-05-23 01:32:52 +02:00
Philip Rebohle
d1b705bf0d
[dxgi] Implemented IDXGISwapChain1 2018-05-23 01:06:34 +02:00
Philip Rebohle
58fa815926
[dxgi] Fixed error message formatting in DxgiDevice 2018-05-22 23:52:12 +02:00
Philip Rebohle
56e7389495
[dxgi] Stubbed out IDXGIFactory2 2018-05-22 23:52:03 +02:00
Philip Rebohle
5a61d81135
[dxgi] Stubbed out IDXGISwapChain1 2018-05-22 23:50:28 +02:00
Philip Rebohle
979ba2d7c6
[dxgi] Implemented IDXGIAdapter2 2018-05-22 23:48:07 +02:00
Philip Rebohle
3c611503d6
[dxgi] Fix reported VRAM size for 32-bit builds 2018-05-07 19:04:25 +02:00
Philip Rebohle
757be61b70
[dxgi] Use per-adapter format lookup tables
Allows Nvidia cards to use 24-bit depth buffers.
2018-05-06 13:12:30 +02:00
Philip Rebohle
fb3dbd8bcd
[d3d11] Relaxed view format compatibility check
Fixes regressions in multiple games. MSDN docs regarding
format compatibility are wrong in every way.
2018-05-05 20:16:01 +02:00
Philip Rebohle
e1a27faa4a
[dxgi] Added DXGI format family info 2018-05-05 12:57:22 +02:00
Philip Rebohle
fe24d76fd0
[dxgi] Report D3D10 support only when DXVK_FAKE_DX10_SUPPORT is set
Should fix a regression in Assassin's Creed 4: Black Flag.
2018-05-05 00:48:35 +02:00
Philip Rebohle
94b74667e9
[dxgi] Fix Fullscreen->Windowed transition (again)
We need to preserve the flags if the application changes them.
This is in line with what native DXGI does.
2018-05-04 21:55:38 +02:00
Philip Rebohle
6cbc133619 [dxgi] Use ShowWindow instead of redundant SetWindowPos call 2018-05-04 17:53:02 +02:00
Philip Rebohle
de803b3670 [dxgi] Report refresh rate as a multiple of 1000 Hz
More closely emulates what Windows dows.
2018-05-04 17:37:29 +02:00
Philip Rebohle
77d0424d7f [dxgi] Advertize support for ID3D10Device and ID3D10Device1
We don't actually support these, but applications can reasonably
assume that D3D10 is supported if D3D11 is present. Closes #329.
2018-05-02 17:00:56 +02:00
Philip Rebohle
e30a8299e6 [dxvk] Refactor DxvkFramebuffer and DxvkRenderpass 2018-05-02 00:45:10 +02:00
Philip Rebohle
41fca78d27 [dxgi] Add GetDevice method to IDXGIVkInteropSurface
Convenient way of getting the IDXGIVkInteropDevice from the surface
without having to go through several D3D interface queries.
2018-05-01 23:30:39 +02:00
Philip Rebohle
4c298d486d [dxgi] Restore display mode even when the window got destroyed 2018-04-30 20:15:35 +02:00
Philip Rebohle
46f2e4d864 [dxgi] CheckInterfaceSupport; Log interface queries 2018-04-30 20:01:50 +02:00
Philip Rebohle
ba53cf92ac Revert "[dxvk] Refactor DxvkFramebuffer and DxvkRenderpass"
This reverts commit 1bbfe77013.
Breaks Path of Exile.
2018-04-30 18:47:35 +02:00
Philip Rebohle
1bbfe77013 [dxvk] Refactor DxvkFramebuffer and DxvkRenderpass 2018-04-30 15:47:29 +02:00
Philip Rebohle
a32050374c [dxgi] Implement display mode changes
Allows games to change the screen resolution in fullscreen
mode. This is currently in a rough shape and some games may
not work as expected when selecting fullscreen mode.
2018-04-29 23:03:27 +02:00
Philip Rebohle
a3c561f9dc [dxgi] LeaveFullscreenMode: Correctly restore the window size 2018-04-29 17:26:00 +02:00
Philip Rebohle
81a0fa4805
[d3d11] Implemented IDXGIVkInteropSurface for common textures 2018-04-20 10:38:39 +02:00
Philip Rebohle
62b0e34a73
[d3d11] Implement IDXGIVkInteropDevice for D3D11Device 2018-04-20 00:19:03 +02:00
Philip Rebohle
c2854e1fb9
[dxgi] Added IDXGIVkInteropSurface interface 2018-04-19 20:13:53 +02:00
Philip Rebohle
478a87f6d2
[dxgi] Added IDXGIVkInteropDevice interface 2018-04-19 15:46:57 +02:00
Philip Rebohle
adb0f5e16b
[dxgi] DxgiSwapchain: Check whether window is valid
Fixes a GPU hang when closing Dark Souls 3 as well as similar
undesired behaviour in other games that continue to use the
DXGI swap chain after the window has been destroyed.
2018-04-18 17:30:46 +02:00
Philip Rebohle
bb3e3c9e4f
[dxgi] GetDisplayModeList: Report DXGI_MODE_SCALING_UNSPECIFIED
This is what happens on Windows 10. In addition, we might have
to add CENTERED and STRETCHED entries for non-native modes.
2018-04-18 16:04:17 +02:00
Philip Rebohle
ffe3028285
[dxgi] GetDisplayModeList: Sort display mode list
Some games, including Dark Souls 3, rely on display modes
being returned in a specific order. This emulates Windows
10 behaviour.
2018-04-18 15:33:56 +02:00
Philip Rebohle
01061e43aa
[dxgi] GetDisplayModeList: Do not report modes as stretched
This is more in line with what Windows does. Games should now be
able to list more than just the monitor's maximum resolution again.
2018-04-18 15:33:15 +02:00
Philip Rebohle
af19bba048
[dxgi] Remove support gamma-related ScaleAndOffsetSupported
Some games, including Heroes of the Storm (#287), do not set
the values correctly so it's better to ignore them altogether.
2018-04-15 20:12:41 +02:00
Philip Rebohle
8d3e60c2f1
[dxgi] Cosmetic changes 2018-04-14 12:02:55 +02:00
Philip Rebohle
ded6dec7eb
[dxgi] DxgiVkPresenter: use Microsoft-style API 2018-04-13 13:57:29 +02:00
Philip Rebohle
5d7c83855e
[dxgi] Use 1D texture to implement the gamma lookup table
This allows us to abuse hardware texture filters for linear
interpolation. Should fix an issue with the latest Nvidia
beta drivers.
2018-04-13 13:47:15 +02:00
pchome
f806c8eafc [dxgi] Use GetMonitorInfoW function explicitly (#271)
No `std::mbstowcs` string conversion needed than.
W/o this change I have different output when running `dxgi-factory.exe` compiled with MinGW:
* `Output 0:`
  ```
  \\.\DISPLAY1 (default)
  \\.\DISPLAY1 (DXVK MinGW)
  \            (DXVK winebuild)
  ```

With this patch all three variants are identical (`\\.\DISPLAY1`)

p.s. same problem in dxgi_adapter.cpp, but `deviceProp.deviceName` is vulkan structure parameter (char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]).
2018-04-12 20:12:48 +02:00
Philip Rebohle
db541d188f
[dxgi] Added static format mapping table 2018-04-12 17:49:14 +02:00
Philip Rebohle
3405b89494
[dxgi] Rename and move DXGI format lookup related structures
This is part of a major refactoring process regarding DXGI->Vulkan
format conversions. Since we don't patch format lookup tables any
longer, we can create a global lookup table.
2018-04-12 15:36:01 +02:00
Philip Rebohle
f5679211cd
[dxgi] Re-implement gamma control functions 2018-04-12 13:38:22 +02:00
Philip Rebohle
654e9e6fd8
[dxgi] Re-enable strong reference to DxgiAdapter in DxgiOutput 2018-04-12 01:51:28 +02:00
Philip Rebohle
c9c3bc12cc
Revert "[dxgi] Create persistent DxgiOutput object"
This reverts commit ad7f0971cf.
Causes crashes in Overwatch due to weird refcount behaviour.
2018-04-12 01:48:57 +02:00
Philip Rebohle
3c6eb91c63
[dxgi] Remove Output reference from DxgiSwapChain 2018-04-12 01:28:44 +02:00
Philip Rebohle
c88170966f
[dxgi] Remove gamma control methods from DxgiOutput 2018-04-12 01:15:40 +02:00