Philip Rebohle
5b72e84726
[dxgi] Use IDXGIVkMonitorInfo in DxgiSwapChain
2019-03-14 18:26:39 +01:00
Philip Rebohle
9f8c1d08a6
[dxgi,d3d11] Move swap chain creation to D3D11 module
2019-02-11 20:06:12 +01:00
Philip Rebohle
4e22e4bc3a
[dxgi] Refactor swap chain creation
...
Cleans up constructor and moves a bunch of common code
to the new CreateDxvkSwapChainForHwnd function, which
can be called from both d3d11 and dxgi.
Also fixes potential issues with the current implementation
of the IWineDXGISwapChainFactory interface.
2018-12-21 15:53:29 +01:00
Philip Rebohle
15078357dc
[dxgi] Implement and use GetWindowClientSize fuction
...
This new function provides a cleaner way to retrieve a
window's client size and can be used outside the swap
chain functions.
2018-12-21 15:14:07 +01:00
Philip Rebohle
d9cf8fdc58
[dxgi] Use new mode switch API for DxgiSwapChain
2018-12-11 16:02:46 +01:00
Philip Rebohle
aa2ec3f998
[dxgi] Port DxgiOutput and DxgiSwapChain to new monitor data API
...
This allows us to remove the dependency between DxgiSwapChain
and DxgiVkAdapter without losing gamma control emulation.
2018-12-11 15:32:54 +01:00
Philip Rebohle
57e814717e
[dxgi] Move GetOutputFromMonitor to swap chain class
...
Not a great solution, but we only need it for the swap chain anyway.
2018-12-10 12:38:33 +01:00
Philip Rebohle
9e9e17348f
[dxgi] DxgiSwapchain: Remove SetGammaControl methods
...
These were only used internally to forward stuff to the presenter
anyway, so we might as well call that method directly.
2018-12-10 12:34:57 +01:00
Philip Rebohle
7eb60daf63
[dxgi] DxgiSwapchain: Take factory as IDXGIFactory
...
No need to be specific about the exact type of factory.
2018-12-10 12:10:15 +01:00
Philip Rebohle
80b9f1d03b
[dxvk] Remove DxvkSurface
2018-11-28 12:44:18 +01:00
Philip Rebohle
9b923bb386
[dxvk] Remove DxvkSwapChain
2018-11-28 12:44:17 +01:00
Philip Rebohle
c25483e856
[dxgi] Implement IDXGISwapChain3
...
- Stub IDXGISwapChain3::ResizeBuffers1
2018-11-15 18:02:27 +01:00
Philip Rebohle
23ac9b5277
[dxgi] Implement IDXGISwapChain2 stubs
...
Most of the additions are stubs for now, but we should be
able to implement most of the functionality at a later time.
None of the backends implement this yet, but this should be
relatively easy to do.
2018-11-15 17:08:35 +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
93d88afab9
[general] Fix some old includes
2018-11-02 14:37:59 +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
7b9726fd93
[d3d11] D3D11Presenter -> D3D11PresentDevice
2018-10-23 15:10:01 +02:00
Philip Rebohle
3b5b20ca3f
[dxgi] Remove old DXGI presenter
2018-10-23 14:58:57 +02:00
Philip Rebohle
b53f6661f8
[dxgi] Use new presenter for D3D11
2018-10-23 14:58:57 +02:00
Philip Rebohle
62e4c867ec
[dxgi] Relax IDXGISwapChain thread safety
...
Fixes a deadlock in Dragon Age: Inquisition.
2018-08-04 10:16:40 +02:00
Philip Rebohle
d1b705bf0d
[dxgi] Implemented IDXGISwapChain1
2018-05-23 01:06:34 +02:00
Philip Rebohle
5a61d81135
[dxgi] Stubbed out IDXGISwapChain1
2018-05-22 23:50:28 +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
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
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
Philip Rebohle
f5679211cd
[dxgi] Re-implement gamma control functions
2018-04-12 13:38:22 +02:00
Philip Rebohle
3c6eb91c63
[dxgi] Remove Output reference from DxgiSwapChain
2018-04-12 01:28:44 +02:00
Philip Rebohle
dd3f4c89ac
[dxgi] Implement gamma control methods for DxgiOutput
2018-04-10 22:07:25 +02:00
Philip Rebohle
f13011f487
[dxgi] Implement gamma ramp in presenter
...
Will be used to fake IDXGIOutput::SetGammaControl.
2018-04-10 20:44:55 +02:00
Philip Rebohle
8d3dcba8d5
[dxgi] Renamed private DXGI interfaces
2018-03-28 19:06:00 +02:00
Philip Rebohle
17cdccd1ce
[dxgi] Use recursive locking and report fullscreen state changes early
...
Fixes lockups in fullscreen mode in a certain weeb game.
2018-02-14 13:11:59 +01:00
Philip Rebohle
10269876e3
[dxgi] Initial fullscreen support
...
The implementation is highly experimental and may cause issues.
Tested with DXUT-based Microsoft SDK samples and Nier:Automata.
2018-01-13 18:56:15 +01:00
Philip Rebohle
4412f2f5ff
[dxgi] Reimplemented parts of DxgiSwapchain with win32 APIs
...
This solves issues in applications that create more than one
swap chain for a given window, and helps applications that
don't like SDL interference in general. Fullscreen support
is currently missing entirely.
2017-12-31 00:23:34 +01:00
Philip Rebohle
2c5b1c151f
[d3d11] Refactored texture creation
2017-12-19 16:01:50 +01:00
Philip Rebohle
2a266eaad4
[general] Added 32-bit support
2017-12-12 12:50:52 +01:00
Philip Rebohle
5f0e94138e
[dxvk] Implemented support for multisampled images and render targets
2017-12-12 00:27:49 +01:00
Philip Rebohle
e95dc64c77
[dxgi] Removed unused members from DxgiSwapChain
2017-12-07 00:56:13 +01:00
Philip Rebohle
77ca0a84b7
Revert "[dxgi] Removed SDL dependencies from DxgiSwapChain"
...
This reverts commit 245ba75123
.
2017-12-05 15:20:03 +01:00
Philip Rebohle
245ba75123
[dxgi] Removed SDL dependencies from DxgiSwapChain
2017-12-05 14:43:03 +01:00
Philip Rebohle
f1ee761290
[dxgi] DxgiPresenter now picks format depending on swap chain format
2017-12-04 22:21:02 +01:00
Philip Rebohle
9fa6592b7d
[dxgi] Added initial support for format conversion
2017-12-04 11:33:04 +01:00
Philip Rebohle
5acc65504f
[dxgi] Added DxgiPresenter to render back buffers to the swap chain
2017-11-29 21:46:09 +01:00
Philip Rebohle
b35f0c64b4
[dxgi] Refactored swap chain <-> device communication
2017-11-29 16:23:33 +01:00
Philip Rebohle
a956c1b8ac
[dxgi] Added DxgiResource for image and buffer creation
2017-11-29 15:16:07 +01:00
Philip Rebohle
ad9f71fa02
[dxgi] Implemented DxgiSwapChain::GetBuffer and more of Present
2017-11-29 07:55:44 +01:00
Philip Rebohle
0cdc13d785
[dxgi] Renamed private DXGI interfaces
2017-11-27 15:51:53 +01:00
Philip Rebohle
0e5cae826f
[dxgi] DXVK swap chain creation plus some experimental Present code
2017-11-26 18:38:50 +01:00
Philip Rebohle
26e662e12c
[dxgi] Implemented SDL-backed DxgiSwapChain methods
2017-11-26 15:29:57 +01:00