Commit Graph
233 Commits
Author SHA1 Message Date
Henrik Rydgård b4fe03de8b Better solution, still pretty much optimal. 2024-01-10 18:14:59 +01:00
Henrik Rydgård 6de05f13f1 More barrier batching 2023-12-30 10:41:59 +01:00
Henrik Rydgård 484fbeb4cb Add end-of-init barrier 2023-12-30 10:41:59 +01:00
Henrik Rydgård 28189dc738 Vulkan render queue runner: Count commands in debug builds, like the GL backend. 2023-12-20 15:26:41 +01:00
Henrik Rydgård ac93419331 Merge the 1.16.6 branch into master
Also deletes some unused code.
2023-10-13 11:00:11 +02:00
Henrik Rydgård 6357b95ff5 Better version. 2023-10-12 23:33:54 +02:00
Henrik Rydgård f301035ba0 Step 1 2023-10-12 23:28:44 +02:00
Henrik Rydgård a507563708 Remove the exit-game sync again.
It's not actually needed until some of the additions made on master, and
in that case, I'm going to change the solution again.
2023-10-12 10:14:19 +02:00
Henrik Rydgård 2c751d39f8 Vulkan: Add simple delete count to GPU profiler, to make sure we don't have more resource churn
Also fix the render pass type name lookup table.
2023-10-12 09:02:45 +02:00
Henrik Rydgård d60c9a015f Vulkan: Fix synchronization when shutting the GPU down in-game. 2023-10-11 12:49:33 +02:00
Henrik Rydgård f769b2c8a3 Remove unused functionality from descpool 2023-10-11 12:29:57 +02:00
Henrik Rydgård 0ad2827e14 Vulkan: Fix synchronization when shutting the GPU down in-game. 2023-10-11 12:27:39 +02:00
Henrik Rydgård 183d49329a Allow writing directly into the packed descriptor buffer, saving a memcpy. 2023-10-11 11:02:17 +02:00
Henrik Rydgård 8ebc08185b Allocate descriptors in blocks of 8 instead of individually, to reduce overhead. 2023-10-10 10:17:56 +02:00
Henrik Rydgård 3d949b080d Prepare VulkanDescSetPool for block allocation 2023-10-10 09:14:10 +02:00
Henrik Rydgård 9fdc7e2372 Address feedback 2023-10-10 09:02:35 +02:00
Henrik Rydgård b38b46df0f Update comments 2023-10-10 09:02:35 +02:00
Henrik Rydgård 2b0192d818 Have FrameData structs for each pipeline layout, instead of multiple arrays 2023-10-10 09:02:35 +02:00
Henrik Rydgård 8a4d84d82b Simplest possible de-duplication of descriptor set writes 2023-10-10 09:02:35 +02:00
Henrik Rydgård 018e4ee1d6 Show the desc set write time even in the limited GPU profiler. 2023-10-10 09:02:34 +02:00
Henrik Rydgård f0ee3b8daa Fill in descriptors on the render thread in the PPSSPP UI. 2023-10-10 09:00:29 +02:00
Henrik Rydgård 316bc03ac9 Move the destroy function for VKRPipelineLayout to VulkanRenderManager 2023-10-09 11:54:13 +02:00
Henrik Rydgård 88a50575c7 Wrap pipeline layout creation, use in thin3d
Two more types
2023-10-08 12:39:18 +02:00
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