1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-14 00:48:44 +01:00
Commit Graph

4760 Commits

Author SHA1 Message Date
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