Hardware meshbuffers are now deleted when they hold the last reference to a meshbuffer

HW buffers were keeping meshbuffers alive for 20000 frames even when no one else was using them anymore.
In cases of rapid creating/destroying static meshbuffers this could lead to serious memory leaks (which then kinda topped out after 5 minutes, but at that point it could already be too late).

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6599 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
cutealien
2024-02-29 13:42:22 +00:00
parent 989e82d5dd
commit b17fe835bc
3 changed files with 3 additions and 2 deletions

View File

@ -1815,7 +1815,7 @@ void CNullDriver::updateAllHardwareBuffers()
SHWBufferLink *Link=Iterator.getNode()->getValue();
Link->LastUsed++;
if (Link->LastUsed>20000)
if (Link->LastUsed>20000 || Link->MeshBuffer->getReferenceCount() == 1)
{
deleteHardwareBuffer(Link);