userDaniel Pcancel
branchrust_reboot/main/parallel_validatemovecancel

90 Commits over 92 Days - 0.04cph!

1 Year Ago
Optim: GamePhysics.HandleIgnoreTerrain - replace const seting managed loop with a Burst job Saves 0.1ms on 10k test Tests: ran unit test
1 Year Ago
Optim: allocate smaller buffers for WaterCollision.GetIgnoreIndirect - Added a couple profiling scopes Tests: unit tests
1 Year Ago
Bugfix: when we're missing TerrainCollision or WaterCollision, run all of the physics checks for trigger volumes - Added UtilityJobs namespace, moved FillJob<T> to it - Added a utility extension to NativeList<T> to copy from NativeArray<T>.ReadOnly (surprised it's missing) Tests: all relevant unit tests
1 Year Ago
Clean: remove GamePhysics.OverlapSphere(batch) and GamePhysics.OverlapCapsule(batch) - These have been inlined into CheckSphere<T> and CheckCapsule<T> - Also updated CoarseQueryGrid.CheckJobIndirect(capsule) (returns JobHandle, works on a NativeList) since I missed it in previous commit Tests: ran all unit tests
1 Year Ago
Update: CoarseQueryGrid - add non-indirect CheckJob API - Also changed the API to return a JobHandle and accept a NativeList Helps avoid extra busy work when we run direct work Tests: ran unit tests
1 Year Ago
Bugfix: prevent WaterCollision.GetIgnore from returning garbage values Another case that's the same as previous Tests: none, trivial change
1 Year Ago
Clean: move all CoarseQueryGridJobs to it's own namespace - rename the jobs to avoid duplication with namespace Tests: compiles in editor
1 Year Ago
Bugfix: make sure TerrainCollision.GetIgnore doesn't return garbage values Same bug as in WaterCollision that I fixed last friday. Tests: none, trivial change
1 Year Ago
Bugfix: WaterCollision.GetIgnoreIndirect properly fills entire result set Tests: ran unit tests + staging demo playback
1 Year Ago
Tests: adding TestWaterIgnoreConsistency to further narrow down what is going wrong Tests: ran new unit test, it does fail as begrudgingly expected
1 Year Ago
Optim: FinalizeTickParallel - use a burst job to gather players to validate for tick history - Cleaned up a bunch of code by switching to NativeList from NativeArray - more TickInterpolatorCache usage Tests: staging demo playback
1 Year Ago
Update: adding HandleIgnoreTerrain that works on a batch of positions - also ninja-fixing a bug in batch overload of HandleIgnoreCollisions that screwed layermasks - good thing it wasn't used anywhere Tests: ran unit tests
1 Year Ago
Merge: from parallel_validatemove/stable_playercache Promoting stable player cache version as main dev direction Tests: none, no conflicts
1 Year Ago
Bugfix: fix transform cache rebuild loop Previously threw away dirty indices too early, missing on some player cache changes Tests: played back the staging demo - no more error logs about transfomr cache inconsistency
1 Year Ago
Clean: fixing broken whitespaces that I spotted with the merge Tests: none, trivial change
1 Year Ago
Merge: from main Tests: none, no conflicts
1 Year Ago
Bugfix: PlayerCache now tracks players that are removed from the server Original impl left a space where it could miss some of the players, leading to rogue nulls. Tests: played back staging demo - had same numbers
1 Year Ago
Bugfix: one of validation checks was doing nothing Tests: none, trivial change
1 Year Ago
Clean: removing BasePlayer OnDisable/-Destroy logs for UsePlayerUpdateJobs Got confirmation that it's not Unity nuking the objects, so something else must be afoot. Tests: built server locally
1 Year Ago
Merge: from main Tests: none, no conflicts
1 Year Ago
Clean: fixing broken formatting that snuck in on main Tests: none, trivial changes
1 Year Ago
Merge: from main Tests: none, no conflicts
1 Year Ago
Debug: adding sanity debug error logs to baseplayer OnDisable and OnDestroy Hoping to catch where it's coming from Tests: local build tests
1 Year Ago
Bugfix: ServerDemoPlayer - handle player reconnecting multiple times Not 100% sure it's the correct way, but I think it works for now. Tests: played back new staging demo 3 times
1 Year Ago
Tests: replace Assert.AreEqual with Assert.IsTrue - Brings TickIntrpolatorCache test from 30s+ down to 6s Turns out AreEqual is slow and inflates the test times by quite a bit. Tests: ran unit test
1 Year Ago
Optim: TickInterpolatorCache reduce number of segments being copied when growing Unit test is still slow, need to dig a bit more Tests: ran unit tests
1 Year Ago
Clean: fixing whitespace issues after auto-merge Tests: none, trivial changes
1 Year Ago
Merge: from main Tests: none, no conflicts
1 Year Ago
Debug: sprinkling additional validation checks in ServerUpdateParallel Trying to narrow down at which point this null sneaks in Tests: none, trivial change
1 Year Ago
New: TickInterpolatorCache - a sparse, bulk TickInterpolator array - Comes with it's own stress tests (they pass, but need to investigate perf) - Depends on PlayerCache, but I need to modify it to provide more stability Building block towards jobifying tick history processing. Tests: ran unit tests
1 Year Ago
Optim: replace couple managed loops with a burst job Tests: none, trivial changes
1 Year Ago
Buildfix: move ValidateTransformCache to SERVER region - also fixed missing Profiler.EndSample() Tests: built client and server in editor
1 Year Ago
Merge: from main Tests: none, trivial merge
1 Year Ago
Clean: promote server var to a const - no codegen since I didn't do one when I added this It's temp code, but it makes things safer while I investigate, so no reason to disable it at runtime Tests: none, trivial change
1 Year Ago
Bugfix: purge player cache when player update jobs has emergency shutdown Allows to restart player update jobs cleanly in the same session Tests: in editor with debugger forced an emergency scenario, confirmed the cache was empty and rebuilt
1 Year Ago
Update: move player transform cache updates to be first step of parallel player processing - Bugfix - using Steam networking backend can have temporary outtages, which can cause gaps in processing and player cache desyncing - also enables us to compose parallel flows better in the future Tests: local editor session on craggy
1 Year Ago
Update: add temp emergency disable of player job processing - Only active on staging servers while I investigate the crashes Tests: forced an error via debugger - confirmed fallback is working
1 Year Ago
Tests: move the PlayerCache stress test to it's relvant tests file and clean up - commented out the expected-to-fail case Tests: ran the tests
1 Year 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
1 Year Ago
Merge: from main