From 15b2d88552b42260f6230dbce5276e8c9bce6642 Mon Sep 17 00:00:00 2001 From: EmulationEnjoyer <144477224+EmulationEnjoyer@users.noreply.github.com> Date: Sat, 19 Oct 2024 16:09:26 +0000 Subject: [PATCH] Fix divide by zero when recovering from missed draw (Vulkan) fixes crash in 'Baldo: The Guardian Owls' opening cutscene --- src/Ryujinx.Graphics.Vulkan/VertexBufferState.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Ryujinx.Graphics.Vulkan/VertexBufferState.cs b/src/Ryujinx.Graphics.Vulkan/VertexBufferState.cs index 6f27bb68..97b75398 100644 --- a/src/Ryujinx.Graphics.Vulkan/VertexBufferState.cs +++ b/src/Ryujinx.Graphics.Vulkan/VertexBufferState.cs @@ -56,7 +56,9 @@ namespace Ryujinx.Graphics.Vulkan { // May need to restride the vertex buffer. - if (gd.NeedsVertexBufferAlignment(AttributeScalarAlignment, out int alignment) && (_stride % alignment) != 0) + // Fix divide by zero when recovering from missed draw (Oct. 16 2024) + // (fixes crash in 'Baldo: The Guardian Owls' opening cutscene) + if (gd.NeedsVertexBufferAlignment(AttributeScalarAlignment, out int alignment) && alignment != 0 && (_stride % alignment) != 0) { autoBuffer = gd.BufferManager.GetAlignedVertexBuffer(cbs, _handle, _offset, _size, _stride, alignment);