Philip Rebohle
a40724aaf8
[dxvk] Add timeline semaphore entry points
...
Co-authored-by: Derek Lesho <dlesho@codeweavers.com>
2022-07-21 02:14:53 +02:00
Philip Rebohle
ec813e036c
[dxbc] Fix UAV write test
...
We broke this during the null descriptor refactor. Also make it so that
we don't generate conditionals when there's nothing to test.
2022-07-20 22:56:32 +02:00
Philip Rebohle
779f8b39cd
[spirv] Track currently active block ID
2022-07-20 22:38:03 +02:00
Philip Rebohle
a178c57aea
[dxvk] Remove barrier argument from render target transition functions
...
We're always using the same barrier set anyway.
2022-07-20 16:57:27 +02:00
Philip Rebohle
16eae7adde
[dxvk] Allow resetting the state cache using the DXVK_STATE_CACHE env var
2022-07-20 13:58:50 +02:00
Kassin Dornelles
75d0b1af96
[util] Remove Resident Evil 6 workaround
...
It's actually making things worse, so better use the default path
2022-07-20 12:00:13 +02:00
Philip Rebohle
2d93760002
[dxvk] Clarify feature enablement
...
And fall back to robustImageAccess if robustImageAccess2 is not supported.
Not what we want, but better than nothing.
2022-07-19 19:08:58 +02:00
Philip Rebohle
fc796abede
[dxvk] Bump engine version reported to the Vulkan driver
...
Might help with Fossilize stuff.
2022-07-19 15:27:18 +02:00
Philip Rebohle
0ba741b7d2
[dxvk] Use copy_commands2 functions for buffer <-> image copies
2022-07-19 15:16:54 +02:00
Philip Rebohle
23846ad577
[dxvk] Use copy_commands2 functions for image copies
2022-07-19 15:16:54 +02:00
Philip Rebohle
dc1d82deff
[dxvk] Use copy_commands2 functions for buffer copies
2022-07-19 15:16:54 +02:00
Philip Rebohle
f39d49772d
[dxvk] Use copy_commands2 functions for image resolves
...
Same idea as with blits, don't expose VkImageResolve2.
2022-07-19 14:10:47 +02:00
Philip Rebohle
ff81323228
[dxvk] Use copy_commands2 functions for image blits
...
Don't expose VkImageBlit2 to client APIs since we can't easily
support pNext chains, so just convert the struct internally.
2022-07-19 13:53:28 +02:00
Philip Rebohle
563b1d7801
[dxvk] Add entry points for copy_commands2
2022-07-19 13:49:01 +02:00
Philip Rebohle
330ff8fa48
[dxvk] Use synchronization2 functions for queue submissions
2022-07-19 02:27:31 +02:00
Philip Rebohle
0c79882e84
[dxvk] Use synchronization2 functions for events
2022-07-19 02:27:31 +02:00
Philip Rebohle
adb906b18c
[dxvk] Use synchronization2 functions for barriers
...
We don't really use the new stage/access flags yet, and I'm not sure
whether we will move to them since the benefits seem rather limited.
However, using the functions means we can bypass a lot of internal
translation inside some Vulkan drivers.
2022-07-19 02:27:31 +02:00
Philip Rebohle
0d65142136
[dxvk] Add entry points for new synchronization API
2022-07-18 22:49:49 +02:00
Philip Rebohle
17205f5353
[dxvk] Fix formatting in barrier function
2022-07-18 22:49:47 +02:00
Blisto91
e28b268351
[util] Enable disableMsaa option for Mary Skelter 2
2022-07-18 22:17:13 +02:00
Philip Rebohle
e6df48fa3e
[dxvk] Fix a derp
2022-07-18 14:53:29 +02:00
Philip Rebohle
a76b5693f3
[dxvk] Clean up remaining object creation code
2022-07-18 14:52:12 +02:00
Philip Rebohle
9ebeb8e502
[dxvk] Clean up instance creation code a bit
2022-07-18 14:51:40 +02:00
Philip Rebohle
a1ace8ef21
[dxvk] Clean up misc. code
2022-07-18 14:51:26 +02:00
Philip Rebohle
37f31ae1e7
[dxvk] Clean up more code around object creation in meta passes
2022-07-18 14:50:29 +02:00
Philip Rebohle
fc461d0e27
[dxvk] Clean up some swapchain creation code
2022-07-18 14:49:28 +02:00
Philip Rebohle
04f43f0d2c
[dxvk] Clean up sampler creation code
2022-07-18 14:36:08 +02:00
Philip Rebohle
6276d5503c
[ðxvk] Clean up some device creation code
2022-07-18 14:31:09 +02:00
Philip Rebohle
d29d403c67
[dxvk] Clean up buffer and buffer view creation code
2022-07-18 14:21:23 +02:00
Philip Rebohle
0b11995dea
[dxvk] Clean up image and image view creation code
...
Someone was dunk while setting pNext to VK_NULL_HANDLE instead of nullptr.
2022-07-18 14:19:06 +02:00
Philip Rebohle
8d1b9eca5d
[dxvk] Fix blending with A8 render targets
2022-07-17 17:06:42 +02:00
Philip Rebohle
f15466a2c5
[dxvk] Remove remaining built-in specialization constants
2022-07-17 17:06:42 +02:00
Philip Rebohle
0f16a8f70d
[dxbc] Remove output mapping code
2022-07-17 17:06:42 +02:00
Philip Rebohle
568aae8667
[dxvk] Use SPIR-V pass to swizzle FS outputs instead of spec constants
2022-07-17 17:06:42 +02:00
Philip Rebohle
c401167161
[dxvk] Introduce SPIR-V pass to inject render target swizzles
2022-07-17 17:06:40 +02:00
Leopard1907
48ac9b27e4
eveonline-dx12_workaround
...
Launcher probes feature level 12_1, if it fails to probe it DX12 option in launcher stays greyed out, doesn't let user enable DX12.
2022-07-17 13:51:40 +02:00
Philip Rebohle
d898eff3be
[dxvk] Don't remove private inpurs from interface list in SPIR-V 1.4+
...
And if we have to, exit after one iteration since otherwise our iterator
gets invalidated.
2022-07-17 03:57:05 +02:00
Philip Rebohle
ff39819086
[dxvk] Merge methods to bind a compute pipeline
...
There is no workload in practice where the same shader will be used
multiple times with different spec constants, so there is no good
reason to have two dirty flags or to split lookup and binding.
2022-07-17 00:09:30 +02:00
Philip Rebohle
a1c3df7750
[dxvk] Always pre-compile compute shaders
...
We didn't initially do this because the pipeline library code
unconditionally used pNext chains to pass shader code. However,
shader module creation has since been refactored, and now there
is no good reason not to compile compute shaders immediately.
Also fix the stat counter while we're at it.
2022-07-16 23:42:46 +02:00
Philip Rebohle
8747c0f105
[dxvk] Remove unused method from graphics pipeline code
2022-07-16 23:17:06 +02:00
Philip Rebohle
6e8598846d
[dxvk] Allow mutable commands to be recorded into CS chunks
2022-07-16 20:19:46 +02:00
Philip Rebohle
39dd25e972
[dxvk] Unconditionally call updateDynamicState
...
And optimize that instead. The previous check would always succeed anyway
since we'd set unused dynamic states to dirty, which is necessary for us
to update that state once it's actually used by a pipeline.
2022-07-16 14:47:54 +02:00
Philip Rebohle
dadc1bc8ff
[dxvk] Add dirty tracking for dynamic depth-stencil state
...
Significantly reduces the number of API calls and potentially
context rolls when switching between different base pipelines.
2022-07-16 13:27:55 +02:00
Philip Rebohle
2fabc90f46
[dxvk] Add fast path for rasterizer state comparison
2022-07-16 13:21:58 +02:00
Philip Rebohle
e2340d7224
[dxvk] Fix dual-source blending with multiple bound render targets
...
We can't write to more than one render target, so zero out the write
mask. Also, normalize blend state for disabled render targets for
good measure.
2022-07-15 23:51:04 +02:00
Philip Rebohle
9e7b93b55b
[dxvk] Fix infinite recursion caused by rebase derp
2022-07-15 19:32:03 +02:00
Philip Rebohle
661a8cd258
[dxvk] Be consistent about enabling dynamic blend constants
2022-07-15 17:25:39 +02:00
Philip Rebohle
46a596dd84
[dxvk] Normalize vertex input state using vertex shader input mask
...
Filters out unused bindings and attributes when creating Vulkan pipelines.
2022-07-15 17:25:39 +02:00
Philip Rebohle
2fee959515
[dxvk] Bump state cache format to v15
2022-07-15 17:25:39 +02:00
Philip Rebohle
35fad0aa6c
[dxvk] Use dynamic vertex strides whenever possible
...
May reduce the number of pipeline permutations, as well as the overhead
of the bindVertexBuffer call.
2022-07-15 17:25:39 +02:00