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; }