Commit Graph

3763 Commits

Author SHA1 Message Date
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 2787ba8450
[d3d11] Fix D3D11 bind flags and DXGI usage for swap chain images 2021-02-12 03:12:48 +01:00
Philip Rebohle c98c5f5d17
[d3d11] Add internal DXGI usage flags to textures
We need this for swap chain images.
2021-02-12 03:12:48 +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 bcadc04932
[dxvk] Validate vertex attribute alignment 2021-02-08 14:55:18 +01:00
Philip Rebohle a045cac281
[d3d11] Fix vertex input alignment for small formats
Fixes #1922.
2021-02-08 14:28:55 +01:00
Joshua Ashton fcaab6aa46
[d3d9] Expose adapter/backbuffer formats properly
Matches native behaviour in my testing.
2021-02-06 08:57:32 +00:00
Joshua Ashton 58d6f018bb
[d3d9] Allow A2R10G10B10 backbuffer format in Windowed 2021-02-06 08:43:37 +00:00
Joshua Ashton ff9d451a4e
[util] Force saner SWVP limits for TrackMania Forever
Closes: #1910
2021-02-06 08:28:03 +00:00
Joshua Ashton bba3f9f3db
[util] Defer surface creation for Nioh 2
Fixes black screen on startup.
2021-02-06 07:48:52 +00:00
Joshua Ashton 9bee3e1cb9
[util] Add config for Dark Messiah of Might & Magic
Same problem as other early Source titles, infinitely makes resources at startup to measute VRAM.
2021-01-30 04:36:26 +00: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 2d670ec3db
[dxbc] Enable capabilities for float control modes
Fixes some validation errors (but seriously, why does everything
have to be a capability in SPIR-V?)
2021-01-29 16:29:39 +01:00
Philip Rebohle c1073455bf
[spirv] Add hasCapability method 2021-01-29 16:29:26 +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 307f43ff1e [d3d11] Introduce option to disable float controls
And disable for SotTR since it introduces rendering issues.
2021-01-28 20:32:38 +01:00
Philip Rebohle 8de9dc9378
[d3d11] Enable d3d11.invariantPosition by default 2021-01-28 20:09:47 +01:00
Philip Rebohle 1478011822
[dxbc] Enable NaN fixup by default on older RADV versions
And get rid of a whole bunch of game-specific workarounds.
2021-01-28 19:37:10 +01:00
Philip Rebohle f5fa7a9099
[dxbc] Set float control bits as necessary 2021-01-28 19:37:10 +01:00
Philip Rebohle 849fb329ec
[dxvk] Enable VK_KHR_shader_float_controls if supported 2021-01-28 19:37:10 +01:00
dom 7d7c057d46 [util] Enable dxgi.customVendorId for Hitman 3 2021-01-28 14:07:52 +01:00
Philip Rebohle a17ec95f21
[utils] Enable d3d9.deferSurfaceCreation for Atelier Ryza 2 2021-01-26 12:06:20 +01:00
Philip Rebohle b8bc36559d
[d3d11] Optimize index buffer binding with offset
Do not rebind the buffer if only the offset changes. Instead,
adjust StartIndexLocation in indexed draw calls. For indirect
draws, this will be disabled on the fly.

This may save a whole bunch of work in the backend, and reduces
the number of commands being sent to the CS thread in the first
place, which is why this optimization is not being done in the
backend itself but rather on the client API side.
2021-01-24 15:18:38 +01:00
Philip Rebohle f869881f55
[util] Enable TGSM barrier workaround for more F1 games
F1 2020 is reportedly broken as well.
2021-01-16 15:28:30 +01:00
Joshua Ashton 742b52bbb5 [d3d11] Fix device child refs properly 2021-01-15 23:47:48 +01:00
Philip Rebohle 499f15011f
[util] Enable TGSM barrier workaround for F1 2018
Game has the same bug as F1 2019. Fixes #1897.
2021-01-15 13:15:01 +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
Philip Rebohle 8163eb4185
[meta] Do not use built-in arguments
Breaks ancient meson versions. Should fix #1893.
2021-01-12 00:54:16 +01:00
Joshua Ashton 0eec95843f
[d3d9] Fix warnings with query caching 2021-01-08 13:49:38 +00:00
Gabriel Ivăncescu 83f6400a07 d3d9: Send necessary messages for full-screen windows during WM_ACTIVATEAPP. 2021-01-08 13:40:34 +00:00
Joshua Ashton dde28a967f [d3d11] Fix forward declaration of ID3D11Texture2D
This should be struct not class.

Silences warnings in MSVC.
2021-01-08 13:06:02 +01:00
Joshua Ashton 838a6ef0f1 [d3d11] Disallow mismatching shader bytecode and type
Fixes a wine test which lead to a "refcounting bug" down the line.
2021-01-08 11:59:16 +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
Robin Kertels 60a2aeb6ef [d3d9] End query before the stall heuristic flush 2021-01-07 21:19:28 +00:00
Robin Kertels 0f933fee8b [d3d9] Extend query stall tracking to other query types 2021-01-07 21:19:28 +00:00
Robin Kertels 6554ca8f9e [d3d9] Cache query data 2021-01-07 21:19:28 +00:00
gofman 5852e318e5
[d3d11] Fix device ref counting from queries. (#1887)
Fixes AO Tennis 2 crash on exit.

Co-authored-by: Paul Gofman <pgofman@codeweavers.com>
2021-01-06 20:10:44 +01:00
Philip Rebohle 6f5a28025e [meta] Delete 2020
Obligatory Happy New Year commit.
2021-01-04 12:12:13 +01:00
Philip Rebohle 7d673063f5 [meta] Move SSE/SSE2 enablement out of cross files
Fixes Proton build, which uses an outdated Meson version.

Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-01-04 01:00:10 +01:00
oltolm f337ad3c05
fix d3d11 header for MinGW 9 (#1883) 2021-01-04 00:52:43 +01:00
Kron4ek 77af1026e2
Use new section for c/cpp args and link_args (#1878)
Using lang_args and lang_links_args in the [properties] section has been deprecated in Meson 0.56.
[built-in options] section should be used instead.
2021-01-02 16:40:31 +01:00