branchrust_reboot/main/projectile_jobscancel
155 Commits over 30 Days - 0.22cph!
handle null localplayer properly for demo playback
fixed deferred schedule issue in OceanTrace path for when there is no water instance (basically just an issue in the Playground scene)
adjusted batch sizes for ocean traces as deferred scheduling seems to act on the capacity of the entire list rather than the count
ensure effect processing always runs for projectiles when none need updates (fixes projectiles hanging around until another is fired)
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
cleaning up projectile TransformAccessArray properly
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
enabled batched projectiles by default
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
reduce initial capacity of the projectile stable index cache
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
removed BatchedWaterRays option and disabled codepath
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
corrected profile region name
replaced TraceWaterSpheres/TraceWaterRays with batched deferred version, scheduled with dependency on batched physics queries, so call to Complete will include both the queries and the water traces
- GamePhysics.TraceBatched now runs 4 serial Commands->WaterTrace in parallel to eachother rather than completing all physics queries before doing water traces
added IJobParallelFor support to ScheduleParallel job extensions and fixed IJobFor which was just completely wrong
adjusted projectile ray generation jobs to not break initial HitTest setup into multiple jobs, ReadOnly jobs on the same TransformAccessArray seems to behave as if they cannot run in parallel to eachother (via combined dependencies) despite only require read access so Unity must be controlling this
added ScheduleParallel extension functions to handle sensible batch sizes automatically, this assumes that a reasonable batch size (64) is required before scheduling overhead beats any gains made with parallelism - if this isn't the case, such as for longrunning complex jobs working on a small number of items then you should control the batch size yourself
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
Update: DemoBuildingsViewer - can load multiple bases in a scene
Exports them separately, for now.
Tests: loaded top 20 bases from staging demo
Bugfix: DemoBuildingsViewer - spawn TOD prefab to allow digital clock to work
Otherwise it NREed
Tests: loaded base 3839 from staging demo
Bugfix: DemoBuildingsViewer - prevent attribute accumulation that leads to skin duplication
Tests: loaded up the largest base from staging demo
Bugfix: DemoBuildingViewer - fix building block skin spawning in the wrong location
Discovered that there's a new bug with duplicating skins on succesful scene opens
Tests: spawned the largest base from staging
clarified water trace setup
Gather trace commands in a job, requires copying some data into a native container first but it's still twice as fast overall
Test: projectile tests all still passing
Bugfix: BaseRaidBench - ensure weapons fire right projectiles
- Also reset cooldowns between runs
Tests: ran the scene
Update: BaseRaidBench - add support for multiple run configurations
- Also remote players now have id in their game object names for easier debug
- Fixed a bug with accumulating frame counter (:ops: #2)
- Updated subtitle display to see what's running
There's a burst-related NRE that gets picked up, but it's not directly related to benchmark.
Tests: ran the scene
Update: BaseRaidBench - record run name in results
Next up to setup variable-player runs.
Tests: ran the scene
Update: BaseRaidBench - output avg projectiles per frame
Helps us track changes to timers(bases made the benchmark faster as there's less projectiles on average)
Tests: ran the scene
Update: BaseRaidBench - support skins for spawned bases
Tests: ran the scene in editor
Bugfix: BaseRaidBenchmark - walls now appear on spawned bases
- Export the model bitmask for building blocks
- Updated the base json
Tests: ran the scene
Bugfix: unblock use of DemoBuildingsViewer after running benchmark/playing in editor
- Done via temporarily shutting down steam connection
Tests: opened the scen from the demo after running the benchmark
Update: move building hierarchy sorting to export
- also fixed the bug with using Append instead of Enqueue
Tests: ran BaseRaidBench scene