diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 25ed6ada9d..fccd64235f 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -269,8 +269,9 @@ size_t GetTotalPipelineWorkers() { const size_t max_core_threads = std::max(static_cast(std::thread::hardware_concurrency()), 2ULL) - 1ULL; #ifdef ANDROID - // Leave at least a few cores free in android - constexpr size_t free_cores = 3ULL; + // Leave at least a few cores free on Android; reserve two instead of three so + // pipeline compilation can consume one more worker thread for testing. + constexpr size_t free_cores = 2ULL; if (max_core_threads <= free_cores) { return 1ULL; }