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
Philip Rebohle
21ca9b91d0
[dxvk] Mark VK_EXT_extended_dynamic_state as required
...
The device feature is already required anyway.
2022-07-08 23:44:05 +02:00
Philip Rebohle
fcadaec129
[dxvk] Store clear values inside render pass ops
...
The previous model was designed around vkCmdBeginRenderPass, which was
somewhat clunky regarding attachment clears. This is no longer needed.
2022-07-07 16:16:51 +02:00
Philip Rebohle
d71e85785c
[dxvk] Drop barrier before renderPassBindFramebuffer
...
Not necessary since that function emits barriers anyway.
2022-07-07 16:16:51 +02:00
Philip Rebohle
0c5773dbb9
[dxvk] Emit smarter post-renderpass barriers
...
Allows folding the old post-renderpass barrier into the same pipeline
barrier call as layout transitions from prepareImage or from starting
another render pass, thus reducing the overall number of pipeline
barriers. Also no longer uses VK_PIPELINE_STAGE_ALL_COMMANDS_BIT.
2022-07-07 16:16:50 +02:00
Philip Rebohle
67d35ecc8d
[dxvk] Introduce DxvkGlobalPipelineBarrier
2022-07-07 16:16:50 +02:00
Philip Rebohle
95f7aae3e6
[dxvk] Remove viewport state from graphics pipelines
...
And bump state cache version to v13.
2022-07-07 16:16:50 +02:00
Philip Rebohle
4b82a05e05
[dxvk] Enable and use dynamic viewport and scissor rect count
2022-07-07 16:16:50 +02:00
Philip Rebohle
b34421b055
[dxvk] Always enable extendedDynamicState feature
2022-07-07 16:16:50 +02:00
Philip Rebohle
f19607c11e
[dxvk] Use dynamic rendering directly for partial image view clears
2022-07-07 16:16:50 +02:00
Philip Rebohle
f57a6d485b
[dxvk] Use dynamic rendering directly for render target clears
2022-07-07 16:16:50 +02:00
Philip Rebohle
605fef10b4
[dxvk] Fix render target readback barrier
...
Dynamic rendering does not allow barriers within a render
pass instance, so we have to actually stop rendering.
2022-07-07 16:16:50 +02:00
Philip Rebohle
e8f3d9b040
[dxvk] Remove render pass and framebuffer objects
2022-07-07 16:16:50 +02:00
Philip Rebohle
e3a63d4faa
[dxvk] Bump state cache version to v12
...
And remove its reliance on the old render pass format struct.
2022-07-07 16:16:50 +02:00
Philip Rebohle
39a2b1cb7a
[dxvk] Remove support for state cache versions older than v8
...
We could technically keep supporting this with Dynamic Rendering, but
it's a huge amount of work and there's no good reason to do so.
2022-07-07 16:16:50 +02:00
Philip Rebohle
343eba693d
[dxvk] Use dynamic rendering for regular graphics pipelines
...
For now, just do whatever we were previously doing for render passes,
but explicitly.
2022-07-07 16:16:50 +02:00
Philip Rebohle
5b6a598ed6
[dxvk] Use dynamic rendering for resolve operations
2022-07-07 16:16:50 +02:00
Philip Rebohle
96e102beff
[dxvk] Use dynamic rendering for copies
...
Significantly reworks framebuffer copies as well. We'll no longer
create dummy samplers to work around glslang versions not supporting
texture descriptors without samplers, and copyImageFb was cleaned
up to factor out the part where a temporary image is created.
2022-07-07 16:16:50 +02:00
Philip Rebohle
a450c88c72
[dxvk] Use dynamic rendering for blits and mip generation
2022-07-07 16:16:50 +02:00
Philip Rebohle
d5cc50f73f
[dxvk] Add dynamic rendering commands to DxvkCommandList
2022-07-07 16:16:50 +02:00
Philip Rebohle
38cf16a5be
[dxvk] Enable and require VK_KHR_dynamic_rendering
2022-07-07 16:16:44 +02:00
Trevonn
4a0a9d6286
[util] Limit Dead Space to 60fps and fix vsync
...
https://www.pcgamingwiki.com/wiki/Dead_Space#Issues_fixed
The game has mouse acceleration and physics issues above 60 FPS.
Also the game locks to 30 FPS using the built-in vsync.
Setting presentInterval to 1 blocks this and the game continues to run at 60 FPS
2022-07-07 14:19:20 +01:00
Georg Lehmann
913129d3b6
[d3d9] Add an config option to disable non seamless cube maps.
2022-07-07 14:18:49 +01:00
Georg Lehmann
cd8e2360f4
[d3d9] Use non seamless samplers if supported.
2022-07-07 14:18:49 +01:00
Georg Lehmann
0015a34498
[dxvk] Enable VK_EXT_non_seamless_cube_map if requested.
2022-07-07 14:18:49 +01:00