Philip Rebohle
6c2f16fce8
[dxgi] Add methods to retrieve original format mappings
2019-03-26 17:54:14 +01:00
Philip Rebohle
be1832a348
[d3d11] Don't sample gamma texture if the gamma curve is identity
...
Saves some GPU time in games that don't use DXGI gamma control at all.
2019-03-24 18:07:21 +01:00
Philip Rebohle
1656860486
[dxgi] Remove obsolete global monitor helper functions
2019-03-14 18:26:39 +01:00
Philip Rebohle
5b72e84726
[dxgi] Use IDXGIVkMonitorInfo in DxgiSwapChain
2019-03-14 18:26:39 +01:00
Philip Rebohle
50347e1256
[dxgi] Use IDXGIVkMonitorInfo in DxgiOutput
2019-03-14 18:26:39 +01:00
Philip Rebohle
7d5b5f288c
[dxgi] Implement IDXGIVkMonitorInfo for DxgiFactory
2019-03-14 18:26:39 +01:00
Philip Rebohle
cfdac13ea5
[dxgi] Add new COM interface for per-monitor data
2019-03-14 18:26:37 +01:00
Joshua Ashton
62a833b528
[dxgi] Correct return values for CreateDXGIFactory[1/2]
2019-02-27 22:01:04 +01:00
Philip Rebohle
746562de5a
[dxgi,d3d11] Remove IDXGIVkPresentDevice
2019-02-11 20:06:12 +01:00
Philip Rebohle
9f8c1d08a6
[dxgi,d3d11] Move swap chain creation to D3D11 module
2019-02-11 20:06:12 +01:00
Philip Rebohle
7ed91872b6
[dxgi] Use IWineDXGISwapChainFactory to create DXGI swap chains
2019-02-11 20:06:11 +01:00
Joshua Ashton
5ea8648cd9
[d3d11, d3d10, dxgi] Handle null ppvObject in QueryInterface. ( #909 )
...
When a null ppvObject is passed into a QueryInterface on any IUnknown, a E_POINTER should be returned as the result (and it should not crash.)
This matches native d3d11/d3d10/dxgi behaviour and the documentation found here https://docs.microsoft.com/en-us/windows/desktop/api/unknwn/nf-unknwn-iunknown-queryinterface(q_) for IUnknown.
2019-02-10 08:01:01 +01:00
Philip Rebohle
2bae3a5c8b
[d3d11] Reintroduce support for dxgi.maxFrameLatency
...
This option was previously ignored for some reason.
2019-01-14 18:29:25 +01:00
Philip Rebohle
cf9de54a12
[dxgi] Add dxgi.nvapiHack option to disable NVAPI workaround
2019-01-10 11:58:16 +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
1e393bf24d
[d3d11] Implement IWineDXGISwapChainFactory
...
See #822 .
2018-12-21 14:03:28 +01:00
Philip Rebohle
64aefcc2a1
[dxgi] Catch exception when instance creation fails
...
Fixes #810 .
2018-12-12 18:36:37 +01:00
Philip Rebohle
d16323f56b
[dxgi] Clean up DxgiAdapter
2018-12-11 16:03:37 +01:00
Philip Rebohle
a29b9f6779
[dxgi] Use new mode switch API for DxgiOutput
...
Also removes the old functions which are no longer needed.
2018-12-11 16:02:46 +01:00
Philip Rebohle
d9cf8fdc58
[dxgi] Use new mode switch API for DxgiSwapChain
2018-12-11 16:02:46 +01:00
Philip Rebohle
1594a20b94
[dxgi] Add new functions to change the display mode of a monitor
2018-12-11 16:02:35 +01:00
Philip Rebohle
1db3c6d883
[dxgi] Remove SetOutputData and GetOutputData methods
2018-12-11 15:33:54 +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
e30bb498b6
[dxgi] Add functions to share per-monitor data between DXGI objects
2018-12-11 15:32:00 +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
86d4d31b7c
[dxgi] Ignore scaling and scanline order during fullscreen transitions
...
Games usually don't use these correctly anyway, so we might as well
ignore them, since DXVK's DXGI does not report scanline modes other
than UNSPECIFIED. Fixes #291 .
2018-12-06 16:38:45 +01:00
Philip Rebohle
df667b7b0e
[dxgi] Report Adapter LUID if available
2018-12-04 19:39:09 +01:00
Philip Rebohle
1cc0455c8a
[dxgi] Remove old DXGIDevice implementation and IDXGIVkDevice
...
Both have been moved to the D3D11 module and are no longer needed.
2018-12-04 19:38:52 +01:00
Philip Rebohle
d1f179c5af
[util] Add likely/unlikely macros
2018-11-29 22:53:04 +01:00
Philip Rebohle
af2f5cc77f
[dxgi] Remove format lookup methods from IDXGIVkAdapter interface
2018-11-28 19:06:34 +01:00
Philip Rebohle
193d24a3e2
[dxgi] Remove IDXGIVkBackBuffer
2018-11-28 18:15:27 +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
5d49644cdc
[dxgi] Hack: Report Nvidia cards as AMD cards by default
...
Prevents UE4 games from repeatedly trying to load nvapi.dll
on a performance-critical code path.
2018-11-20 13:15:39 +01:00
Andrew Eikum
aea4162198
[dxgi] MultiByteToWideChar counts length in characters
2018-11-16 19:53:37 +01:00
Philip Rebohle
e4d3357e55
[dxgi] Query window size before creating presenter
...
Otherwise we may pass a size of zero to the presenter.
2018-11-16 15:03:09 +01:00
Philip Rebohle
c25483e856
[dxgi] Implement IDXGISwapChain3
...
- Stub IDXGISwapChain3::ResizeBuffers1
2018-11-15 18:02:27 +01:00
Philip Rebohle
81bb561c75
[dxgi] Implement IDXGIAdapter3
2018-11-15 18:02:21 +01:00
Philip Rebohle
171251bc83
[dxgi] Implement IDXGIFactory4
...
Do not support WARP adapters for the moment.
2018-11-15 17:08:36 +01:00
Philip Rebohle
0b7e114cb0
[dxgi] Implement IDXGIDevice3
2018-11-15 17:08:36 +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
a849ffc56c
[dxgi] Implement IDXGIOutput3
2018-11-15 17:08:35 +01:00
Philip Rebohle
9af842801c
[dxgi] Implement IDXGIFactory3
2018-11-15 17:08:35 +01:00
Philip Rebohle
f03d87b918
[dxgi] Implement IDXGIOutput1
...
Required for DXGI 1.2.
2018-11-15 17:08:35 +01:00
Philip Rebohle
f7b2194e0b
[dxgi] Include DXGI 1.4 headers
2018-11-15 17:08:27 +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
0cfa5b16d3
[d3d11] Support R11G11B10 format in ClearUnorderedAccessViewUint
...
Silences an error message in Shadow of the Tomb Raider. Does not have
any consequences for this game because it initializes the view to 0.
2018-11-10 18:48:44 +01:00