Commit Graph
160 Commits
Author SHA1 Message Date
Henrik Rydgård dbe395dd00 Add a wrapper around VKRPipelineLayout / descsetlayout 2023-10-08 12:39:18 +02:00
Henrik Rydgård 42fcd399f4 Restore the ReadyForFence flag. Some paranoia probably 2023-09-26 02:00:22 +02:00
Henrik Rydgård 2e171b22ec Vulkan: Remove an assert that didn't give much actionable information. Replace with reporting. 2023-09-20 22:50:38 +02:00
Henrik Rydgård 3783afd855 Fix a really bad race condition during game shutdown. 2023-09-20 18:47:32 +02:00
Henrik Rydgård b8353c6273 Add a commented-out torture test for a shader race condition 2023-09-20 18:47:32 +02:00
Henrik Rydgård 0bfd166200 Try to prevent a weird shutdown race condition that I'm not sure can happen - but crash logs show it 2023-09-18 16:45:07 +02:00
German Semenov c27481d637 GPU, VFS, UI: Fixed minor memleaks 2023-09-15 12:23:54 +03:00
Henrik Rydgård 64852409df Don't use the present time extensions (but keep the code around for future experiments)
Seen some suspicious crashes on Poco F1.
2023-08-30 10:47:20 +02:00
Henrik Rydgård 572595cc7b Refactor: Lift the frame time history data up one level into thin3d 2023-08-16 11:45:26 +02:00
Henrik Rydgård e06e919624 VulkanRenderManager: Split finish and present (so we can inject a wait in between if desired). 2023-08-10 09:50:01 +02:00
Henrik Rydgård 86db91979f Turn off present-wait for now. Too many issues. 2023-08-08 15:07:44 +02:00
Henrik Rydgård 652cc6cd65 Race condition fix 2023-08-08 14:00:58 +02:00
Henrik Rydgård 8fec4fb02f wip 2023-08-08 13:26:27 +02:00
Henrik Rydgård a6b5340d97 Don't crash if VK_KHR_present_id / VK_KHR_present_wait are not exposed (but feature still reported available)
Fixes the new crash in #17858
2023-08-07 11:36:49 +02:00
Henrik Rydgård 0530dc57a8 Implement frame time measurement on Android using VK_GOOGLE_display_timing 2023-08-03 12:59:25 +02:00
Henrik Rydgård 9b038d6574 Vulkan: Show enabled extensions separately in sysinfo 2023-08-03 11:11:35 +02:00
Henrik Rydgård e16cac6548 Initial work on supporting VK_GOOGLE_display_timing. Not working yet. 2023-08-03 11:11:16 +02:00
Henrik Rydgård 14377259b5 Use VK_KHR_present_wait to get numbers on how much latency we have to screen
This extension is not available on Android, there they have
VK_GOOGLE_display_timing, which they also have an abstraction library
for, so will look at that later.

Early part of work on #17685
2023-08-02 20:34:22 +02:00
Henrik Rydgård cda59e8510 Vulkan: Keep track of some timestamps in a frame 2023-08-02 16:25:17 +02:00
Henrik Rydgård b118e25b6a Vulkan: Make multithreaded rendering an option.
Multi-threaded rendering is good for smoothing out performance spikes
and increasing performance on low-power devices. However, the way we use
it it doesn't benefit latency (input lag) at all, rather the opposite.

So make it an option.
2023-07-23 22:06:01 +02:00
Henrik Rydgård ae29fd2951 Vulkan profiler: Show CPU command buffer recording timing even if GPU timing is unavailable 2023-06-14 09:15:29 +02:00
Henrik Rydgård 6d8069dfd1 Vulkan: Remove the remains of the input attachment experiment
Haven't been using these for a while.

I've come to the conclusion here that I think it's better to try to
deal with the issues using safe workarounds like copies, instead of
relying on features with somewhat iffy driver support that are not
universal across APIs anyway.
2023-06-13 20:46:27 +02:00
Henrik Rydgård 0eec89c853 Fix a very tiny memory leak 2023-05-29 23:11:35 +02:00
Henrik Rydgård 234c1f05b8 Apply the same optimizations to the Vulkan backend. Smaller effect than for OpenGL. 2023-05-23 08:54:41 +02:00
Henrik Rydgård 0b9dfac844 Make sure VKRRenderThreadTask isn't copied. 2023-05-23 08:54:41 +02:00
Henrik RydgårdandGitHub 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 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
Henrik RydgårdandGitHub 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 937975000b Add a ReadbackMode parameter to more functions in the FramebufferManager 2023-02-05 13:57:45 +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 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
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 cf52324e9e Vulkan: Fix pipeline cache clearing.
Extracted from #16759 and bugfixed. Fixes a leak of Vulkan pipelines.

I guess another way would be to queue the variants for destruction at
the same time as we queue the callback, but I like this better.
2023-01-09 09:49:55 +01:00
Henrik Rydgård 44f60ba2f0 Remove overly noisy log 2023-01-05 08:38:53 +01:00
Henrik Rydgård 7e374c9324 Address feedback, more fixes 2023-01-05 08:38:53 +01:00
Henrik RydgårdandGitHub 1353817afa Merge pull request #16689 from unknownbrackets/vk-shutdown
Vulkan: Avoid race in compile thread exit
2023-01-01 15:59:55 +01:00
Unknown W. Brackets 6c79d94814 Vulkan: Avoid race in compile thread exit. 2023-01-01 06:40:26 -08:00
Henrik Rydgård 9ceffa284d Vulkan: Add robustness against bad shader module compiles 2022-12-31 12:21:53 +01:00
Henrik Rydgård d2feb444b7 Bunch of defensive programming around shaders 2022-12-31 12:21:51 +01:00
Henrik Rydgård 31d5881c90 Enable support for Android Vulkan validation. Fix a minor validation error. 2022-12-22 11:13:52 +01:00
Henrik Rydgård 6922ee7e52 Add some asserts in the hope of gathering some more info (and consolidating some crashes). 2022-12-18 21:58:20 +01:00
Henrik Rydgård 11366a2ded Don't refer directly to g_Config.iMultiSampleLevel, it can contain unsupported modes. 2022-12-14 16:43:37 +01:00
Unknown W. Brackets 8c1a247b7b Vulkan: Cleanup some logspam. 2022-12-13 18:29:23 -08:00
Henrik Rydgård 00ebf4957f Make shader cache loading a bit more lenient. 2022-12-13 23:06:57 +01:00