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

@ -1,6 +1,7 @@
-------------------------- --------------------------
Changes in 1.9 (not yet released) Changes in 1.9 (not yet released)
- Hardware meshbuffers are now deleted when they hold the last reference to a meshbuffer
- Variable order inside SMaterial and SMaterialLayer changed for better packing - Variable order inside SMaterial and SMaterialLayer changed for better packing
- line3d::getClosestPoint can now chose between using line or line segment - line3d::getClosestPoint can now chose between using line or line segment
- MY3D loader deprecated and disabled by default as MY3D tools can't be found on the web anymore. Also could always be used as external loader. - MY3D loader deprecated and disabled by default as MY3D tools can't be found on the web anymore. Also could always be used as external loader.

View File

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

View File

@ -1,4 +1,4 @@
Tests finished. 72 tests of 72 passed. Tests finished. 72 tests of 72 passed.
Compiled as DEBUG Compiled as DEBUG
Test suite pass at GMT Thu Feb 22 17:49:13 2024 Test suite pass at GMT Thu Feb 29 13:39:39 2024