1,700 Commits over 427 Days - 0.17cph!
Update: different approach to skipping persistent BenchmarkTimers
Old way didn't work because of pauses between benchmark runs (global systems would step and recreate them).
Tests: ran in editor, confirmed output didn't contain specific timers
Update: log results when running benchmarks in single scene mode
Tests: checked logs after running the scene
Clean: remove EFfectsBenchmark from the list
I've removed it in the past, but apparantly forgot to remove it from this list as well
Tests: none, trivial change
Update: BaseRaidBench - clean up custom timers from tracking
Otherwise they end up in results with their generic names
Tests: none, trivial change
Merge: from camerarenderer_leak
- Fixes memory leaks related to Rust+'s camera renderer and Nexus mugshot savings
Tests: print_arraypool when connected to turret - before ProtocolParser 16KB set would grow, now stays constant
Bugfix: properly recycle mugshot data pooled array on nexus servers
Tests: none, same type of change as previous
Bugfix: properly recycle pooled array for camerarenderer
Tests: connected to a turret, printed array pool - before ProtocolParser 16KB pool would grow, now stays constant
Update: rewrite print_arraypool to support multiple array pool output
- also added logic to take into account T size
Useful to validate we're not leeking across pools
Tests: used in editor, both text and json options
Merge: from benchmarking_update
- Cleanup of obsolete EffectsBenchmark
- Editor-only DemoBuildingsViewer supports user modification of scene, scene export and import into scene
- Bugfix for infinite load loop in benchmarking flow
Tests: used the DemoBuildingsViewer to modify and export couple bases, built standalone client to run BaseRaidBench
Bugfix: fix infinite loading loop when running benchmarks
Caused by us hiding the loading screen and then loading monument scenes, which would leave them in limbo
Tests: ran the benchmark flow in editor and standalone client
Clean: DemoBuildingsViewer - complete remaining TODOs
- moved all InvalidBuildingId to Benchmark.Building
- consolidated some of Benchmark.Building's initialization logic
- fixed wrong comment
Tests: compiles in editor
Update: DemoBuildingsViewer - support exporting user placed building blocks
Requires them to have the BuildingBlockMetadata component
Tests: exported base with an extra wall, checked json - had expected values
Update: DemoBuildingsViewer - import handles domain reload events to avoid duplication
Tests: loaded a base from demo, triggered domain reload, deleted a wall, reimported - only wall came back
Update: DemoBuildingsViewer - can now export scene
- BuildingBlockMetadata now caches ParentEntityId and PrefabId
This enables the workflow of manually modifying bases in editor before export
Tests: diffed the Export merged and Export scene outputs (mostly the same, different sorting and slightly differeing floats by tiny epsilon), imported base from export scene - it's the same
Update: DemoBuildingsViewer - annotate spawned building blocks with metadata
- Also fixed building marker deduplication only spawning 1 marker
Allows to implement export of a scene (with manual edits), rather than demo protobuf.
Tests: used the tool, gizmos confirmed link up with building markers
Bugfix: DemoBuildingsViewer - don't spawn extra building markers on import
Tests: used the tool
Update: DemoBuildingsViewer - add debug toggle to spawn from source protobuf
Helps validating that everything is spawning correctly
Tests: used the tool in editor
Update: DemoBuildingsViewer - use processed protobufs, instead of raw demo protobufs, for scene spawning
- Benchmark.Building no longer caches raw protobufs
This standardizes logic between benchmarks and the viewer tool.
Tests: opened a couple bases from a demo
Update: DemoBuildingsViewer - can now recreate entities that have been deleted
Tests: spawned a base, deleted a bunch of walls, reimported - all back to normal
Bugfix: DemoBuilidngsViewer - ensure first building block instances have skin applied to them
- caused by invalid stability triggering early skin change, instead of deferring it till after we preprocess skins
Tests: imported base, looked the same as in demo
Update: DemoBuildingsViewer - support reimport of building blocks from base json
Takes us closer to being able to edit bases and export. Spotted it failing to create a correct wall (even though other same prefabs are okay).
Tests: used the tool
Bugfix: DemoBuildingsViewer - tag imported spawn markers to allow export
Tests: ran the tool
Update: DemoBuildingViewer - add ability to import markers from previously exported base
- spawn markers now visualize if their override is invalid
Makes it possible to do incremental fixups via the editor
Tests: used the tool in editor
Clean: mark BiomeBenchmark as enabled for build
It doesn't have an effect on the build as far as I can see, but makes it clearer to readers that it is included in the build
Tests: none, trivial change
Clean: remove EffectsBenchmark
Superseded by BaseRaidBenchmark
Tests: editor compiles
Update: BaseRaidBench - ensure results use 3-part format for key
Tests: none, trivial change
New: Scenes/Benchmark editor top bar menu
Tests: used all in editor - correct scenes opened
Merge: from main
Tests: ran BaseRaidBenchmark via bootstrap flow
Update: BaseRaidBench - players outside base now aim at random players in base
Tests: ran the scene
Update: BaseRaidBench - remove Projectile.Batched override
Now that it's on by default, we no longer need this override. also makes it easier to control the benchmark externally
Tests: ran the scene
Update: BaseRaidBench - players moved to the base angle properly to fire
Tests: ran the scenario
Bugfix: BaseRaidBench - local player now rotates properly
Tests: ran the scene
Bugfix: BaseRaidBench - local player now spawns on the spawn marker
Looks in the wrong direction - will fix next
Tests: ran the scene
Update: BaseRaidBench - add a run that spawns base and players in it under attack
- Removed baseRaid5 and baseRaid25
Local player spawns/teleports to the wrong position - will fix next.
Tests: ran the scene locally
Update: DemoBuildingsViewer - always visualize spawn markers
Simplifies scene setup
Tests: used in editor
Bugfix: SpawnMarker.SpawnType are now proper bitflags
Tests: none, trivial change
Clean: move Building to Benchmark namespace
Tests: compiles in editor
Update: DemoBuildingsViewer - export spawn markers
Tests: ran the export with couple markers
New: editor-only SpawnMarker for DemoBuildingsViewer
- automatically links up to nearest building, but can override
Allows to anotate the scene with spawn markers and link up to the nearest building. Needed for more complex benchmark setups
Tests: loaded staging demo and checked how gizmos draw
Update: extra scopes for Projectile perf tests
Tests: ran the perf tests
Update: BaseRaidBench - move BenchmarkUpdate to Update
Hopefully will avoid confusion on why we have multiple update methods
Tests: ran the scene
Update: promote hack to fix
- expanded the explanation a bit further why it should stay
Tests: none, trivial change
Hack: workaround for the BurstClothManager NRE - clean the run in Update
Will fix the burst cloth related prefabs in a separate branch.
Tests: ran the benchmark - no more NREs
Update: forgot to save BaseRaidBenchmark scene with the changes
Tests: none, trivial change
Update: BaseRaidBench - add support for spawning a random base from a list
Tests: ran the scene
Update: DemoBuildingsViewer - add ability to export as a merged base
Tests: exported 3 bases from staging demo as 1