Commit 574a6f25 by Luc Ferron Committed by Commit Bot

Vulkan: Fix edge case in DynamicBuffer causing wrong allocations

- on a very specific scenario when the next buffer to allocate was fitting exactly in the allocated size. The condition was wrong and needed to be >= instead of >. Bug: angleproject:2562 Change-Id: Ide36bc3baadafdc1ffa40416b46998dc455caecf Reviewed-on: https://chromium-review.googlesource.com/1075293 Commit-Queue: Luc Ferron <lucferron@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 22695bf5
...@@ -126,7 +126,7 @@ Error DynamicBuffer::allocate(RendererVk *renderer, ...@@ -126,7 +126,7 @@ Error DynamicBuffer::allocate(RendererVk *renderer,
angle::base::CheckedNumeric<size_t> checkedNextWriteOffset = mNextAllocationOffset; angle::base::CheckedNumeric<size_t> checkedNextWriteOffset = mNextAllocationOffset;
checkedNextWriteOffset += sizeToAllocate; checkedNextWriteOffset += sizeToAllocate;
if (!checkedNextWriteOffset.IsValid() || checkedNextWriteOffset.ValueOrDie() > mSize) if (!checkedNextWriteOffset.IsValid() || checkedNextWriteOffset.ValueOrDie() >= mSize)
{ {
VkDevice device = renderer->getDevice(); VkDevice device = renderer->getDevice();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment