userDaniel Pcancel
reporust_rebootcancel

1,405 Commits over 365 Days - 0.16cph!

4 Months Ago
Update: adding throw away tests to investigate how I cuased a native crash yesterday So far everything points to BasePlayer being removed after we cache all transforms for the burst jobs and before the first RecacheTransform invoke, but I haven't tracked where it's coming from. Tests: ran the hacky unit test
4 Months Ago
Merge: from main
4 Months Ago
Merge: from players_cmd_clean - Removes obsolete columns Tests: ran the command in a local editor session
4 Months Ago
Buildfix: restore server ifdefs Tests: compiled in editor
4 Months Ago
Clean: remove obsolete columns from players cmd - Also rewrote it using the new API Tests: ran in a local session in editor, tested both text and json versions
4 Months Ago
Merge: from profiling_improvements Tests: took a snapshot in editor
4 Months Ago
Update: updated profiler binaries - Built from 7b1b923e Contains additional filters for BaseNetwork::ShouldNetworkTo, BaseEntity::ShouldNetworkTo and entire Facepunch.Network.Subscriber class Tests: took a snapshot in editor
4 Months Ago
Merge: from main
4 Months Ago
Merge: from minigun_audio_fix - Fixes minigun audio beign stuck on Client after releasing the fire button - Fixes minigun effects not replicating to other players Tests: local 2 player session with each player firing minigun in various patterns.
4 Months Ago
▍██▄▆▋: ▊█▇ ▋▆█▊▋▇▋ ▄▍▋▌▉ ▋▇▉▋▅ ▍▆▋ ▌▇▆ █▍▌▉▆▉▍▄▆▍▄ ▌▍▅▋ - ▍▆▌▇▋█▍ ▋▆▄▍▆▅ ▋▇▋█▇▄ ▍▋ ▌▌██ ▄▋ ▊▊▋▉▊▉ █▄▍▌▉▉, ▋█▆▊▉ ▇▇▋▆▌▆-▊█▍▅ ▄▅█▇▍▋▊ ▇▄▉ █▇▋▊▊▇▌▍ ▋▆█ █▆ ▇▅▅ ▆█▌█▅▅ ▋▇█▍▉: █▊▋▄▅ ▅ ▅▄▄▉▅▊ █▇▊▋▊▋▉ ▌▄▆▌ ▉▆▉▊ █▇▊▇▆▋ ▌█▇▍▅▇ ▇▅▆▅▉▅▌ ▇▄ █▇▄▊▌▄█ ▆▋▆▌▊▉▋▋.
4 Months Ago
Merge: from item_allocs - Simplifies stacking logic to be cheaper and get rid of potential allocation Tests: various stacking scenarios from belt to inventory with wood stacks(incomplete stacks, full stack + incomplete, full stack only)
4 Months Ago
Merge: from main Tests: none, no conflcits
4 Months Ago
Optim: don't sort items when trying to stack them This saves us the potential allocation in Sort + less iterations over the array + can avoid doing slightly more expensive logic if we randomly jump around in item container. Tests: various stacking scenarios from belt to inventory with wood stacks(incomplete stacks, full stack + incomplete, full stack only)
4 Months Ago
Merge: from item_allocs - Fixes BufferList not able to sort when it's not full - removes some from Item.MoveToContainer Tests: moved and stacked items in the inventory while checking profiler
4 Months Ago
Optim: remove allocations from Item.MoveToContainer Unity profiling showed an allocation inside it's sort impl, but I haven't seen it on server snapshots - will clean up if it is there Tests: got a bunch of wood in separate stacks and stacked it via right click from belt to inv. Checked profiler to confirm expected allocations are gone.
4 Months Ago
Bugfix: BufferList can handle sorting subrange Tests: moved items around in inventory(future cl)
4 Months Ago
Merge: from growablegenes_allocs - Remove allocs from GrowableGenes Tests: local in editor, spawned a planter box, filled it with seeds while monitoring Profiler stream
4 Months Ago
Clean: remove profiling hack Tests: none, trivial change
4 Months Ago
Update: avoid linq allocations in GrowableGenes Tests: local in editor, spawned a planter box, filled it with seeds while monitoring Profiler stream
4 Months Ago
Merge: from treemanager_oob_nre - Fixes NRE caused by trees close to the edge of the world Tests: throw away unit tests that sampled edges of the tree manager's grid
4 Months Ago
Bugfix: Properly calculate grid dimensions for TreeManager Fixes NRE caused by trees close to/outside of world bounds (modded) Tests: throw away unit tests that sampled edge locations
4 Months Ago
Merge: from active_tooltip_nre Logs to help track down mystery NREs. Tests: booted into bootstrap scene
4 Months Ago
Update: reinforce Tooltip language changing logic Instead of throwing an NRE report an error. I don't see how we can end up in this situation, but our logs show it can rarely happen. Tests: booted into bootstrap scene
4 Months Ago
Merge: from baseplayer_dispose - Fixes the error log spam on staging Tests: local 2 player session, 2nd player disconnected, triggered GC - no errors
4 Months Ago
█▄▅▉▌▅: ▊▊▌▇▌█▅▅▊▍ ▋▄▆ ▋▆▋▋█▅██ ▉▉▇▌▉▍▇▋▅▄▊▆ ▆▋ ▅█▌▇▋█ ▇▌▌▄ ▊▆ ▊▌▋▆ ▊▇█▋▄ ▅█▉ ▇█▌▇█ ▍▅▋▄ ▄▅▆▍▄: █▍▅▊▋ ▇ ▅▆▇█▄▌ ▇▆▌▉▊▄▍, ▇▄▇ ▊▍█▍▍▍ ▆▊▋█▇▊▍█▉█▇▅, ▇▅▄▇▆▉▉▌▌ █▇ - ▄▆ ▊▍▄▇▅▆
4 Months Ago
Merge: from parellel_validatemove - Full conversion of player WaterInfo caching over to jobs - TerrainMap now uses NativeArray instead of managed array - expanded unit tests - new ServerDemoProcessor that tracks water results checks (in/out of water counts) Going to start testing on staging and monitoring the impact Tests: ran all the new or updated unit tests, made sure builds passed locally, during dev used server demos to validate stats.
4 Months Ago
Clean: remove unnecessary usings Tests: editor compiles in CLIENT+SERVER
4 Months Ago
Update: adding missing logic to BasePlayer.ServerUpdateParallel since the merge - also fixed the formatting in a couple places Tests: none, trivial changes
4 Months Ago
Bugfix: check if ignore grids (terrain, water) are present - Covers cases in editor where they haven't been setup yet Tests: ran unit tests
4 Months Ago
Bugfix: invalid indexing of water infos when player is parented to a water blocking entity Tests: none, trivial change
4 Months Ago
Merge: from main Tests: ran unit tests, played in editor with parallel update jobs enabled on Craggy - water was detected correctly
4 Months Ago
Bugfix: rename WaterVisibilityTrigger.Reset to ResetTrackedTriggers Old name conflicted with Unity's scripting api and generated errors in editor(problematic for tests) Tests: ran unit tests
4 Months Ago
Bugfix: fix GamePhysics batched queries bugs - Was incorrectly indexing the array of results - GetIgnore(Vec3, float) was using a swept sphere instead of sphere overlap (like original code) Tests: ran unit tests - they now pass
4 Months Ago
Tests: Add missing layer for WaterVisibilityTrigger objects in WaterLevel tests This now stressed the execution path for the submerged head in GetWaterInfo and shows I have a divergence. Will fix shortly. Tests: ran all tests
4 Months Ago
Update: making PlayerCache a server-only utility - Made some tests server only It's an intrusive collection (requires an int field on BasePlayer), and we only add it for server version of player. For now there's no need to generalize it anyway. Tests: compiled in editor
4 Months Ago
Bugfix: fix invalid index scrambling logic in tests Turns out the tests were borked and generated duplicate indices, which is not something that batch logic can handle. Tests: ran all unit tests
4 Months Ago
Bugfix: avoid trampling results when scattering out physics query results - Also reduced size of temp allocations (they're still there, but it's the slow path anyway) This is not the bug spotted by tests, but it would bite us in the back anyway. Tests: none, as neither the demo nor tests cover this path (NYI)
4 Months Ago
Update: generate a sample grid for water tests & use WaterVisibilityTrigger This stress tests a rare execution path. It revealed a divergence between serial and batched - will fix next Tests: ran unit tests
4 Months Ago
Merge: from texttable_allocs - Layout improvements and NRE fix for 0 rows Tests: unit tests + running filtered status command to force 0 rows
4 Months Ago
Bugfix: fix serializing of empty tables - Added a test to check for it Tests: unit tests + ran status with a name filter to exlude myself - table and json printed correctly
4 Months Ago
Clean: rename RowType -> ValueType Tests: ran all unit tests
4 Months Ago
Update: Don't pad last column Tests: ran unit tests
4 Months Ago
Bugfix: Fix test table layout when there are not enough values compared to rows - Added new unit tests to cover abnormal cases Tests: ran unit tests
4 Months Ago
Update: standardized WaterVolume usage across tests - Also fixed a couple small bugs in rarely used water perf tests Got a couple TODOs left to clean, and will start merging back to main Tests: ran all tests
4 Months Ago
Update: moved player caching to FinalizeTickParallel Tests: ran unit tests and played back server staging demo twice - numbers match expected range
4 Months Ago
Update: add an extra profiling scope Tests: ran the perf test
4 Months Ago
Merge: from texttable_allocs - Fixing allocs in Server::playerlistpos Tests: ran unit tests and stewed on Aux2 for a week
4 Months Ago
Merge: from main Tests: ran unit tests for Rust.Global due to conflicts in the asmdef
4 Months Ago
Clean: general cleanup - Removed dead code - removed some TODOs that no longer apply - more ReadOnly cases alongside NativeArray usage instead of spans Tests: unit tests
4 Months Ago
Update: expand PerfSerialWaterFactor & PerfBatchWaterFactors with different pop counts Covers various scenarios, from staging at 50pop to 10k for stress test. Also shows that we retain the 4x+ speedup across populations. Tests: ran perf tests