Просмотр исходного кода

video_core: Check broken compute earlier

Checks it as the system is determining what settings to enable. Reduces
the need to check settings while the system is running.
lat9nq 3 лет назад
Родитель
Сommit
197e13d93d

+ 1 - 1
src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

@@ -705,7 +705,7 @@ std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
 std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
 std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
     ShaderPools& pools, const ComputePipelineCacheKey& key, Shader::Environment& env,
     ShaderPools& pools, const ComputePipelineCacheKey& key, Shader::Environment& env,
     PipelineStatistics* statistics, bool build_in_parallel) try {
     PipelineStatistics* statistics, bool build_in_parallel) try {
-    if (device.HasBrokenCompute() && !Settings::values.enable_compute_pipelines.GetValue()) {
+    if (device.HasBrokenCompute()) {
         LOG_ERROR(Render_Vulkan, "Skipping 0x{:016x}", key.Hash());
         LOG_ERROR(Render_Vulkan, "Skipping 0x{:016x}", key.Hash());
         return nullptr;
         return nullptr;
     }
     }

+ 2 - 1
src/video_core/vulkan_common/vulkan_device.cpp

@@ -563,7 +563,8 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
         cant_blit_msaa = true;
         cant_blit_msaa = true;
     }
     }
     has_broken_compute =
     has_broken_compute =
-        CheckBrokenCompute(properties.driver.driverID, properties.properties.driverVersion);
+        CheckBrokenCompute(properties.driver.driverID, properties.properties.driverVersion) &&
+        !Settings::values.enable_compute_pipelines.GetValue();
     if (is_intel_anv || (is_qualcomm && !is_s8gen2)) {
     if (is_intel_anv || (is_qualcomm && !is_s8gen2)) {
         LOG_WARNING(Render_Vulkan, "Driver does not support native BGR format");
         LOG_WARNING(Render_Vulkan, "Driver does not support native BGR format");
         must_emulate_bgr565 = true;
         must_emulate_bgr565 = true;