hardening + performance stuff
so this is kinda the continuation of the last log(s) where i was going through some old code
kinda boooring but its important
performance
mainly been trying to get rid of unnecessary allocations and full scans stuff
- optimized ECS entity/component lookups and removal
- reworked hierarchy propagation to avoid unnecessary registry scans
- reduced allocations in scripting and UI command buffers
- cached script wrappers so they can be reused instead of constantly recreated
- improved UI lookups with a proper name index
- made particle/lightmap updates only rebuild when actually needed
- cached project browser directory scans
- capped the editor console and added clipping for large logs
also did a bunch of smaller optimizations around scripting task scheduling and resource loading things
thread safety
went through a lot of the cross-thread stuff as well
- made
ResourceManageraccess properly synchronized - experimenting with the audio locking
- guarded FreeType access
- made window size and pending scene state thread-safe
- fixed some render thread / GL context handling
basically trying to make all the multithreading stuff a little less “it seems to work” type stuff
though alot of this probably wasnt actually causing any issues YET, it would be very hard to debug in the future if I didn’t try to fix it now so yeahh
correctness
- fixed several out-of-bounds issues in VFS/package parsing
- made VFS path resolution properly stay inside the VFS root (oops…)
- fixed hierarchy reparenting allowing cycles
- fixed a few dangling references in hierarchy code
- fixed some component pool and packaged asset lifetime issues
- undo history now clears when loading a scene
- cleaned up a few map editor edge cases
- fixed text centering
- fixed the triangle mesh
- made engine context non copyable
also updated the demo template while I was at it (since a recent movementcomponent update it wasnt behaving properly due to the addition of a new field)
there are other small things i probably didn’t mention here too but it’s mostly all a collection of a bunch of small things
im still testing this though and looking into a few other small things…..
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.