1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-13 07:08:50 +01:00
Commit Graph

4633 Commits

Author SHA1 Message Date
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
Georg Lehmann
f2b1805d7e [dxvk] Allow non seamless samplers. 2022-07-07 14:18:49 +01:00
Georg Lehmann
e9ac543627 [include] Update Vulkan headers to 1.3.217. 2022-07-07 14:18:49 +01:00
WinterSnowfall
03ac577577 [util] Add workaround to fix missing sun & light shafts in Beyond Good And Evil 2022-07-07 14:17:52 +01:00
Philip Rebohle
593c6e3fe8
[dxvk] Remove spec constant ID mapping from pipeline layouts
No longer needed.
2022-07-05 13:03:18 +02:00
Philip Rebohle
8d413e2d09
[dxvk] Fix opening state cache files for writing
operator bool() only checks if errors have occured in previous writes,
so we'd be missing out on the first cache entry written.
2022-07-03 15:38:42 +02:00
Philip Rebohle
7c4d602863
[dxvk] Change spec constant IDs
We no longer support per-resource spec constants, so there is no good
reason not to use a 1:1 mapping for user-defined constants.
2022-07-03 13:41:06 +02:00
Philip Rebohle
2e73e46799
[dxvk] Do not remap spec constant IDs when compiling shaders
No longer needed since we don't emit per-binding constants anymore.
2022-07-03 13:41:06 +02:00
Philip Rebohle
a637134c56
[d3d11,dxbc] Use push constant instead of spec constant for rasterizer sample count 2022-07-03 13:41:06 +02:00
Philip Rebohle
87e2d70448
[dxbc] Remove bound spec constants from shader code 2022-07-03 13:41:06 +02:00
Philip Rebohle
8abb5ffc77
[dxvk] Remove binding mask from pipeline state 2022-07-03 13:41:06 +02:00
Philip Rebohle
54eaa444a2
[dxvk] Use null descriptors for unbound resources 2022-07-03 13:41:06 +02:00
Philip Rebohle
3349f2d80e
[dxvk] Use custom spec constant for swap chain blitter 2022-07-03 13:41:06 +02:00
Philip Rebohle
185331df9c
[d3d11] Don't use spec constants for video blitter
Store required info in the UBO instead.
2022-07-03 13:41:06 +02:00
Philip Rebohle
c7afe0dd23
[dxso] Use new bit mask spec constant to determine whether textures are bound 2022-07-03 13:41:06 +02:00
Philip Rebohle
735e741681
[d3d9] Add spec constant for null samplers
And rework the way spec constants are updated.
2022-07-03 13:41:06 +02:00
Philip Rebohle
186dc29384
[d3d9] Remove bound spec constants from fixed-function shaders
Texture stages are disabled anyway when textures are unbound,
so we will never hit the unbound case.
2022-07-03 13:41:06 +02:00
Philip Rebohle
8f03c3a419
[dxvk] Don't check binding mask when processing barriers 2022-07-03 13:41:06 +02:00
Philip Rebohle
2e7e9eac7a
[dxvk] Require EXT_robustness2 and the null descriptor feature 2022-07-03 13:41:03 +02:00
Blisto91
f95f541852
[util] Limit Bionic Commando to 60fps (#2685) 2022-07-02 16:51:04 +02:00
Blisto91
98dcd722ea
[util] Add workaround for Garden Warfare 2 (#2700) 2022-07-02 16:50:12 +02:00
Philip Rebohle
e406484b84
[d3d9] Don't use VK_RESOLVE_MODE_AVERAGE_BIT_KHR for stencil resolves
Doesn't work, always write sample zero instead.
2022-07-02 16:48:10 +02:00
Philip Rebohle
76ba03398d
[d3d9,dxso] Fix push constant validation errors
Derp.
2022-07-01 18:06:47 +02:00
Philip Rebohle
e81094533b
[dxvk] Fix gamma texture bind point 2022-06-30 20:49:43 +02:00
Philip Rebohle
1296890083
[dxvk] Remove error logging from updateResourceBindings
It's not super useful to emit log messages in the hottest code path, and
for some reason GCC compiles some stringstream initialization code into
those parts of the function that are unconditionally executed.
2022-06-28 14:35:58 +02:00
Philip Rebohle
0e38b11569
[dxvk] Rework DxvkResource lifetime tracking
Reduces the number of atomic operations required for lifetime tracking by
using a single 64-bit integer for usage tracking and reference counting.
2022-06-28 14:35:58 +02:00
Philip Rebohle
8d1d3d66e0
[dxvk] Optimize descriptor set binding further 2022-06-28 14:35:58 +02:00