Skip to content
This repository has been archived by the owner on Nov 1, 2020. It is now read-only.

Memory leaks #387

Open
Nielsbishere opened this issue Jun 18, 2019 · 9 comments
Open

Memory leaks #387

Nielsbishere opened this issue Jun 18, 2019 · 9 comments

Comments

@Nielsbishere
Copy link
Contributor

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
Copy link
Contributor Author

Nielsbishere commented Jun 18, 2019

// 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
Copy link
Contributor Author

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
Copy link
Contributor Author

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

Memory impact

Not that much (est. 5%)

@Nielsbishere
Copy link
Contributor Author

Nielsbishere commented Jun 21, 2019

  • aiScene* isn't being cleaned up
  • Viknell probably still has materials left over
  • Sponza probably still has materials left over

@Nielsbishere
Copy link
Contributor Author

Nielsbishere commented Jun 21, 2019

  • Models don't clean up their allocated materials
  • Physics component doesn't clean up the rigid bodies, shapes, etc.

@Nielsbishere
Copy link
Contributor Author

  • Thread pool enqueue leaks memory

@Nielsbishere
Copy link
Contributor Author

Nielsbishere commented Jun 21, 2019

  • Build acceleration structure task doesn't clean up the CB

@Nielsbishere
Copy link
Contributor Author

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
Copy link
Contributor Author

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant