From 15565592110d50cc5406d8f4732e75aae8df9b22 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 24 Mar 2026 10:30:25 -0700 Subject: [PATCH] fix: skip VkPipelineCache on NVIDIA to prevent driver crash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VkPipelineCache causes vkCmdBeginRenderPass to SIGSEGV inside libnvidia-glcore.so on NVIDIA 590.x drivers. Skip pipeline cache creation on NVIDIA GPUs — NVIDIA drivers already provide built-in shader disk caching, so the Vulkan-level cache is redundant. Pipeline cache still works on AMD and other vendors. --- src/rendering/vk_context.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/rendering/vk_context.cpp b/src/rendering/vk_context.cpp index 5a1ae34c..9d1427d5 100644 --- a/src/rendering/vk_context.cpp +++ b/src/rendering/vk_context.cpp @@ -306,6 +306,14 @@ static std::string getPipelineCachePath() { } bool VkContext::createPipelineCache() { + // NVIDIA drivers have their own built-in pipeline/shader disk cache. + // Using VkPipelineCache on NVIDIA 590.x causes vkCmdBeginRenderPass to + // SIGSEGV inside libnvidia-glcore — skip entirely on NVIDIA GPUs. + if (gpuVendorId_ == 0x10DE) { + LOG_INFO("Pipeline cache: skipped (NVIDIA driver provides built-in caching)"); + return true; + } + std::string path = getPipelineCachePath(); // Try to load existing cache data from disk.