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

vk_buffer_cache: Fix quad index array with 0 vertices (#6627)

Fernando S 5 лет назад
Родитель
Сommit
9a26d96c98
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      src/video_core/renderer_vulkan/vk_buffer_cache.cpp

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

@@ -161,6 +161,13 @@ void BufferCacheRuntime::BindIndexBuffer(PrimitiveTopology topology, IndexFormat
 }
 
 void BufferCacheRuntime::BindQuadArrayIndexBuffer(u32 first, u32 count) {
+    if (count == 0) {
+        ReserveNullBuffer();
+        scheduler.Record([this](vk::CommandBuffer cmdbuf) {
+            cmdbuf.BindIndexBuffer(*null_buffer, 0, VK_INDEX_TYPE_UINT32);
+        });
+        return;
+    }
     ReserveQuadArrayLUT(first + count, true);
 
     // The LUT has the indices 0, 1, 2, and 3 copied as an array