[Fix] (Diligent/Buffer): Recreate buffer object when the size changes.

This commit is contained in:
BZLZHH
2025-06-15 10:32:38 +08:00
parent 8fcf58a732
commit 0c2449dc5e
2 changed files with 17 additions and 7 deletions
@@ -223,7 +223,11 @@ namespace MG_GL::GL {
BuffDesc.Name = name.c_str();
BuffDesc.Usage = Diligent::USAGE_DEFAULT;
if (pBuffer == nullptr) {
if (!pBuffer || (pBuffer && pBuffer->GetDesc().Size != bufferObj.data.size())) {
if (pBuffer) {
pBuffer->Release();
pBuffer = nullptr;
}
Diligent::BufferData BuffData;
// Initial data must not be null for immutable buffers
BuffData.pData = BuffDesc.Usage != Diligent::USAGE_IMMUTABLE ? nullptr : bufferObj.data.data();