Philip Rebohle
5fc83a6075
[dxvk] Add missing trackImage to changeImageLayout
2021-02-20 14:35:57 +01:00
Philip Rebohle
1a1cc32b11
[dxvk] Store VkImage in barrier set rather than DxvkImage*
...
Avoids some accidental ref counting.
2021-02-20 14:35:22 +01:00
Philip Rebohle
d66ecf4a94
[meta] Release 1.8
2021-02-19 05:29:50 +01:00
Philip Rebohle
df76a5252a
[dxvk] Use default layout for depth-stencil image descriptors
...
Apparently the image layout matching rules were relaxed at some point,
so just using DEPTH_STENCIL_READ_ONLY_OPTIMAL for descriptors is legal
even if the image is in DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or
DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL in the current render pass.
2021-02-15 17:00:35 +01:00
Philip Rebohle
a0cf5926d8
[dxvk] Add parameter to prepareImage to ignore clears
...
Otherwise we may flush clears while clearing a render target,
which is silly and undoes the layout optimizations.
2021-02-14 04:22:52 +01:00
Philip Rebohle
2b401725dc
[dxvk] Do not transition non-shared images at the end of the command buffer
...
Currently, if the frontend flushes the command list, we always transition
render targets to their default layout. This may lead to some arbitrary
GPU performance issues if the transitions are not free.
Instead, keep all images that are only used internally in their attachment
layout across command list boundaries, until they are unbound.
2021-02-14 04:00:02 +01:00
Philip Rebohle
6564895a32
[dxvk] Add shared flag to images
...
Indicates that images can be accessed by more than one context
internally, or through the interop interfaces without explicit
image layout transitions.
2021-02-14 04:00:02 +01:00
Philip Rebohle
6efc2588f8
[dxvk] Remove checkFramebufferBarrier
...
No longer serves any practical purpose.
2021-02-14 04:00:02 +01:00
Philip Rebohle
95676bf1e6
[dxvk] Always prepare images not bound to the current FB when clearing
...
Fixes a potential bug when clearing a render target after the
last render pass using it gets suspended.
Also, for some reason we were checking for <1 instead of <0.
2021-02-14 04:00:02 +01:00
Philip Rebohle
0c18a86090
[dxvk] Fix render target clears if attachments are not tightly packed
...
We do actually need to use the color target indices here rather than
the attachment index, since the repacking happens inside DxvkRenderPass.
Clear values still need to be tightly packed.
2021-02-12 03:13:11 +01:00
Philip Rebohle
436820d233
[dxvk] Add method to query color attachment index from attachment index
2021-02-12 03:13:11 +01:00
Philip Rebohle
0956050db6
[dxvk] Fix actual render target layout transitions for 3D images
...
Also, only emit transitions if the layouts differ.
2021-02-12 03:13:11 +01:00
Philip Rebohle
bd87c12138
[dxvk] Make suspend parameter of spillRenderPass not optional
2021-02-12 03:13:11 +01:00
Philip Rebohle
aa0296b7ca
[dxvk] Suspend render pass for most image operations
...
We can big brain this and only explicitly transition the render targets
that are used within the copy operation, if any, and leave the rest intact.
2021-02-12 03:13:11 +01:00
Philip Rebohle
96dfac7fea
[dxvk] Suspend render pass for certain render target clears
2021-02-12 03:13:11 +01:00
Philip Rebohle
d7db413cac
[dxvk] Introduce prepareImage
...
This transitions any framebuffer attachment that is currently in
the wrong layout back to its default layout before it is used by
functions that expec it to be in the default layout.
2021-02-12 03:13:10 +01:00
Philip Rebohle
fe43abbf32
[dxvk] Suspend render pass for buffer copies and render pass barriers
...
No images are directly involved in these, so we can save some layout
transitions.
2021-02-12 03:13:10 +01:00
Philip Rebohle
ba698430cb
[dxvk] Suspend render pass when updating framebuffer
...
Saves barriers in case some of the previously bound framebuffer
arre reused in the new one.
2021-02-12 03:13:10 +01:00
Philip Rebohle
d3b2db5978
[dxvk] Loosen render pass barriers
...
Still use ALL_COMMANDS_BIT at the end to avoid potential WAR hazards
for things like vertex buffers.
2021-02-12 03:13:10 +01:00
Philip Rebohle
29afaea338
[dxvk] Track current render target image layouts
...
This can be used to optimize away some barriers and layout transitions.
2021-02-12 03:13:10 +01:00
Philip Rebohle
a60916f7ee
[dxvk] Improve device ordering
...
Make sure that integrated GPUs are preferred over CPU
implementations on systems that have no dedicated GPU.
2021-02-11 14:58:11 +01:00
Philip Rebohle
01a511aa99
[dxvk,dxgi,d3d9] Fix shader spec constant IDs
...
These changed after changing the render target output swizzle stuff.
2021-01-29 16:46:01 +01:00
Philip Rebohle
3a993d0c5c
[dxvk] Use only one spec constant for fragment shader output component mapping
...
Let's trust the driver to be able to constant-fold bitfieldExtract operations.
2021-01-29 16:17:07 +01:00
Philip Rebohle
849fb329ec
[dxvk] Enable VK_KHR_shader_float_controls if supported
2021-01-28 19:37:10 +01:00
Philip Rebohle
3caf5269f2
[dxvk] Add regular barrier after graphics queue depth image upload
...
We still need a barrier for the layout transition.
2021-01-12 13:25:00 +01:00
Philip Rebohle
b19293430a
[dxvk] Execute depth/stencil image upload on graphics queue
...
Silences a validation error.
2021-01-12 12:14:53 +01:00
Andrew Eikum
2405e474e5
[dxvk] Use wineopenxr to apply required OpenXR extensions
2021-01-07 23:54:02 +01:00
Andrew Eikum
a3065fca8e
[d3d11] Extend interop interfaces for OpenXR support
2021-01-07 23:54:02 +01:00
Philip Rebohle
03f11baf57
[hud] Fix up nonsensical scaling factors
2020-12-06 01:03:01 +01:00
Philip Rebohle
74abb5bb80
[hud] Initialize scale to 1
...
See #1843 .
2020-12-06 00:48:48 +01:00
Philip Rebohle
854ae7b862
[dxvk] Add transform feedback buffer usage to dummy buffer
...
Silences some Vulkan validation errors.
2020-12-06 00:35:29 +01:00
Philip Rebohle
0b4e167fc9
[hud] Fix typo
2020-12-02 17:13:41 +01:00
Philip Rebohle
b67639bdf0
[meta] Release 1.7.3
2020-12-02 16:14:56 +01:00
Philip Rebohle
6814ad45d4
[hud] Fix positioning of compiler item when scaled
2020-12-02 16:14:56 +01:00
Philip Rebohle
a23be756d7
[hud] Implement HUD scaling
...
Can be set like DXVK_HUD=fps,scale=1.5.
2020-12-01 03:31:22 +01:00
Philip Rebohle
8fe3effb40
[hud] Draw lines as triangle strip
2020-12-01 03:31:22 +01:00
Philip Rebohle
0ce5dd8b03
[dxvk] Remove conditional rendering from backend
...
Was disabled anyway due to being broken on various drivers,
so let's get rid of it.
2020-11-30 19:18:26 +01:00
Philip Rebohle
e79e8b9062
[dxvk] Increase queued command buffer limit to 18
...
May help when games upload a large number of resources
at once, at the cost of increased memory usage.
2020-11-27 12:22:08 +01:00
Philip Rebohle
c547039bef
[dxvk] Decide memory priority based on access flags rather than usage
...
Buffers used as shader resources are storage buffers as well,
and should not take priority over other read-only resources.
2020-11-27 12:20:55 +01:00
Philip Rebohle
5e5937baf4
[dxvk] Pass size of 0 for dummy vertex buffer
...
Silences some validation errors in case null descriptors are disabled.
2020-11-24 17:50:14 +01:00
Philip Rebohle
3cf7d65789
[hud] Use textureLod in fragment shader
...
Should silence some validation errors.
2020-11-24 17:07:22 +01:00
Philip Rebohle
bf4465f5a2
[dxvk] Increase query pool sizes
...
Some games create hundreds of timestamp queries, we want to reduce
the number of pools in that case.
2020-11-21 03:35:41 +01:00
Philip Rebohle
d256175981
[dxvk] Eliminate back-to-back clears when no render pass is active
...
Trine 4 hits this with a multisampled depth buffer multiple times
per frame. Previously, we'd only eliminate redudant clears if the
render target to clear was active in the current render pass.
2020-11-21 03:03:15 +01:00
Philip Rebohle
7b9644f355
[meta] Release 1.7.2
2020-10-07 17:41:54 +02:00
Philip Rebohle
1863c6e81c
[dxvk] Catch exceptions of type DxvkError on CS thread
2020-10-07 16:33:48 +02:00
Philip Rebohle
0b011ea361
[dxvk] Throw error in case a pipeline layout uses too many bindings
2020-10-07 16:33:48 +02:00
Philip Rebohle
d153d5c19a
[dxvk] Bump state cache version to v9
...
Needed because the binding bit mask increased in size.
2020-10-07 16:33:48 +02:00
Philip Rebohle
e98493fc24
[dxvk] Increase maximum active binding count to 384
...
Fixes a stack overflow in Baldur's Gate 3, caused by a compute shader
that uses 131 resources.
2020-10-07 16:33:48 +02:00
Joshua Ashton
1274b7a8e7
[dxvk] Add helper to retrieve SHA1 hash from shader key
2020-09-11 21:49:14 +01:00
ishitatsuyuki
bb85a4caa8
Handle non-ASCII characters properly in paths
2020-09-10 15:56:38 +02:00