636 Commits over 488 Days - 0.05cph!
merge from indirect_instancing (build fix)
Fix client and server build 🎳
merge from indirect_instancing
* Fixed doors getting detached when operated on a vehicle with indirect instancing
* Fixed ghost objects being left behind if they had skins applied.
* Fixed debug overlay not returning correct results in the editor
* Improved debug overlay to be more useful and readable
* Added prototype SIMD collider-less raycasting code. (WIP)
merge from indirect_instancing
Remove DeveloperOnly restriction from Indirect Instancing Convars
Add an assertion when trying to update visibility while jobs are running
Fix assertion triggered when another player uses a telephone
merge from shader_variant_cleanup
Made non-monster (mesh-draw) renderers toggleable for performance testing
merge from indirect_instancing
Mark Indirect Instancing as DeveloperOnly
Fixed NRE in FallbackMemory.SubmitDrawCalls and other problems by using a free space bitmap and keeping fallback indices stable
Fix occasional wrong position of objects which use Animator snapping upon spawn when Instancing is active
Attempt to fix release build crash with Indirect Instancing enabled by avoiding (potentially buggy) NativeBitArray altogether.
merge from indirect_instancing
Advanced on-screen profiling using FrameTimingManager (WIP)
Improve Update() performance by caching is_in_motion state for every entity.
Improve Update() performance by caching is_in_motion state for every entity.
merge from indirect_instancing
* Tuned execution order to avoid waiting for jobs the main thread.
* Split TransformApplyJob into TransformGatherJob that only extracts matrices to reduce any locks we might place on transform data.
* Added a ton more instrumentation to the CrudeProfiler to get more live information about Indirect Instancing, Debug Draw and also some global timings.
* Made certain expensive debug features toggleable.
* The debug overlay can now render “µ”.
merge from indirect_instancing
Some fixes and cleanups for the Indirect Instancing debug overlay
merge from indirect_instancing
Properly cull underground objects when Indirect Instancing is enabled
Fix culling volumes not working with Indirect Instancing by allowing to inject culling decisions from gameplay code. (pre_culled_mask)
merge from indirect_instancing
Fix deep sea island terrain not rendering properly when Indirect Instancing is enabled by not instancing all MeshTerrains for now.
Fix command count mismatch error spam due to destroyed materials.
merge from indirect_instancing (exception fix)
Fix a typo causing an access conflict between DamageTrackerRegionScanJob and TransformApplyJob
merge from indirect_instancing
Fix object popping caused by orphaned motion list entries in multiple ways:
* Remove seq_nums from the motion list just before they are unassigned. This piggy-backs off the existing remove_queue to guarantee container safety when objects are destroyed at inconvienient times. No need for a separate motion_stop_queue.
* Store parent entity for every InstancedLODComponent. When objects are returned to the pool they are unparented first, but they still need to know who their parent was so they can properly remove their seq_nums from that entity.
Bonus: Fix some NREs when Indirect Instancing is disabled in the editor.
merge from indirect_instancing
Keep Indirect Instancing disabled by default (until rare wrong object bug is fixed)
* Improve job scheduling to make leaving the job phase more robust through loading screens
* Fix NRE when trying to remove instances before Indirect Instancing was initialised