Commit graph

397 commits

Author SHA1 Message Date
Henrik Rydgård
b5de9e0cc3 Some preparations 2023-02-16 23:17:08 +01: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
Henrik Rydgård
1cfc7b11b8 Only force indexed draws on PowerVR / Vulkan. 2023-01-11 22:59:30 +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ård
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
d83f84fdfd DrawContext destructor: Need to call DestroyPresets earlier. 2022-12-29 17:32:49 +01:00
Henrik Rydgård
708162a2b0 Vulkan validation layers: Cap outputting the same message at 10 times. 2022-12-29 00:39:59 +01:00
Unknown W. Brackets
4f216c941e Vulkan: Fix reverse dependency on config. 2022-12-27 15:32:35 -08:00
Unknown W. Brackets
682f5fae97 UI: Fix reverse-dependency in PathBrowser. 2022-12-27 15:08:57 -08:00
Unknown W. Brackets
ec309d55ab GPU: Cleanup definition of shader resources.
Was in the wrong header file, which was a bit confusing.
2022-12-27 14:35:49 -08:00
Unknown W. Brackets
348b6f12f3 Vulkan: Remove some unused values. 2022-12-26 10:14:15 -08:00
Henrik Rydgård
25115fee7f Found a bug where we tried to look up queue family -1 when initializing the frame profiler. 2022-12-23 11:37:59 +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
26884150d7 Remove the 0th descriptor set, move everything else back to 0 2022-12-16 13:05:40 +01:00
Henrik Rydgård
e6b7817cc6 Disable pre-rotation for 270 degree transform (inverse landscape).
Causes bizarre issues, see #15773
2022-12-15 11:29:11 +01:00
Henrik Rydgård
a44af59f3a Use vendor instead of lazy memory to detect tiling GPUs. 2022-12-14 16:59: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
Henrik Rydgård
30e1bc0540 Some logging improvements 2022-12-13 16:29:07 +01:00
Henrik Rydgård
73cd9fac7d Tiny optimization in PipelineDesc 2022-12-13 15:16:11 +01:00
Henrik Rydgård
675c282286 Hides the D3D9 option on Intel Xe graphics.
For whatever reason, it really doesn't work for me, while all three other
backends work perfectly. So let's just hide it.

You can still enable it through the ini file for debugging purposes.
2022-12-11 20:55:09 +01:00