You are browsing as a guest. Sign up (or log in) to start making projects!

2h 31m 48s logged

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 ResourceManager access 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…..

0
46

Comments 0

No comments yet. Be the first!