summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Morph2023-04-28 17:52:11 -0400
committerGravatar Morph2023-04-28 17:59:36 -0400
commitcb092af3f0e3009ce9e0d7ce016e145917cbc7e1 (patch)
tree0a70c0cf76fd2ae6cbe868641404f75f00bba282
parentMerge pull request #10051 from liamwhite/surface-capabilities (diff)
downloadyuzu-cb092af3f0e3009ce9e0d7ce016e145917cbc7e1.tar.gz
yuzu-cb092af3f0e3009ce9e0d7ce016e145917cbc7e1.tar.xz
yuzu-cb092af3f0e3009ce9e0d7ce016e145917cbc7e1.zip
vk_pipeline_cache: Skip compute pipelines on Intel proprietary drivers
Intel's SPIR-V shader compiler is broken. For now, skip compiling any compute pipelines until they fix this issue. This is not a perfect workaround, as there are a small subset of non-compute pipelines that still cause it to crash, but this should cover the majority of crashes. It is unfortunate that even with a test case reported 6 months ago the issue has not been fixed in favor of fixing "the most popular games and apps". Intel, you can do better than this.
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 985cc3203..a318d643e 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -696,6 +696,13 @@ std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
696std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline( 696std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
697 ShaderPools& pools, const ComputePipelineCacheKey& key, Shader::Environment& env, 697 ShaderPools& pools, const ComputePipelineCacheKey& key, Shader::Environment& env,
698 PipelineStatistics* statistics, bool build_in_parallel) try { 698 PipelineStatistics* statistics, bool build_in_parallel) try {
699 // TODO: Remove this when Intel fixes their shader compiler.
700 // https://github.com/IGCIT/Intel-GPU-Community-Issue-Tracker-IGCIT/issues/159
701 if (device.GetDriverID() == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) {
702 LOG_ERROR(Render_Vulkan, "Skipping 0x{:016x}", key.Hash());
703 return nullptr;
704 }
705
699 LOG_INFO(Render_Vulkan, "0x{:016x}", key.Hash()); 706 LOG_INFO(Render_Vulkan, "0x{:016x}", key.Hash());
700 707
701 Shader::Maxwell::Flow::CFG cfg{env, pools.flow_block, env.StartAddress()}; 708 Shader::Maxwell::Flow::CFG cfg{env, pools.flow_block, env.StartAddress()};