Commit graph

623 commits

Author SHA1 Message Date
Henrik Rydgård
885415949e Vulkan: Fix ordering of debug labels, fixing a new validation error. 2023-04-01 23:29:30 +02:00
Henrik Rydgård
b13c5c2d1b Add compat setting to force using maximum depth resolution
Fixes #17014

Even if our depth-testing-equal heuristic believes that the game needs
lower depth resolution.

This removes some depth-fighting artifacts (that are present on the real
PSP, but nice to avoid) in Outrun, Split/Second and Cars: Race-o-Rama -
essentially reverting these to the behavior we had before the heuristic.

(The heuristic is good though - it means less compat.ini hacks going in
the other direction).

In the case of Outrun, this relies on two passes that pass exactly the
same vertex coordinates twice resulting in the exact same final
geometry. This is actually guaranteed by the spec if the vertex math is
exactly the same and "invariant" is set on the position output, though
I guess you never know.. Haven't seen any issues at least.

Also sneak in disabling some validation messages from using extra Vulkan
validation layers other than the default.
2023-03-26 00:27:58 +01:00
Henrik Rydgård
ae8c804328
Merge pull request #17134 from hrydgard/more-replacement-work
Refactor the replacement cache
2023-03-16 12:37:48 +01:00
Unknown W. Brackets
de4eb64298 Build: Fix MSVC 2019 again. 2023-03-15 21:28:46 -07:00
Henrik Rydgård
34926472aa Log fix 2023-03-16 00:30:20 +01:00
Henrik Rydgård
87a16b0386 Fix the stats 2023-03-15 10:19:00 +01:00
Henrik Rydgård
089b63c22f Address feedback, except the stats. 2023-03-15 10:09:39 +01:00
Henrik Rydgård
2ac74e3d37 Remove the PushBufferType enum 2023-03-15 09:59:00 +01:00
Henrik Rydgård
181ddf8266 Change the API of the old VulkanPushBuffer to match VulkanPushPool. 2023-03-15 09:56:32 +01:00
Henrik Rydgård
f3bdf324f9 Garbage collect old buffers in push pool. 2023-03-15 01:25:03 +01:00
Henrik Rydgård
c8b25e50b0 Better debug vis for push pools 2023-03-15 01:25:03 +01:00
Henrik Rydgård
9fcd6d6612 Use thin3d's push pool in the draw engine too. 2023-03-15 01:25:03 +01:00
Henrik Rydgård
23fe57e774 Use VulkanPushPool for thin3d 2023-03-15 01:25:03 +01:00
Henrik Rydgård
56d792f422 Sketch the new VulkanPushPool 2023-03-15 01:25:00 +01:00
Henrik Rydgård
91900eda7e Don't try to generate mips for compressed replacement images 2023-03-14 11:55:21 +01:00
Henrik Rydgård
2b1e87792f Vulkan: During texture upload, batch the buffer->image copies to do all the mips at once. 2023-03-14 10:11:19 +01:00
Henrik Rydgård
f936a6e9ce Structs and enums and build files 2023-03-11 11:19:33 +01:00
Henrik Rydgård
06b83115a5 Replacer: Avoid tracking video textures 2023-03-10 12:20:55 +01:00
Henrik Rydgård
cc9c01b1d0 Vulkan texture uploads: Take optimalBufferCopyRowPitchAlignment into account
Might marginally increase texture upload performance on some GPUs, but
mainly just the right thing to do.

For example, on Intel, this is 64.
2023-03-05 17:32:41 +01:00
Henrik Rydgård
31d796e769 Vulkan on Android: In non-debug mode, avoid devices that were rejected by VulkanMayBeAvailable.
Fixes #16931

Can still use these devices in debug builds by modifying the ini.
2023-02-28 18:18:19 +01:00
Henrik Rydgård
970f7993df Android: Make font rendering work even absent support for R4G4B4A4 textures.
This shouldn't normally happen as conforming drivers are required to
support that texture format, but the software driver that we
accidentally choose on Poco C40 (see issue #16391) doesn't.

That we choose that driver will be fixed separately. This fix on its own
at least lets the user comfortably navigate to settings and switch to
OpenGL.
2023-02-28 00:01:29 +01:00
Henrik Rydgård
ca8af6f4c7 Fix "DebugAnnotate" (not used, but I used it temporarily to investigate #17014)
See #17014
2023-02-27 10:39:49 +01:00
Henrik Rydgård
5d5e02d949 Attempted buildfix 2023-02-27 01:11:11 +01:00
Henrik Rydgård
ef4f17e998 Resurrect the Vulkan memory visualizer, but now it's global stats and pushbuffer stats. 2023-02-27 01:11:11 +01:00
Henrik Rydgård
8b431b39ba
Wrap the display globals in a struct (#16998)
* Wrap the display globals in a struct

Makes it easier to search/replace these, for future refactorings.

* Some renaming

* Qt buildfix, also fix the Qt build on Mac (got broken with battery changes)

* Attempt at buildfixing ios

* UWP buildfix
2023-02-25 13:09:44 +01:00
Henrik Rydgård
49e5460c9c Remove count parameter from SetViewports. No use foreseen. 2023-02-25 07:12:53 +01:00
Unknown W. Brackets
335788a932 Vulkan: Remove logspam. 2023-02-16 19:34:44 -08:00
Henrik Rydgård
64e80423a6 Simplify the tilt code, tweak a bit 2023-02-16 11:07:57 +01:00
Henrik Rydgård
5ad111cfc4 Return value fix 2023-02-08 08:59:47 +01:00
Henrik Rydgård
b3e6b81e43 Implement delayed depth readbacks for Vulkan only 2023-02-07 23:13:36 +01:00
ZiHan Huang
2865310bca vulkan: Add the function realization of arm device to kms vulkan
Signed-off-by: ZiHan Huang <zack.huang@rock-chips.com>
2023-02-07 14:23:55 +08:00
Henrik Rydgård
30fbcf356a
Merge pull request #16914 from hrydgard/readback-more-prep
Some more plumbing of parameters, preparing for readback stuff
2023-02-05 23:25:57 +01:00
Henrik Rydgård
ec5afb2d8d
Merge pull request #16812 from unknownbrackets/task-priority
ThreadManager: Add simple priority queues
2023-02-05 21:00:47 +01:00
Henrik Rydgård
937975000b Add a ReadbackMode parameter to more functions in the FramebufferManager 2023-02-05 13:57:45 +01:00
Henrik Rydgård
31df6bf0fe Move some code around, get rid of some unnecessary fences 2023-02-05 00:35:30 +01:00
Henrik Rydgård
7b5def9ff6 Use VMA to manage readback memory 2023-02-04 23:52:38 +01:00
Henrik Rydgård
4427cb4fc3 Add parameter to thin3d::CopyFramebufferToMemory to specify blocking mode. Not yet implemented. 2023-02-04 23:40:36 +01:00
Unknown W. Brackets
88ba003f46 ThreadManager: Add a simple priority field.
Currently, not actually respected.
2023-02-02 17:08:24 -08:00
Henrik Rydgård
a67604d003 Tighten up shader compilation logging 2023-02-01 11:42:25 +01:00
Henrik Rydgård
1437c2f707 Comment update 2023-02-01 11:15:33 +01:00
Henrik Rydgård
6a290d7999 Measure pipeline compilation time since scheduling, to judge parallelism 2023-02-01 11:15:33 +01:00
Henrik Rydgård
8821d619e4 Create pipelines in parallel 2023-02-01 11:15:33 +01:00
Henrik Rydgård
1f3969aff3
Merge pull request #16873 from hrydgard/dedicated-thread
Add facility to run tasks on dedicated threads using the ThreadManager interface
2023-01-31 11:50:59 +01:00
Henrik Rydgård
6b0903f566 Add facility to run tasks on dedicated threads using the ThreadManager interface.
Useful for things that should be run ASAP even if the threadpool is full,
at a small extra cost. (Not recommended for very small tasks).

Considering using this to resolve the deadlocks in #16802.
2023-01-31 11:07:40 +01:00
Henrik Rydgård
d43452f0ce Fix to shutdown sequence 2023-01-30 11:49:31 +01:00
Henrik Rydgård
a0c893cc8f Fix ThreadFrame. All OK now except shutdown, it seems 2023-01-30 11:49:31 +01:00
Henrik Rydgård
b62572a78f Refactor the framedata/GPU thread management. 2023-01-30 11:49:31 +01:00
Unknown W. Brackets
6af6ccc1cf Global: Fix some format warnings. 2023-01-18 21:42:19 -08:00
Henrik Rydgård
784e8ab782 Fix a race condition during Vulkan shader cache load.
Could lead to unnecessary pipelines being created.
2023-01-13 10:35:04 +01:00
Henrik Rydgård
609e7f13c9 Handle a couple of valid but rare return values from vkAcquireNextImageKHR.
See #16601
2023-01-12 08:59:09 +01:00