diff options
| author | 2023-04-28 17:52:11 -0400 | |
|---|---|---|
| committer | 2023-04-28 17:59:36 -0400 | |
| commit | cb092af3f0e3009ce9e0d7ce016e145917cbc7e1 (patch) | |
| tree | 0a70c0cf76fd2ae6cbe868641404f75f00bba282 | |
| parent | Merge pull request #10051 from liamwhite/surface-capabilities (diff) | |
| download | yuzu-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.cpp | 7 |
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( | |||
| 696 | std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline( | 696 | std::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()}; |