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

VkPipelineCache: Use a null shader on invalid address.

Fernando Sahmkow 6 лет назад
Родитель
Сommit
8d15f8b28e
1 измененных файлов с 1 добавлено и 2 удалено
  1. 1 2
      src/video_core/renderer_vulkan/vk_pipeline_cache.cpp

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

@@ -329,8 +329,7 @@ VKPipelineCache::DecompileShaders(const GraphicsPipelineCacheKey& key) {
 
 
         const GPUVAddr gpu_addr = GetShaderAddress(system, program_enum);
         const GPUVAddr gpu_addr = GetShaderAddress(system, program_enum);
         const auto cpu_addr = memory_manager.GpuToCpuAddress(gpu_addr);
         const auto cpu_addr = memory_manager.GpuToCpuAddress(gpu_addr);
-        ASSERT(cpu_addr);
-        const auto shader = TryGet(*cpu_addr);
+        const auto shader = cpu_addr ? TryGet(*cpu_addr) : null_shader;
         ASSERT(shader);
         ASSERT(shader);
 
 
         const std::size_t stage = index == 0 ? 0 : index - 1; // Stage indices are 0 - 5
         const std::size_t stage = index == 0 ? 0 : index - 1; // Stage indices are 0 - 5