Henrik Rydgård
25a1e6aa14
Some renaming, add a bunch of sanity debug-asserts
2024-01-30 11:14:21 +01:00
Henrik Rydgård
b5496851dc
Vulkan: Semaphore-per-frame seems to be the way to go, according to the new validation layers.
2024-01-17 21:34:31 +01:00
Henrik Rydgård
52d05aaa27
GPU profiling: Count how many descriptors we manage to deduplicate.
2024-01-12 11:31:06 +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
8a4d84d82b
Simplest possible de-duplication of descriptor set writes
2023-10-10 09:02:35 +02:00
Henrik Rydgård
10f93875c6
Fix the semantics of DenseHashMap to be consistent even when inserting nulls
2023-09-11 12:07:18 +02: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
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
0530dc57a8
Implement frame time measurement on Android using VK_GOOGLE_display_timing
2023-08-03 12:59:25 +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
b3e6b81e43
Implement delayed depth readbacks for Vulkan only
2023-02-07 23:13:36 +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
2207c1271a
Fix validation error with the GPU profiler
2022-10-03 12:13:11 +02:00
Henrik Rydgård
9b46adb985
Fix color test.
...
Fixes the new color test bug reported in #13324 , though doesn't fix that
issue (didn't confirm it still is one).
2022-09-26 22:51:46 +02:00
Henrik Rydgård
c671b3f413
Can't seem to get around this condition variable... Oh well.
2022-09-23 20:45:52 +02:00
Henrik Rydgård
ef7c8844f8
Greatly simplify the thread synchronization.
2022-09-23 19:40:50 +02:00
Henrik Rydgård
c1d1c85116
Minor code cleanups (hasBegun is now redundant, for example)
2022-09-20 17:05:53 +02:00
Henrik Rydgård
b190c33cc7
Rewrite some present logic for slightly more clarity. Fixes bad logic and a minor race condition.
2022-09-20 17:05:53 +02:00
Henrik Rydgård
c7322edf7b
Various refactoring
2022-09-20 17:05:45 +02:00
Henrik Rydgård
2160882e95
Address feedback
2022-09-19 19:27:50 +02:00
Henrik Rydgård
cfe4e3278d
Vulkan: Remove the useThread bool entirely.
2022-09-19 18:17:26 +02:00
Henrik Rydgård
d0016add37
Start moving stuff out to VulkanFrameData.cpp
2022-09-19 18:14:41 +02:00
Henrik Rydgård
fc84f25818
Quick GE debugger stepping fix, after the recent vulkan swapchain acquire change
2022-09-18 12:10:23 +02:00
Henrik Rydgård
fabd50b178
Move FrameData out of VulkanRenderManager
2022-09-17 01:34:38 +02:00