From d4b9a6378fe3c5d785870798f719b95b5e7bd0d9 Mon Sep 17 00:00:00 2001 From: riperiperi Date: Wed, 25 May 2022 19:20:20 +0100 Subject: [PATCH] Bounds check on bitmap add. --- Ryujinx.Graphics.Vulkan/BufferUsageBitmap.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Ryujinx.Graphics.Vulkan/BufferUsageBitmap.cs b/Ryujinx.Graphics.Vulkan/BufferUsageBitmap.cs index 1eadd8385..3242b9fc9 100644 --- a/Ryujinx.Graphics.Vulkan/BufferUsageBitmap.cs +++ b/Ryujinx.Graphics.Vulkan/BufferUsageBitmap.cs @@ -24,6 +24,12 @@ public void Add(int cbIndex, int offset, int size) { + // Some usages can be out of bounds (vertex buffer on amd), so bound if necessary. + if (offset + size > _size) + { + size = _size - offset; + } + int cbBase = cbIndex * _bitsPerCb; int start = cbBase + offset / _granularity; int end = cbBase + (offset + size - 1) / _granularity;