nebula icon indicating copy to clipboard operation
nebula copied to clipboard

Memleak in visibilitycontext or modelcontext

Open fLindahl opened this issue 4 years ago • 0 comments

Can be reproduced with ex.:

static int frameIndex = 0;
static Graphics::GraphicsEntityId gids[10000];
if (frameIndex % 4 == 0)
{
    for (int i = 0; i < 10000; i++)
    {
        gids[i] = Graphics::CreateEntity();
        Graphics::RegisterEntity<Models::ModelContext, Visibility::ObservableContext>(gids[i]);
        Models::ModelContext::Setup(gids[i], "mdl:system/placeholder.n3", "ExampleScene", [i]()
        {
            Visibility::ObservableContext::Setup(gids[i], Visibility::VisibilityEntityType::Model);
            Models::ModelContext::SetTransform(gids[i], Math::translation(Math::vec3(5, 0, 0)));
        });
    }
}
else if (frameIndex % 2 == 0)
{
    for (int i = 0; i < 10000; i++)
    {
        if (Models::ModelContext::IsEntityRegistered(gids[i]))
        {
            Visibility::ObservableContext::DeregisterEntity(gids[i]);
            Models::ModelContext::DeregisterEntity(gids[i]);
            Graphics::DestroyEntity(gids[i]);
        }
    }
}
frameIndex++;

fLindahl avatar Feb 10 '21 21:02 fLindahl