From 3c81fdc64901fee7131b5435377a1c78f57d05e5 Mon Sep 17 00:00:00 2001 From: Ribbit Date: Fri, 10 Oct 2025 18:28:11 -0700 Subject: [PATCH] [vk] Give 1 more core to Android cause why not --- .../renderer_vulkan/vk_pipeline_cache.cpp | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 9cdbe5611b..f2614fe015 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -270,7 +270,7 @@ size_t GetTotalPipelineWorkers() { 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; + constexpr size_t free_cores = 2ULL; if (max_core_threads <= free_cores) { return 1ULL; } @@ -318,6 +318,7 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, serialization_thread(1, "VkPipelineSerialization") { const auto& float_control{device.FloatControlProperties()}; const VkDriverId driver_id{device.GetDriverID()}; + const bool is_stock_qualcomm_driver{driver_id == VK_DRIVER_ID_QUALCOMM_PROPRIETARY}; profile = Shader::Profile{ .supported_spirv = device.SupportedSpirvVersion(), .unified_descriptor_binding = true, @@ -331,16 +332,19 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, float_control.denormBehaviorIndependence == VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, .support_separate_rounding_mode = float_control.roundingModeIndependence == VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, - .support_fp16_denorm_preserve = float_control.shaderDenormPreserveFloat16 != VK_FALSE, - .support_fp32_denorm_preserve = float_control.shaderDenormPreserveFloat32 != VK_FALSE, - .support_fp16_denorm_flush = float_control.shaderDenormFlushToZeroFloat16 != VK_FALSE, - .support_fp32_denorm_flush = float_control.shaderDenormFlushToZeroFloat32 != VK_FALSE, + .support_fp16_denorm_preserve = + is_stock_qualcomm_driver && float_control.shaderDenormPreserveFloat16 == VK_TRUE, + .support_fp32_denorm_preserve = float_control.shaderDenormPreserveFloat32 == VK_TRUE, + .support_fp16_denorm_flush = float_control.shaderDenormFlushToZeroFloat16 == VK_TRUE, + .support_fp32_denorm_flush = float_control.shaderDenormFlushToZeroFloat32 == VK_TRUE, .support_fp16_signed_zero_nan_preserve = - float_control.shaderSignedZeroInfNanPreserveFloat16 != VK_FALSE, + is_stock_qualcomm_driver && + float_control.shaderSignedZeroInfNanPreserveFloat16 == VK_TRUE, .support_fp32_signed_zero_nan_preserve = - float_control.shaderSignedZeroInfNanPreserveFloat32 != VK_FALSE, + is_stock_qualcomm_driver && + float_control.shaderSignedZeroInfNanPreserveFloat32 == VK_TRUE, .support_fp64_signed_zero_nan_preserve = - float_control.shaderSignedZeroInfNanPreserveFloat64 != VK_FALSE, + float_control.shaderSignedZeroInfNanPreserveFloat64 == VK_TRUE, .support_explicit_workgroup_layout = device.IsKhrWorkgroupMemoryExplicitLayoutSupported(), .support_vote = device.IsSubgroupFeatureSupported(VK_SUBGROUP_FEATURE_VOTE_BIT), .support_viewport_index_layer_non_geometry =