From a2bffc89945634c59c7f92f8bf5edd96860bb9cb Mon Sep 17 00:00:00 2001 From: Zephyron Date: Wed, 4 Feb 2026 19:44:15 +1000 Subject: [PATCH] perf(vulkan): increase shader threads for high-end Android devices - 6+ core devices: Use n-2 threads (e.g., 8-core uses 6 threads) - Lower-end devices: Keep 3 free cores as before - Improves shader compilation speed during game loading Signed-off-by: Zephyron --- src/video_core/renderer_vulkan/vk_pipeline_cache.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 520375840..4c005c5c8 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -268,8 +268,11 @@ size_t GetTotalPipelineWorkers() { const size_t max_core_threads = std::max(static_cast(std::thread::hardware_concurrency()), 2ULL); #ifdef ANDROID - // Leave at least a few cores free in android - constexpr size_t free_cores = 3ULL; + // PROJECT THOR OPTIMIZATION: Shader Threading for high-end Android devices + // For 8-core devices like SD8 Gen 2 (AYN Thor): Use 6 threads (8 - 2 = 6) + // For 6-core devices: Use 4 threads (6 - 2 = 4) + // For lower-end devices: Leave 3 cores free as before + const size_t free_cores = (max_core_threads >= 6ULL) ? 2ULL : 3ULL; if (max_core_threads <= free_cores) { return 1ULL; }