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

4894 Commits

Author SHA1 Message Date
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
Philip Rebohle
a0d1ef7f61
[dxvk] Handle null shader in DxvkShaderPipelineLibrary 2022-07-09 01:53:51 +02:00
Philip Rebohle
2cb9ceba1d
[dxvk] Simplify pipeline instance data 2022-07-09 01:53:51 +02:00
Philip Rebohle
a72bf02374
[dxvk] Pass VS and FS libraries to graphics pipelines 2022-07-09 01:53:51 +02:00
Philip Rebohle
cb56e16a4b
[dxvk] Use precompiled compute pipelines whenever possible 2022-07-09 01:53:51 +02:00
Philip Rebohle
6265b5b809
[dxvk] Use new shader stage info objects in DxvkShaderPipelineLibrary
Avoids crashing on drivers which do not support NULL modules for compute
pipelines and just reduces the amount of code by a small amount.
2022-07-09 01:53:51 +02:00
Philip Rebohle
e6470b6d10
[dxvk] Rework DxvkShaderModule into DxvkShaderStageInfo
Separates the whole thing from DxvkShader instances so that we
can use this in other places too. Only creates a shader module
if necessary for the given pipeline or device.
2022-07-09 01:53:51 +02:00
Philip Rebohle
5019ce4b9c
[dxvk] Compile pipeline libraries in registerShader if supported 2022-07-09 01:53:51 +02:00
Philip Rebohle
a49333cd87
[dxvk] Add pass to check whether a shader has spec constants
Pipeline libraries cannot be used for shaders with user spec constants.
2022-07-09 01:53:51 +02:00
Philip Rebohle
a6b0783a51
[dxvk] Add config option for graphics pipeline library enablement 2022-07-09 01:53:51 +02:00
Philip Rebohle
06c084616f
[dxvk] Clean up graphics and compute pipeline constructors 2022-07-09 01:53:51 +02:00
Philip Rebohle
f2f1f86500
[dxvk] Use new worker thread system in state cache 2022-07-09 01:53:51 +02:00
Philip Rebohle
02e6a212bb
[dxvk] Introduce new pipeline manager worker thread system 2022-07-09 01:53:51 +02:00
Philip Rebohle
1c573a7fd5
[dxvk] Rework state cache object creation 2022-07-09 01:53:51 +02:00
Philip Rebohle
8b645f8563
[dxvk] Rework DxvkPipelineCache 2022-07-09 01:53:51 +02:00
Philip Rebohle
dbcd0333d9
[dxvk] Implement shader-based pipeline libraries 2022-07-09 01:53:51 +02:00
Philip Rebohle
30c25ee1f0
[dxvk] Add way to create partial pipeline layouts 2022-07-09 01:53:51 +02:00