mirror of
https://github.com/minetest/irrlicht.git
synced 2025-01-30 11:30:19 +01:00
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:
parent
989e82d5dd
commit
b17fe835bc
@ -1,6 +1,7 @@
|
||||
--------------------------
|
||||
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
|
||||
- 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.
|
||||
|
@ -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);
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
Tests finished. 72 tests of 72 passed.
|
||||
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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user