fix: skip VkPipelineCache on NVIDIA to prevent driver crash

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.
This commit is contained in:
Kelsi 2026-03-24 10:30:25 -07:00
parent 0a32c0fa27
commit 1556559211

View file

@ -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.