Philip Rebohle
4635c72e95
[d3d9] Use generic constant buffers for SWVP
2022-07-14 15:55:08 +02:00
Philip Rebohle
08c3c45853
[d3d9] Use generic constant buffer implementation
2022-07-14 15:55:08 +02:00
Philip Rebohle
e8d5ce94ea
[d3d9] Introduce D3D9ConstantBuffer
2022-07-14 15:55:08 +02:00
Philip Rebohle
bcd2be0698
[d3d11] Fix subtle bug in constant buffer rebinding
...
Previously, if the app called SetConstantBuffers1 with a non-zero
offset and a full UBO range, and then SetConstantBuffers with the
same buffer, we would not rebind that buffer at offset zero.
2022-07-14 15:14:25 +02:00
Philip Rebohle
aef2eb14df
[dxvk] Use BindConstantBufferRange for SetConstantBuffers1 if possible
...
Reduces ref counting overhead in the few games that use this.
2022-07-14 15:14:21 +02:00
Philip Rebohle
ce3eae59a9
[dxvk] Introduce bindResourceBufferRange
2022-07-14 14:56:13 +02:00
Philip Rebohle
57445227ac
[d3d11] Fix render target validation (again)
...
This behaviour is rather obscure and undocumented, but testing shows
that DSV <-> RTV mismatches are allowed under some circumstances.
Fixes #2555 .
2022-07-14 12:39:14 +02:00
Robin Kertels
ce48b57f94
[d3d9] Allow POOL_SCRATCH targets in GetFrontBufferData
2022-07-13 14:01:12 +02:00
Blisto91
64d2260656
[d3d9] add D3DFMT_UNKNOWN to windowed BackBufferFormat
2022-07-13 13:03:05 +02:00
Philip Rebohle
95995041b0
[d3d9] Explicitly check for Unknown in CheckDeviceFormatConversion
2022-07-13 12:35:33 +02:00
Robin Kertels
10b174b52c
[d3d9] Fix barriers with staging buffers
2022-07-12 21:16:32 +01:00
Philip Rebohle
bd68f05c9b
[dxvk] Make emitRenderTargetReadbackBarrier more generic
...
And also remove the redundant pipeline barrier.
2022-07-12 17:29:11 +02:00
Philip Rebohle
5ff6f3a2ca
[dxvk] Fix graphics UAV barriers
...
We broke this when replacing gfxBarriers with execBarriers,
since starting a render pass instance clears queued up barriers.
2022-07-12 14:26:52 +02:00
Philip Rebohle
59475fb053
[dxvk] Remove cull mode and front face from pipeline state
...
And bump state cache version to v14.
2022-07-12 12:07:25 +02:00
Philip Rebohle
d3c8d21047
[dxvk] Make cull mode and front face dynamic state
2022-07-12 12:03:05 +02:00
Philip Rebohle
18d4a87333
[dxvk] Add pipeline flag for rasterizer discard
2022-07-12 11:42:24 +02:00
Philip Rebohle
77891d71db
[d3d11] Fix unused variable warning
2022-07-12 11:39:56 +02:00
Philip Rebohle
f99a833f51
[d3d11] Remove d3d11.constantBufferRangeCheck option
2022-07-12 02:11:39 +02:00
Philip Rebohle
e8f48c71ab
[dxvk] Always enable robustBufferAccess2 feature
...
And respect the required alignments when creating buffers.
2022-07-12 02:11:32 +02:00
Philip Rebohle
6f5ae58ccc
[dxvk] Remove dummy resources that are no longer needed
2022-07-12 01:54:22 +02:00
Philip Rebohle
6482898167
[dxvk] Mark VK_KHR_create_renderpass_2 as required
...
Dependency of VK_KHR_dynamic_rendering.
2022-07-12 00:54:24 +02:00
Philip Rebohle
379c2e545e
[util] Work around silly compiler warnings on GCC 12.1
...
No, we're not actually reading 64 bytes from a 1-byte area.
2022-07-11 19:24:09 +02:00
Philip Rebohle
52038b2f83
[dxvk] Ignore state cache for pipelines that can be fast linked
2022-07-11 16:23:14 +02:00
Philip Rebohle
ca52c5a67f
[dxvk] Don't read or create state cache file if state cache is disabled
2022-07-11 01:19:09 +02:00
Philip Rebohle
00cfee9d17
[d3d11] Ignore OMSetRenderTargets calls with incompatible view sizes
...
Fixes #2701 .
2022-07-10 15:17:00 +02:00
Matej Dian
1b89394aa0
[util] Enable cached dynamic resources for DayZ ( #2709 )
2022-07-09 15:51:04 +02:00
Philip Rebohle
2832083fe5
[dxvk] Properly log pipeline state on error
2022-07-09 13:53:20 +02:00
Philip Rebohle
c6168179bd
[dxvk] Re-add render target format validation
...
This was lost during the state cache and render target state rework.
2022-07-09 13:44:52 +02:00
Philip Rebohle
021aff1fc0
[dxvk] Support fomatting more Vulkan enum names
2022-07-09 13:41:07 +02:00
Philip Rebohle
02aa1736f5
[dxvk] Try to create cached optimized pipeline whenever possible
2022-07-09 13:41:07 +02:00
Philip Rebohle
df1908f7bf
[dxvk] Support creating shader stage infos with module identifiers
2022-07-09 13:41:07 +02:00
Philip Rebohle
52cc0a366e
[dxvk] Query shader module identifiers from shader pipeline libraries
2022-07-09 13:41:07 +02:00
Philip Rebohle
331c790592
[dxvk] Enable VK_EXT_shader_module_identifier if supported
2022-07-09 13:41:07 +02:00
Philip Rebohle
04545ab00a
[dxvk] Enable VK_EXT_pipeline_creation_cache_control if supported
2022-07-09 13:41:07 +02:00
Philip Rebohle
f4fd8c6c65
[dxvk] Remove in-memory pipeline cache
...
Doesn't really do much and only prevents Nvidia's disk cache
from working on 515.49.06 drivers.
2022-07-09 13:41:07 +02:00
Philip Rebohle
645886db8d
[hud] Display pipeline library count in HUD
2022-07-09 13:41:07 +02:00
Philip Rebohle
3552983084
[dxvk] Add stat counter for pipeline libraries
2022-07-09 13:41:07 +02:00
Philip Rebohle
4535fdc336
[dxvk] Pass pipeline manager to pipeline library constructor
2022-07-09 13:41:07 +02:00
Philip Rebohle
498444f1a8
[dxvk] Reuse linked base pipelines if possible
...
No reason to create identical pipelines multiple times.
2022-07-09 13:41:07 +02:00
Philip Rebohle
5562ff4472
[dxvk] Remove pipeline compile timing
...
Meaningless now.
2022-07-09 13:41:07 +02:00
Philip Rebohle
5d340e48b4
[dxvk] Improve pipeline state logging
2022-07-09 13:41:07 +02:00
Philip Rebohle
5e1569593a
[dxvk] Create full pipeline layout with INDEPENDENT_SETS_BIT
...
And use it to link pipelines as well as descriptor binding.
Should fix issues related to descriptors.
2022-07-09 13:41:07 +02:00
Philip Rebohle
b51d7a3cc0
[dxvk] Update descriptor sets after binding pipeline
2022-07-09 13:41:07 +02:00
Philip Rebohle
6256ab2a19
[dxvk] Use pipeline libraries to link base pipelines if possible
2022-07-09 13:41:07 +02:00
Philip Rebohle
7f9a04fd59
[dxvk] Don't keep pipeline locked when building optimized variant
...
Only lock when creating base variant, otherwise we'll have stutter.
2022-07-09 01:53:52 +02:00
Philip Rebohle
cc1575e8b7
[dxvk] Compile optimized graphics pipelines on worker threads if necessary
2022-07-09 01:53:52 +02:00
Philip Rebohle
b50ed2ceca
[dxvk] Deal with multiple pipeline handles for graphics pipeline instances
...
Also make the handles atomic since worker threads may access them when
compiling optimized pipeline variants.
2022-07-09 01:53:51 +02:00
Philip Rebohle
90454438b2
[dxvk] Introduce distinction between base and optimized pipelines
...
We need to know what kind of pipeline we're binding in order to apply
the correct dynamic state.
2022-07-09 01:53:51 +02:00
Philip Rebohle
e01ffc02a8
[dxvk] Add more dynamic state to DxvkCommandList
2022-07-09 01:53:51 +02:00
Philip Rebohle
a683ecd525
[dxvk] Create pipeline library for null shader
2022-07-09 01:53:51 +02:00