userFelixcancel
reporust_rebootcancel

644 Commits over 488 Days - 0.05cph!

54 Days Ago
rebase on main
2 Months Ago
merge from indirect_instancing
2 Months Ago
Keep Indirect Instancing disabled by default (until rare wrong object bug is fixed)
2 Months Ago
rebase on main
2 Months Ago
* 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
2 Months Ago
Remove unused field
2 Months Ago
Fix server build
2 Months Ago
rebase on main
2 Months Ago
* Made switching Indirect Instancing at runtime more robust * Prevent some other possible exceptions * Avoid some unnecessary calls to MotionList
2 Months Ago
* Renamed TransformMemory to MotionList (as it should be) * Use managed HashSet instead of NativeHashSet because there seems to be no performance benefit to using native at the moment. * Fixed exception caused by removing elements from the set while iterating
2 Months Ago
Use negative handles for fallback memory
2 Months Ago
Remove InstanceHandle and use a simple integer instead
2 Months Ago
* Added generic NativeMultiList to replace InstanceHandleList (WIP) * Store Transform.InstanceIDs (and actual nullable Transform references) in PerInstanceMemory, indexed by seq_num * Simplified MotionList add/removal procedures to HashSet operations * Cleared up function naming in BaseEntity.Client.Motion.cs * Consider all entities as a potential motion parent and utilise existing parent/child relations to call MotionStart / MotionStop * Removed IMotionParent interface because it caused more confusion than anything else * Correctly dispose of the hash set storing child instances when an entity is destroyed
2 Months Ago
(WIP) Large refactor: Make BaseEntity responsible for calling StartMotion / StopMotion with (potentially) a single array of numbers to mitigate spikes when large entities set into motion.
2 Months Ago
* Make instances identifiable by a single never changing integer * Speed up adding/removing instances by using various look up tables to find instances instead of staged linear searching
3 Months Ago
Convert seq_num uint → int
3 Months Ago
rebase on main
3 Months Ago
Enable Indirect Instancing by default
3 Months Ago
No longer restrict Indirect Instancing (`indirect_instancing.enabled`) to developer accounts. I'm looking at you, staging players. 👀
3 Months Ago
Allow Indirect Instancing to be toggled in-game any time (Also correctly applies config value when in editor now)
3 Months Ago
* Remove the need for HasValidMesh() on LOD components * Renamed a bunch of things for clarity
3 Months Ago
rebase on main
3 Months Ago
Disable Indirect Instancing by default to unblock editor issues (I'll be back)
3 Months Ago
Disable Indirect Instancing by default to unblock editor issues (I'll be back)
3 Months Ago
Remove wrong assertion
3 Months Ago
Remove wrong assertion
3 Months Ago
merge from indirect_instancing (for real this time)
3 Months Ago
merge from indirect_instancing
3 Months Ago
* Moved fallback bounds transformation to a job * Removed old fallback culling code
3 Months Ago
Cleanup: Remove old MotionList code
3 Months Ago
* Fixed objects in fallback renderer not updating correctly when in motion. * Added profiler markers for draw call submission of instanced and fallback renderers. * Fixed streaming_use_mesh_uv_distribution_metrics not actually doing anything.
3 Months Ago
Fix 2 NREs with Indirect Instancing enabled
3 Months Ago
* Convert INDIRECT_INSTANCING_ON to a global keyword because it kind of is global * Make sure INDIRECT_INSTANCING_ON is always defined in the GCINCLUDE section (Fixes shipping containers) * Allow changing indirect_instancing.enabled at any time in the Editor (FIxes entering play mode with it enabled)
3 Months Ago
Use LOD quality setting "Object Quality" in Indirect Instancing to more closely resemble the LOD switching behavior of the old system.
3 Months Ago
Try skipping the extra pass to remove null transforms for an extra 0.2 ms (toggleable via ConVar)
3 Months Ago
Perform application of the motion list transforms in a job for better performance
3 Months Ago
Merge from indirect_instancing (also force-disables it for non developers)
3 Months Ago
Set new _INDIRECT_INSTANCING_ON keyword when Indirect Instancing is enabled
3 Months Ago
Mark all Indirect Instancing ConVars as DeveloperOnly. Don't include DeveloperOnly commands in autocomplete.
3 Months Ago
Merge from main (to pull in mac_foliage_tearing_fix)
3 Months Ago
Rebase on /main
3 Months Ago
* Fix randomly disappearing in-motion objects since switching to the new TransformMemory implementation. * Fix randomly disappearing stationary and in-motion objects in the deep sea. * Fix concurrent access exception when in-motion objects are destroyed.
3 Months Ago
Rebase on /main
3 Months Ago
add some more debug info to TransformMemory
3 Months Ago
Improve performance of instances in motion by about 3x by mirroring all swap and copy operations of instance memory into a separate structure, and using that to apply new transforms of instances in motion.
3 Months Ago
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards)
3 Months Ago
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 7 of 7, because Plastic is a broken mess]
3 Months Ago
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 6 of X, because Plastic is a broken mess]
3 Months Ago
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 4 of X, because Plastic is a broken mess]
3 Months Ago
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 5 of X, because Plastic is a broken mess]