branchrust_reboot/main/benchmarking_updatecancel
69 Commits over 1,491 Days - 0.00cph!
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
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
Clean: remove FoliageGridBenchmark and associated script
Superseded by BiomeBenchmark
Tests: benchmark in editor
Update: BiomeBenchmark - expose camera flight speed
- Set default camera speed to 16, similar to what it was when lerping
Tests: benchmark in editor
Update: BiomeBenchmark - split timings per topology
Certain topologies generate a lot of visual clutter, so have a noticeable impact. Previously the effect would be lost when averaging the timings.
Tests: benchmark in editor
Update: BiomeBenchmark - add it to standalone build
Will replace FoliageGridBenchmark today
Tests: autobench in client
Update: BiomeBenchmark - rewrite heightfield gen to generate a lower coastline
- Also slowed down the camera speed by half
Tests: benchmark in editor
Update: BiomeBenchmark - introduce a delay when starting and teleporting the camera to islands
Helps with asset pop-in.
Tests: benchmark in editor
Update: BiomeBenchmark - snap camera to player height above ground
Tests: benchmark in editor
Bugfix: BiomeBenchmark - put procedurally created terrain on Terrain layer
This caused foliage/clutter to not spawn as much as it could, leaving islands barren.
Tests: benchmark in editor
Update: BiomeBenchmark - switch to custom topology generation
- Added extra info about under-camera topology to help investigate things further
Still not getting the effect I want
Tests: benchmark in editor
Update: BiomeBenchmark - debug mode
- Freezes camera on a specified island at specified flight pos
Tests: benchmark in editor
Update: BiomeBenchmark - control the size of biome islands isntead of entire map
Makes this easier to control the benchmark
Tests: benchmark in editor
Update: BiomeBenchmark - add clutter spawning
- Runs a copy fo server-side hacked-together logic
I can see various trees spawning on islands, but the rocks block too much of area - going to try to reduce that next.
Tests: benchmark in editor
Update: BiomeBenchmark - allow filtering which biomes to test
- also slowed down the camera flight to help with pop-in
Tests:benchmark in editor
Hack: BiomeBenchmark - try generating clutter without incomplete server
Didn't work, since they spawn server side, but there's no server to send this info to client. Will try to migrate the clutter to client side next.
Tests: benchmark in editor
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