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

vk_buffer_cache: Handle null texture buffers

Fixes a crash on Age of Calamity cutscenes.
ReinUsesLisp 5 лет назад
Родитель
Сommit
b02c78b276
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      src/video_core/renderer_vulkan/vk_buffer_cache.cpp

+ 4 - 0
src/video_core/renderer_vulkan/vk_buffer_cache.cpp

@@ -97,6 +97,10 @@ Buffer::Buffer(BufferCacheRuntime& runtime, VideoCore::RasterizerInterface& rast
 }
 }
 
 
 VkBufferView Buffer::View(u32 offset, u32 size, VideoCore::Surface::PixelFormat format) {
 VkBufferView Buffer::View(u32 offset, u32 size, VideoCore::Surface::PixelFormat format) {
+    if (!device) {
+        // Null buffer, return a null descriptor
+        return VK_NULL_HANDLE;
+    }
     const auto it{std::ranges::find_if(views, [offset, size, format](const BufferView& view) {
     const auto it{std::ranges::find_if(views, [offset, size, format](const BufferView& view) {
         return offset == view.offset && size == view.size && format == view.format;
         return offset == view.offset && size == view.size && format == view.format;
     })};
     })};