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
Philip Rebohle
3b10efbc30
[dxvk] Implement fragment output pipeline libraries
2022-07-09 01:53:51 +02:00
Philip Rebohle
578c136239
[dxvk] Implement vertex input pipeline libraries
2022-07-09 01:53:51 +02:00
Philip Rebohle
47ac5f49cb
[dxvk] Factor out fragment shader state setup
2022-07-09 01:53:51 +02:00
Philip Rebohle
33067f2a23
[dxvk] Factor out pre-rasterization state setup
2022-07-09 01:53:51 +02:00
Philip Rebohle
08e0e4181b
[dxvk] Factor out fragment output state setup
2022-07-09 01:53:51 +02:00
Philip Rebohle
1e56f2b7a0
[dxvk] Factor out vertex input state setup
2022-07-09 01:53:51 +02:00
Philip Rebohle
6c756c2dbe
[dxvk] Add check whether graphics pipeline libraries can be used
2022-07-09 01:53:51 +02:00
Philip Rebohle
d6afe36592
[dxvk] Enable VK_EXT_graphics_pipeline_library if supported
2022-07-09 01:53:51 +02:00
Philip Rebohle
97f2d81b25
[meta] Update Vulkan headers to 1.3.219
2022-07-09 01:53:51 +02:00
Joshua Ashton
2bd062f9d6
[util] Implement LUID helpers for non-Windows platforms Initial commit
2022-07-09 01:14:18 +02:00
Blisto91
3733590756
[util] disable allowDoNotWait for Port Royale 3 ( #2668 )
2022-07-09 01:00:21 +02:00