From 79e5eb6a746339d758cb67c8623d2e126019447f Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 30 Jun 2025 13:47:07 +0800 Subject: [PATCH] [Fix] (MG_State/Buffer): ignore 0-sized reallocation --- MG/MG_GL/Implementations/GL/Buffer/GL_Buffer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/MG/MG_GL/Implementations/GL/Buffer/GL_Buffer.cpp b/MG/MG_GL/Implementations/GL/Buffer/GL_Buffer.cpp index 2a3d1512..928b4fba 100644 --- a/MG/MG_GL/Implementations/GL/Buffer/GL_Buffer.cpp +++ b/MG/MG_GL/Implementations/GL/Buffer/GL_Buffer.cpp @@ -193,8 +193,10 @@ namespace MG_GL::GL { if (buffer == 0) return; auto& bufferObj = *MG_State_T::bufferState->GetOrCreateBufferObject(buffer); if (bufferObj.isDynamic) return; // Dynamic buffer should be created by glDraw* - + if (size <= 0) return; // ignore 0-sized reallocation + bufferObj.dirty = false; + Diligent::IBuffer*& pBuffer = MG_Diligent::g_BufferMap[buffer]; Diligent::BufferDesc BuffDesc; @@ -226,7 +228,7 @@ namespace MG_GL::GL { BuffDesc.Name = name.c_str(); BuffDesc.Usage = Diligent::USAGE_DEFAULT; - if (!pBuffer || (pBuffer && pBuffer->GetDesc().Size != bufferObj.data.size())) { + if (!pBuffer || (pBuffer && pBuffer->GetDesc().Size != bufferObj.data.size()) ) { if (pBuffer) { pBuffer->Release(); pBuffer = nullptr;