TeamWisp / WispRenderer

RTX Ray Tracing Renderer, made by Y3 students at Breda University of Applied Science
https://teamwisp.github.io
Apache License 2.0
202 stars 14 forks source link

Memory leaks #387

Open Nielsbishere opened 5 years ago

Nielsbishere commented 5 years ago

Is your request related to a problem? Please describe. There's several memory leaks that result in problems when the maya plugin unloads wips. This thread will be used to note the findings of the inspection.

Describe the solution you'd like These instances should be fixed.

Describe alternatives you've considered N.A.

Additional context Create an exit callback (call onexit(myCallback)), place a breakpoint on start and in the callback and take 2 snapshots to diff.

Nielsbishere commented 5 years ago
// Make sure we free the data objects we allocated.
for (auto& data : m_data)
{
    delete data;
}

__In frame_graph.hpp Destroy function__ Auto doesn't provide clarity about the type; but the type is void*. This means that it doesn't call free or the destructor of the object.

Memory impact

Among the largest left over objects are because of this issue (est. 20%)

Nielsbishere commented 5 years ago

PhysicsEngine::destroy is never being called, leaving behind bullet's resources.

Memory impact

The biggest impact as bullet allocates several memory pools (est. 60%)

Nielsbishere commented 5 years ago

texture_pool ptr is potentially never reset; leaving behind some memory.

Memory impact

Not that much (est. 5%)

Nielsbishere commented 5 years ago
Nielsbishere commented 5 years ago
Nielsbishere commented 5 years ago
Nielsbishere commented 5 years ago
Nielsbishere commented 5 years ago

Possible issues to look into further: Left-over data includes; C++ initialization data which should be taken care of by the program finishing unloading. Other than that; file streams seem to have temporary memory that may or may not be deleted after program end.

Nielsbishere commented 5 years ago

Even though CPU memory leaks are mostly cleaned up, there could potentially still be GPU memory leaks.