userDaniel Pcancel
reporust_rebootcancel

1,688 Commits over 427 Days - 0.16cph!

12 Days Ago
Optim: UsePlayerUpdateJobs 2 - get rid of ExecutionContext copies when aggregating tasks in SendEntitySnapshots and -WithChildren Tests: none, trivial change
12 Days Ago
Merge: from sleepignbag_assign_to_friend_bug - Bugfixes for sleeping bag friend assignation, making private and "make bed" action not replicating to the new owner fully - Added sleepingbag.assigntoplayer <bag entity id> and clearfromplayer <bag entity id> server vars for testing Tests: spawned sleeping bag and bed and used above functionaility while assigning/clearing from self - was visible on map when expected.
12 Days Ago
Bugfix: fix Make Bed and Set Public bed interactions Tests: spawned a bed_deployed, assigned to self, made public (visible on map), cleared from self (no longer visible), used make bed (visible). Made private - still visible on map
12 Days Ago
Bugfix: SleepingBag.AssignToFriend now correctly replicates updated spawn options for new owner player - added sleepingbag.assigntoplayer and sleepingbag.clearfromplayer server vars Tests: deployed an unassigned bag, used above command to assign to self - it was visible on minimap
12 Days Ago
Merge: from steamworks_posix_fix - Bugfix for mods not beign able to work with Steamworks.Linux.dll - we go back to shipping Posix.dll Tests: Built server standalone for Windows and Linux from Windows
12 Days Ago
Bugfix: don't ship Steamworks.Linux, go back to shipping Posix for both OSX and Linux - this unblocks modders. - Linux got renamed to LinxuEditor and is only loaded for editor This takes us back to only shipping Posix.dll for both platforms, while enabling to wwork with the project in Linux editor. In theory, builds Linux -> Linux and Linux -> OSX should work as well, but not tested. Tests: Built Server Standalone for Windows and Linux from Windows. Confirmed in both cases LinuxEditor.dll doesn't get deployed, and in Linux case Posix.dll is.
12 Days Ago
Merge: from baseplayer_serverupdateparallel - Optim: reducing allocs for UsePlayerUpdateJobs 2 codepath as much as possible(I think) Tests: a bunch of 2p session on Craggy with UsePlayerUpdateJobs 2 and various interactions(occlusion, shooting, connect-disconnect)
12 Days Ago
Merge: from main
12 Days Ago
Optim: UsePlayerUpdateJobs 2 - BasePlayer.WaitForTasks no longer allocs Could be slower to wait like this, but I doubtr we'll have more than 30 tasks at sync points even on high-pop servers, so it doesn't matter Tests: 2p on Craggy with UsePlayerUpdateJobs 2
12 Days Ago
Optim: UsePlayerUpdateJobs 2 - reduce garbage generation of BasePlayer.ApplyChangesParallel Can't eliminate it fully till we get UniTask, but this should make a dent Tests: couldn't test thoroughly as missing credentials, but it runs(and doesn't send) under UsePlayerUpdateJobs 2. Profiler confirmed less allocs
12 Days Ago
Optim: UsePlayerUpdateJobs 2 - stop constantly resizing array, only grow it if needed Tests: 1p on Craggy with UsePlayerUpdateJobs 2
12 Days Ago
Optim: UsePlayerUpdateJobs 2 - cache continuation actions Prevents allocs when no batches are sent, while also makes it cheaper to send when we do have batches. Tests: craggy with UsePlayerUpdateJobs 2 in editor + checked IL
13 Days Ago
Merge: from baseplayer_serverupdateparallel - Bugfix for slow metabolism and slow hostile timer accumulation on drawn weapon Tests: compared healing rates of large medkit between UsePlayerUpdateJobs 0 and 2
13 Days Ago
Merge: from main
13 Days Ago
Bugfix: UsePlayerUpdateJobs 1/2 - fix metabolism being slow - Fixed by using correct delta times - use tick time length instead of deltaTime (as we accumulate deltaTime until we have a whole tick's worth, then step tick's duration) - Also fixed marking player hostile if weapon drawn for long enough - same fix as above Noticed same issue with another bit of code, but this one's wrong in vanilla flow as well - so leaving it as is till later. Tests: compared rate of healing with log.level Combat 2 after using large medkit on UsePlayerUpdateJobs 0 and 2
13 Days Ago
Clean: extra "can kick" annotation Tests: none, trivial change
13 Days Ago
Clean: fix formatting in BasePlayerr-Server.cs after merges Tests: none, trivial change
15 Days Ago
Merge from baseplayer_serverupdateparallel - Optim: reduce GC allocs by 60% when creating tasks for UsePlayerUpdateJobs 2 - Optim: skip occlusion queries for pairs of same players (affects all modes) Tests: 2p tests on Craggy + 2k procgen with UsePlayerUpdateJobs 0/1/2 (covered spawning, sleeping, killing and occlusion kicking in)
15 Days Ago
Merge: from main
15 Days Ago
Optim: skip running server occlusion between a pair of same players Saves us a bunch of extra dictionary entries, running extra occlusion jobs Tests: 2p sessions with UsePlayerUpdateJobs 0/1/2 on Craggy (with reconnects, kills, occlusion culling)
15 Days Ago
Bugfix: UsePlayerUpdateJobs 2 - skip trying to run occlusion checks between 2 same players A little slapdash, but it fixes editor-only CLIENT+SERVER bug of sometimes failing to notify player that they're awake. I'll exclude it from all modes next CL. Tests: loaded into 2k procgen world with UsePlayerUpdateJobs 2 set from the start 3 tmes - all times no weird zombie state
15 Days Ago
Optim: UsePlayerUpdateJobs 2 - reduce GC allocations around creating tasks Surprisingly, this was a struggle to test. Suspicious about a potential bug in unrelated part of UsePlayerUpdateJobs 1/2. Tests: 2p on Craggy and 2k Procgen map with UsePlayerUpdateJobs 2
16 Days Ago
Update: Unit tests that experiment with reducing allocation overhead of tasks Got the following reductions in the unit test: Garbage size: 1.1KB -> 0.3KB Alloc Calls: 11 -> 5 The remaining ones seem impossible to remove while still using System.Threading.Task. Tests: ran the new unit tests
17 Days Ago
Merge: from benchmark_demo_clean - Clean: removal of dead functionality for demo benchmarks (not supporting it) Tests: compiled in editor
17 Days Ago
Clean: remove expired editor-only upload endpoint Tests: none, trivial change
17 Days Ago
Clean: remove full-server-demo benchmark demo uploading FullServerDemos are not used for benchmarking(since they're not net protocol stable), so there's no point in this code. Tests: compiles in editor
17 Days Ago
Merge: from baseplayer_serverupdateparallel - Bugfix for UsePlayerUpdateJobs 1/2 - fix another reason why player could be swimming when parented Tests: loaded up the map, went to the excavator - no more swimming with UsePlayerUpdateJobs 2
17 Days Ago
Merge: from main
17 Days Ago
Bugfix: UsePlayerUpdateJobs 1/2 - extend the previous bugfix to the after-validate-recache logic - Also fixed resetting a bunch of per-player state during the recache step Tests: loaded map, hover-swim doesn't reproduce anymore (this time no exceptions)
18 Days Ago
Merge: from baseplayer_serverupdateparallel - Bugfix: UsePlayerUpdateJobs 1/2 - players no longer randomly start swimming when parented to entities Tests: loaded map from AU Prem 1 and went on to excavator - no longer swimming
18 Days Ago
Merge: from main
18 Days Ago
Clean: Replace persistent native WaterFactorCache with transient native allocs This is slower, but it's not the hot path and it simplifies code and avoids polluting intellisense. Tests: ran unit tests
18 Days Ago
Bugfix: UsePlayerUpdateJobs 1/2 - use world pos/rots when running water queries Previously it used local pos/transf, which was incorrect when parenting happened (excavator as example). Tests: jumped on excavator, validated that the water queries are running in the right location with UsePlayerUpdateJobs 2
18 Days Ago
Update: UsePlayerUpdateJobs 1/2 - for blocking-water parented players, store empty WaterInfo instead of garbage - Expanded TestWaterFactorsConsistency unit test to detect this case Not marking as bugfix as I couldn't cause any bugs by hacking code. Makes BasePlayer.GetWaterFactors consistent with BasePlayer.WaterFactor Tests: ran unit tests
19 Days Ago
Merge: from baseplayer_serverupdateparallel - Fixes NRE when UsePlayerUpdateJobs 1/2 is enabled Tests: unit tests
19 Days Ago
Merge: from main Tests: compiles in editor, player cache unit tests
19 Days Ago
Bugfix: UsePlayerUpdateJobs 1/2 - use correct indices when filtering out disconnected players - Added a unit test to validate BasePlayer.FilterInvalidPlayers works correctly Tests: ran new unit test
24 Days Ago
Merge: from steamfriends_pooling_leak - Bugfix for a pool leak of SteamFriends with open friend list or party management Tests: observed steam friends list in game + created a party of me, SteamFriends pool stayed constant.
24 Days Ago
Bugfix: return SteamFriends to pool - separate out party processing to partyChanged from friendChanged loop to prevent use-after-free bugs Tests: observed steam friends list in game + created a party of me, SteamFriends pool stayed constant.
24 Days Ago
Merge: from texttable_allocs - Update: TextTable now can be directly pooled and supports using-dispose pattern - Bugfix: no more NRE on inspecting text table in debugger/evaluating twice Tests: unit tests + executed a bunch of console commands multiple times
24 Days Ago
Clean: fix formatting of debug.cs again Tests: none, trivial change
24 Days Ago
Merge: from main Gotta fix debug.cs formatting again Tests: compiles in editor
24 Days Ago
Update: converting the rest of TextTable uses to explicit pooling form That's final ones Tests: ran a bunch of commands couple times
24 Days Ago
Clean: fix borked formatting in debug.cs Tests: none, trivial change
24 Days Ago
Update: convert to explicit pooling all of ConsoleCommands Accounts for about 50% of text table usage Tests: ran a bunch of commands a couple times
24 Days Ago
Update: modify one test to validate ShouldPadColumns resetting Tests: ran the updated test
24 Days Ago
Update: rewrite TextTable to use pooling explicitly and support using pattern - updated unit tests I'll need to modify all 102 places we have in code to use pooling explicitly Tests: ran unit tests
24 Days Ago
Merge: from main
24 Days Ago
Merge: from shoretexture_editor_cache - editor-optim: generates a cache for shore texture buffers Tests: ran craggy twice
24 Days Ago
Merge: from main