1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

885 Commits

Author SHA1 Message Date
Philip Rebohle
7e975bbdfc
[dxvk] Move blend constants and stencil ref state to DxvkDynamicState
For consistency with how depth bias is being stored.
2019-01-17 22:26:27 +01:00
Philip Rebohle
95815a075b
[dxvk] Move depth bias out of rasterizer state
While the previous model corresponded to D3D11, it does
not reflect that the backend treats it the same way as
e.g. blend constants.
2019-01-17 22:25:21 +01:00
Philip Rebohle
8cc4497f11
[dxvk] Only update index buffer for indexed draws
This is somewhat uncommon, but we sometimes bind an index
buffer in a render pass that doesn't get used at all.
2019-01-17 03:15:21 +01:00
Philip Rebohle
321feed728
[dxvk] Bump state cache version to v3
We're still going to try and fix up v2 entries. This may
cause unnecessary pipelines to be created for games that
actually use depth bias.
2019-01-17 02:32:09 +01:00
Philip Rebohle
0d84ebd4c9
[dxvk] DepthClampEnable -> DepthClipEnable
There are subtle differences between the two that we
should deal with in the backend at some point.
2019-01-17 01:59:10 +01:00
Philip Rebohle
422198952a
[dxvk] Use minimal set of dynamic state
We don't need to enable blend constants for pipelines that don't
have blending enabled, etc. This helps reduce the number of API
calls slightly and may help the driver work more efficiently.
2019-01-16 20:55:41 +01:00
Philip Rebohle
190f114449
[dxvk] Add methods to check which dynamic states a pipeline uses 2019-01-16 20:01:20 +01:00
Philip Rebohle
59462f3231
[dxvk] Don't re-emit dynamic state every time we bind a pipeline
This used to be necessary on some drivers that would lose dynamic
state upon pipeline bindings, but that no longer seems to be the
case.
2019-01-16 17:47:31 +01:00
Philip Rebohle
ddce33692c
[meta] Release v0.95 2019-01-12 21:42:49 +01:00
Philip Rebohle
3935d2540e
[util] Get rid of explicit wchar_t parameter
We shouldn't be catering to Windows' weird string encoding mechanisms.
2019-01-11 13:43:15 +01:00
Philip Rebohle
f7dbcbe882
[dxvk] Introduce command type with extra data
The additional data is stored as a struct which can be
modified after submitting the command to the CS chunk.
2019-01-10 16:59:53 +01:00
Philip Rebohle
9faf841f32
[dxvk] Remove DxvkPhysicalBuffer and friends 2019-01-09 18:05:01 +01:00
Philip Rebohle
8b5db80fbd
[dxvk] Reimplement DxvkBuffer
Avoids the DxvkPhysicalBuffer indirection and keeps all buffer
objects alive until the DxvkBuffer itself gets destroyed.
2019-01-09 18:04:46 +01:00
Philip Rebohle
cc61e38b9c
[dxvk] Reimplement DxvkBufferView
Instead of recreating the buffer view every single time the
underlying buffer gets invalidated, this keeps all buffer
views around until the object itself gets destroyed.
2019-01-09 18:02:00 +01:00
Philip Rebohle
61fdf4ef64
[dxvk] Use DxvkBufferSliceHandle for dummy resources 2019-01-09 18:02:00 +01:00
Philip Rebohle
c8e1813b07
[dxvk] Use DxvkBufferSliceHandle for staging buffers 2019-01-09 18:02:00 +01:00
Philip Rebohle
004db3677b
[dxvk] Use DxvkBufferSliceHandle for transform feedback 2019-01-09 15:13:04 +01:00
Philip Rebohle
17398e47bd
[dxvk] Use DxvkBufferSliceHandle for buffer memory barriers 2019-01-09 15:03:17 +01:00
Philip Rebohle
bbb7728b58
[dxvk] Introduce DxvkBufferSliceHandle
This struct is meant to replace DxvkPhysicalBufferSlice in the long
run, in a way that doesn't require extra reference counting.
2019-01-09 14:56:02 +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
d0ee7f54bf
[hud] Add DXVK_HUD=full option
Enables all HUD elements at once. Close #842.
2019-01-07 19:23:00 +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 c5deedef2dcc920f29061c50e097f66a32f1f05e,
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
92f3648efa
[meta] Release 0.94 2018-12-15 13:54:57 +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
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
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
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
f7b3b9ca5c
[dxvk] Add new methods to find adapters by LUID or device ID
Co-authored-by: Zhiyi Zhang <zzhang@codeweavers.com>
2018-12-04 19:38:52 +01:00
Philip Rebohle
bb1f431e44
[dxvk] Query device ID information if available
Co-authored-by: Zhiyi Zhang <zzhang@codeweavers.com>
2018-12-04 19:38:52 +01:00
Philip Rebohle
de29174d42
Revert "[vr] Cosmetic code cleanup"
This reverts commit a3bf90f5a3fe050ffae353f80bc5608c7c9a1244.

Crashes SuperHot VR for some reason.
2018-12-04 18:50:11 +01:00
Philip Rebohle
d1f179c5af
[util] Add likely/unlikely macros 2018-11-29 22:53:04 +01:00
Philip Rebohle
092cad0e76
[dxvk] Remove DxvkSemaphore 2018-11-28 12:44:18 +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
81306cdc11
[dxvk] Support new Vulkan presenter in DxvkDevice 2018-11-28 12:44:17 +01:00
Philip Rebohle
746529b71b
[dxvk] Pass raw semaphore handles to submitCommandList 2018-11-28 12:44:17 +01:00
Philip Rebohle
4057937d2d
[dxvk] Refactor descriptor set allocation
With this new approach, descriptor pools are decoupled from the
command list they are used with. Instead, the DXVK context takes
ownership of a single descriptor pool until it runs out of memory.

This reduces the amount of memory wasted for under-utilized pools
and should this reduce an application's memory footprint.
2018-11-27 11:42:13 +01:00
Philip Rebohle
eb7a5da975
[dxvk] Rebalance descriptor set allocation
This should more closely reflect what applications actually use.
The basic idea here is that it is better for apps to run out of
descriptors before running out of sets and thus reduce the
overall memory footprint of the application.
2018-11-27 10:04:16 +01:00
Philip Rebohle
2d55852777
[dxvk] Disable state cache for Anno 2205
Fixes #686.
2018-11-24 20:04:21 +01:00
Philip Rebohle
10b272b4c9
[meta] Release 0.93 2018-11-24 10:41:41 +01:00
Philip Rebohle
968a085f1e
[dxvk] Query device subgroup properties
Also query the device properites for this extension as well
as support for subgroup operations on this device.
2018-11-21 11:17:09 +01:00
Philip Rebohle
67e10246cb
[dxvk] Request Vulkan 1.1 instance
Falls back to a regular 1.0 instance on old drivers.
We need to do this in order to legally use SPIR-V 1.3.
2018-11-21 11:17:09 +01:00
Philip Rebohle
dbd7db3328
[dxvk] Fix typo around dual-src blending
Fixes e74411704277009169a31f0bc34951b9f67be9c2
2018-11-20 19:55:08 +01:00
Philip Rebohle
bcd5a9235c
[dxvk] Make use of VK_AMD_memory_overallocation_behavior
Currently only supported on AMDVLK. Enforces memory limits on a driver
level unless the corresponding dxvk.allowMemoryOvercommit option is enabled.
2018-11-20 15:50:41 +01:00
Philip Rebohle
99f6953e89
[dxvk] Store DXVK options directly with the instance object 2018-11-20 15:50:01 +01:00
Philip Rebohle
c61200d35f
[dxvk] Introduce single-use mode for CS chunks
This allows us to reset the CS chunk immediately while executing it,
which can reduce the overhead of the reset operation and may lead to
resources being released earlier.
2018-11-20 10:35:23 +01:00