Philip Rebohle
2f1f8ba0a4
[d3d11] Fix CheckMultisampleQualityLevels behaviour
...
- Querying DXGI_FORMAT_UNKNOWN should not return an error,
and should advertize support for a sample count of 1
- Querying non-power of two sample counts should not fail
- Invalid arguments should be handled properly
2019-01-09 00:28:25 +01:00
Philip Rebohle
6282280f8d
[util] Enable raw SSBOs for FIFA 19
...
This game incorrectly binds a typed buffer view when the shader
expects a structured buffer. Using raw SSBOs matches Windows
behaviour in this case. Fixes #642 .
2019-01-08 23:18:46 +01:00
Philip Rebohle
4fe5929799
[dxbc] Add options to enable/disble early discard and raw ssbo use
2019-01-08 20:58:18 +01:00
Philip Rebohle
524227d21c
[util] Add tristate config option type
2019-01-08 20:57:38 +01:00
Philip Rebohle
214891ffc6
[d3d11] Improve error logging when texture creation fails
2019-01-08 10:34:48 +01:00
Philip Rebohle
9890b87225
[dxbc] Fix incorrect error message
2019-01-08 00:46:24 +01:00
Philip Rebohle
70ebc082b3
[meta] Update README
2019-01-07 19:23:32 +01:00
Philip Rebohle
d0ee7f54bf
[hud] Add DXVK_HUD=full option
...
Enables all HUD elements at once. Close #842 .
2019-01-07 19:23:00 +01:00
eszlari
22172b2afc
[build] Use meson_version ( #845 )
2019-01-04 11:46:08 +01:00
Chip Davis
6feeb4bbba
Only set 2D_ARRAY_COMPATIBLE on 3D textures that will be rendered to.
...
It is impossible to create a 2D or 2D array SRV or UAV from a 3D
texture. Nor is it possible to create a DSV from a 3D texture.
Therefore, the only time we ever need to create a 2D array view from a
3D texture is when we're going to render to it.
2019-01-02 19:15:23 +01:00
Robin
7a69135ba1
[d3d10] Check if d3d11 pointers are null
2019-01-02 19:13:42 +01:00
Robin
1750b14c2a
[d3d11] Lock in SynchronizeCsThread
...
This prevents fixes threading issues with D3D10 games when
Present() gets called.
Fixes #567 .
2018-12-30 21:08:52 +01:00
Robin
4c9af44356
[d3d10] Use context lock instead of separate device lock
2018-12-30 21:08:52 +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
Andrew Eikum
dc2cde3395
[vr] Cosmetic code cleanup, again
...
This reverts commit 20353f6f62f802bab9618b19940748af19cc1812, but fixes
openvr_api module refcounting.
2018-12-20 01:35:27 +01:00
Philip Rebohle
652525119f
[vr] Query required device extensions during instance creation
...
After the DXGI device refactor in c5deedef2d
,
device extensions required for OpenVR interop would not be enabled correctly
because the VR-related code is now being called from both the D3D11 and DXGI
DLLs rather than just the DXGI DLL, and the D3D11 one is not in the expected
state when querying required device extensions. Querying them during instance
creation fixes that problem as it moves the relevant code back to the same
DLL which creates the Vulkan instance.
2018-12-20 01:32:56 +01:00
Philip Rebohle
f638689b2a
[d3d11] Remove some unnecessary type casts in interop code
2018-12-19 22:34:47 +01:00
Philip Rebohle
92f3648efa
[meta] Release 0.94
2018-12-15 13:54:57 +01:00
Philip Rebohle
e5beab2872
[dxbc] Rename struct_c0 -> c0_t etc.
2018-12-14 23:45:38 +01:00
Philip Rebohle
399e72bbd1
[tests] Enable raw SSBO option
2018-12-14 23:45:38 +01:00
Philip Rebohle
01b8e74457
[dxbc] Use raw SSBOs for raw and structured buffers if appropriate
2018-12-14 23:45:37 +01:00
Philip Rebohle
48548eb894
[dxbc] Add useRawSsbo option
...
ENabled when we can replace texel buffers for raw and structured
buffers with raw SSBOs.
2018-12-14 23:45:37 +01:00
Philip Rebohle
fd201c4c53
[dxvk] Bind buffer slice when binding buffer view
...
This is going to be necessary when we can bind raw buffer views as SSBOs.
2018-12-14 23:45:37 +01:00
Philip Rebohle
0bc2498570
[dxvk] Relax compute shader barriers for read-only storage buffers
2018-12-14 23:45:37 +01:00
Philip Rebohle
a0de90861c
[dxvk] Store access flags in resource slots
...
Makes distinguishing read-only resources from read-write
resources significantly easier.
2018-12-14 23:45:37 +01:00
Philip Rebohle
3fff5d56b3
[d3d11] Mark raw and structured buffers as potential storage buffers
2018-12-14 23:45:37 +01:00
Philip Rebohle
0d230eb447
[spirv] Add OpArrayLength instruction
2018-12-14 23:45:34 +01:00
Philip Rebohle
328871de7e
[d3d11] Re-introduce support for dxgi.numBackBuffers option
2018-12-14 14:58:36 +01:00
Philip Rebohle
64aefcc2a1
[dxgi] Catch exception when instance creation fails
...
Fixes #810 .
2018-12-12 18:36:37 +01:00
Philip Rebohle
f276bcd0e7
[dxbc] Check for RADV/Nvidia drivers explicitly using the new function
...
This way, only RADV gets locked out of using early discard whereas
AMDVLK and -PRO are able to use it.
2018-12-12 16:27:01 +01:00
Philip Rebohle
598280dc3f
[dxvk] Add function to check for a specific driver / driver version
2018-12-12 15:43:39 +01:00
Philip Rebohle
6c992c7b02
[dxvk] Enable VK_KHR_driver_properties
2018-12-12 15:16:25 +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
9572425912
[dxvk] Clear color write mask if fragment shader output is undefined
...
Fallout 76 writes undefined data to one specific render target
otherwise. Refs #779 .
2018-12-07 13:43:27 +01:00
Philip Rebohle
ef63328eb8
[d3d10] Initialize DSV pointer in OMGetRenderTargets
...
Completely redundant, but apparently MSVC refuses to compile the
code otherwise. Refs #801 .
2018-12-07 13:43:14 +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
171cf53bc0
[dxvk] Don't re-initialize 3D images when clearing render targets
...
Layout transitions apply to the full subresource, even if we only
render to one slice. Fixes #775 on Nvidia Kepler and Maxwell cards.
2018-12-04 23:25:50 +01:00
Philip Rebohle
df667b7b0e
[dxgi] Report Adapter LUID if available
2018-12-04 19:39:09 +01:00
Philip Rebohle
033ea0c31b
[d3d11] Find Vulkan device if DXGI adapter was not created by DXVK
...
Tests the LUID, then the PCI device IDs, and finally falls back
to the first Vulkan device available on the system. This allows
DXVK's d3d11.dll to be used without its own dxgi.dll, as long
as presentation support is implemented in some way.
With the previous changes, based on zzhiyi/dxvk@0fc3a24d96
Co-authored-by: Zhiyi Zhang <zzhang@codeweavers.com>
2018-12-04 19:38:52 +01:00