2,627 Commits over 639 Days - 0.17cph!
Update: BiomeBenchmark - add basic avg frame time tracking
Tests: ran scene in editor
Update: BiomeBenchmark - generate fly-through camera track
Tests: BiomeBenchmark in editor
Update: BiomeBenchmark - re-enable a bunch of procgen scatter
- Brings in vine trees, rocks
Tests: BiomeBenchmark in editor
Update: BiomeBenchmarks
- Fixed biome generation on row-islands
- Benchmark map size works with NPOT sizes
Now to figure out why forests are not coming through
Tests: BiomeBenchmark in editor
Update: BiomeBEnchmark - minor progress
- Fix invalid biome assignation per island
- Submerge the terrain
- Get rid of terrain setup in scene
- Fixed terrain heightfield to generate non-ocean topology, but the scale of the resulting terrain is too big.
Still investigating how to make topo better without inflating terrain too much.
Tests: BiomeBenchmark in editor
Update: BiomeBenchmark - disable rock scattering to speed up iteration
Will re-enable later
Tests: BiomeBenchmark in editor
Merge: from main
Tests: none, no conflicts
Update: BiomeBenchmark - first baby steps
- Generates empoty row-islands + biome map for these islands
- Generates biome map for row-islands
Confused why I get beach texture everywhere. Need to sort that next.
Tests: ran the BiomeBenchmark scene in editor
Update: BenchScene - StartBenchmark is now a coroutine
Helpful to make BiomeBenchmark setup straighforward
Tests: autobench in editor
Clean: remove deleted TerrainBenchmark from the build settings
Tests: none, trivial change
Bugfix: FoliageGridBenchmark - FoliageGrid was destroyed without waiting for job completion
This caused issues with native container cleanup
Tests: autobench in editor
Update: Merge Terrain and FoliageGrid benchmarks
- Re-enabled terrain rendering in FoliageGridBenchmark
- Delete TerrainBenchmark
Tests: autobench in editor
Bugfix: MonumentBenchmark - don't clean up reflection probes between monument spawns
This would cause sporadic exceptions during benchmark run.
Tests: autobench in editor
Update: Hook in PacketProfiling for outgoing traffic
Only tracks Rust packets.
Tests: on Craggy in editor with runtime_profiling 2 and breakpoints
Bugfix: MonumentBenchmark - clean-up CullingManager between monuments
- Also reduced cool down frames to 5 from 10
That's all NREs for monuments done, hopefully none in standalone as well
Tests: played MonumentBenchmark in editor
Bugfix: MonumentBenchmark - clear dungeon entrance cache since we destroy them now
Only 1 exception left
Tests: MonumentBenchmark scene in editor
Bugfix: MonumentScene - create missing World.Config that some monuments rely upon
Tests: ran the MonumentBenchmark in editor - less errors
Update: MonumentBenchmark - clean up any left-over prefabs
Some monuments spawn dungeon entries or the like, and they stay in the scene after we start benching a different prefab.
Tests: played MonumentBenchmark in editor
Update: speed up MonumentBenchmark
- 10 frames to cool down instead of 5s
- bench 60 frames instead of 120 per vantage stage
Cuts down from 35m to 4m50s.
Tests: played the MonumentBenchmark scene in editor
Update: MonumentBenchmark - bench all monuments instead of 3
Took 35minutes, need to reduce timers
Tests: autobench in editor
Debug: Bring back player cache validation on release
Saw on release env today that it did trip up twice and prevented issues, so there's still value in it.
Tests: none, trivial change
Bugfix: MonumentBenchmark - move WaterSystem init to Start
In standalone client it errorred due to different default awake order (Monument awake before WaterSystem)
Tests: autobench in editor
Update: add MonumentBenchmark to the autobench set
Tests: run atuobench in the editor
Bugfix: MonumentBenchmark - fix terrain and water systems
- Added missing WaterSystems setup and hooked in initialization
- Fixed terrain being setup with missmatching Craggy and CraggyHD assets(using Craggy now) and hooked in initialization
No more exceptions during monument benchmark
Tests: ran autobench in editor
Update: re-enable Effects and Firework benchmark scenes
They didn't have issues, so adding them to the pile
Tests: autobench in editor
Bugfix: Disable demo benchmarking part of autobench
- removing old demos
Our demos are too stale and no longer binary compatible with the protocol changes
Tests: ran autobench in editor
Update: move some of the validate logic back to DEV_BUILD only
These routines do sanity checks, and for the last couple days of testing they haven't picked up anything.
Tests: on Craggy in editor with UsePlayerUpdateJobs 1
Clean: remove recently-added debugging logic
Tests: none, trivial change
Bugfix: safeguard against NRE induced kicked players in UsePlayerUpdateJobs
- Added a couple warning comments
If kick happens in the middle of player update loop, it would invalidate one of cached indexes and access a null.
Tests: forced a disconnect mid processing, no NRE caught
Merge: from parallel_validatemove
- Additional debugging logic to help track down mystery NRE
Tests: ran around in editor in SERVER+CLIENT mode with useplayerupdatejobs 1
Merge: from main
Tests: none, no conflicts
Debug: add a latch to track player disconnects & removal during ServerUpdateParallel
Tests: unit tests + craggy in editor
Debug: adding progress tracking to FinalizeTickParallel to help track down origin of NRE
- also couple formatting fixes
Tests: used mode on Craggy in editor
Merge: from texttable_allocs
- TextTable now pads the last column as before
Tests: unit tests + editor test on 1-player team
Update: rewrite teaminfo to reduce allocs
Tests: tested in editor
Update: bring back last column padding to TextTable.ToString
This time, on the right branch
Tests: unit tests
Backout of
122696 - was meant to go into texttable_allocs branch
Update: bring back last column padding to TextTable.ToString
Tests: unit tests
Merge: from profiling_improvements
- New server profiler allocation tracking mode, start with "watchallocs", stop with "stopwatchingallocs", control export via various NotifyOn... server vars
- Json Snapshot compression is now streamed, saving 95% of memory in the process and reducing GC events
Tests: unit tests in editor, all forms of profiling in editor on Craggy in Server+Client mode, all forms of profiling in standalone server on Linux WSL
Merge: from main
Tests: none, no conflicts
Bugfix: update unit allocation tracking tests to work with new notification params
Tests: ran the "TestContinuousRecording" test
Update: all server profiler commands now respond if action started
Tests: ran all commands on Craggy in editor
Merge: from main
Tests: none, no conflicts
Update: additional memory metrics for memory profiling
- Using release binaries based on 77ac1774
- Renamed NotifyOnAllocCount to NotifyOnTotalAllocCount
- Added NotifyOnMainAllocCount, NotifyOnMainMemKB, NotifyOnWorkerAllocCount, NotifyOnWorkerMemKB (default 0 - disabled)
- Set NotifyOnTotalAllocCount to 16k and NotifyOnTotalMemKB to 12MB
Makes it easier to focus investigation in particular areas.
Tests: continuous profiling on Craggy with enabling individual metrics and verifying that it generated snapshots with expected "violations"
Update: ContinuousProfiler now has TotalAlloc and AllocCount metrics for allocation snapshotting
- Release binary build with 27d643a3
- exposed via NotifyOnTotalMemKB and NotifyOnAllocCount (set to 0 to disable)
Tests: tested both on Craggy in editor. Helped spot a potential small leak in PerformanceLogging