userDaniel Pcancel
branchrust_reboot/maincancel

234 Commits over 577 Days - 0.02cph!

11 Months Ago
Merge: from fix_treetoolrenderer - Brings back tree rendering on editor start with a scene with trees without triggering database refresh Tests: variosu editor open scenarios, various scene switching scenarios with domain reload
11 Months Ago
Merge: from ioentity_slacklevels_pooling - Fixes IO entity spilling List<float> on save Tests: build a couple water tanks and checked pool.print_memory
11 Months Ago
Merge: from playerinventory_allocs - Removing extra garbage allocs from ToArray calls Tests: equipped armor when already having one, tried to pick up an extra map with one already in the belt
11 Months Ago
Merge: from parallel_validatemove - Clearing 2 TODOs Tests: unit tests
11 Months Ago
▇ █▉▊▉▋▋ ▌▊▅▆ ▄▉▍▌▉▍▄█▋█▉█▆▉▌▋█▅█▋▉█▍▅ ▉▄▉▆▅▅▆█▇▉▄▍▌▇▅▍▅▍▋ ▆▋▄ ▇▅▊▍▇▊▅▇▋ ▉ ▊▋▆██▌ ▇▊▆▄▄ ▊█ ▍▌▄▄▉▉▉▊ ▋▇▉▊▇ ▉▅▋▉ ▆▍▌▉▇▅▅▊▉▇▊▅▍ ▊▍▊ ▊▋▅▆▊ ▊▋▅▌▌▇▊▋▄▆ ▅▌▋▋▅▌ ▍▉▋▍▇ ▄▆▍▉▋▊▊▄ ▋▋▄▉▌▊▆▋ ▊█▋█▌█▅▉▇▅▌ ▌▌ ▋▅▇▇ ▆▊▉▅▇▅▊▄▋▇ ▉▄▇▌▅▌▄▆▅▄█▉▉ ▄█▆▉▌▌▆▄▊▋▆▉▍ ▋▉▇ ▇▄█▅▅▊█▍▇▋▍▋ █▄▇▌ ▋▄█ ▋▄▉▌▅▉▇▍ ▇▅▇▅▅▉▍ ▋▍▄▇██▍▆▆▄▌█▉▉▇ ▇▌▍▇▌▆▋▅▆▉ ▋▊▄▌▍ ▉▌▆▉▆ ▇▋▇▉▍▋▌▆ ▋▆▅▋▇▍ ▋█▆ ▋▊▊▍ ▋ ▋▌▊▋ ▌▇▆▉▄ ▅ ▄▇▍▊█▇▇ ▄█▉▇ ▄█▄▇▅▅▉▆ ▄ ▉▍▆▉▄▉ ▍▅▌█▄▆ ▆▍ ▋▍▍▅▄▌▇▊▅ █▇▋▇▊█▋▆▋ ▆▄▊▅▅█ ▉▌█▆▆▍▉ ▅▌▉▆▇▅▄ ██ ▊▍▋ ▋▆ ▇▅▆▋▄▆▆▍ ▅▆▉▌▉▉▅ █▅█▆▍▆▌▌ ▇▄▊▆▇▌▇
12 Months Ago
Merge: from parallel_validatemove - bugfix for invalid transforms in the cache - fallout from previous bugfix Tests: played back staging demo - counts as expected and no more errors about transform cache inconsistency
12 Months Ago
Merge: from parallel_validatemove - Bugfix for null players in PlayerCache causing UsePlayerUpdateJobs to get disabled Tests: played back staging demo - got similar results
12 Months Ago
Merge: from parallel_validatemove - fixing one of validation checks silently passing Tests: none, trivial change
12 Months Ago
Merge: from parallel_validatemove - Removing extra logging Tests: built server locally
12 Months Ago
Merge: from parallel_validatemove - minor server demo playback bugfix - extra debug logging for baseplayer destruction when UsePlayerUpdateJobs is enabled Tests: build tests
12 Months Ago
Merge: from parallel_validatemove - more debug to track down null baseplayer Tests: local editor SERVER+CLIENT session
12 Months Ago
Merge: from parallel_validatemove - buidlfix Tests: build client and server in editor
12 Months Ago
Merge: from parallel_validatemove - Adds error checking to UsePlayerUpdateJobs 1 mode and graceful disable to avoid crashes to help with investigation Tests: ran parallel mode in editor on craggy with a couple debugger-forced emergencies
12 Months Ago
Merge: from players_cmd_clean - Removes obsolete columns Tests: ran the command in a local editor session
1 Year Ago
Merge: from profiling_improvements Tests: took a snapshot in editor
1 Year 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.
1 Year 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)
1 Year 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
1 Year 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
1 Year 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
1 Year Ago
Merge: from active_tooltip_nre Logs to help track down mystery NREs. Tests: booted into bootstrap scene
1 Year Ago
Merge: from baseplayer_dispose - Fixes the error log spam on staging Tests: local 2 player session, 2nd player disconnected, triggered GC - no errors
1 Year 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.
1 Year Ago
Merge: from texttable_allocs - Layout improvements and NRE fix for 0 rows Tests: unit tests + running filtered status command to force 0 rows
1 Year Ago
Merge: from texttable_allocs - Fixing allocs in Server::playerlistpos Tests: ran unit tests and stewed on Aux2 for a week
1 Year Ago
▊ ▄▆▇▉▉▋ ▄▅▋▆ ▊▆▋▅▅▌▇▋█▆▋▍▅▄▌▉▅▇▋▍▄▉ ▅▉█▊▌▍▇▌ ▌▉▇▆▉█▊▍ ▇█▍█▄▊ ▍▄ ▅▆▋▄▊ ▊█▋▅▅ ▅▅▊▉▄▇█ ▊█▅▊▌▉█▍▅▄▆▍▊█ █▊██▉ ▆▆▆▅▅▉▅ █▆█▆▋█
1 Year Ago
Merge: from concurrentquueue_leak - Fixes an edge-case on high-pop servers that can cause a 10MB/s garbage allocation rate Tests: validated fix works via synthetic test, then had a 2-player session on craggy to validate network traffic works as intended
1 Year Ago
Merge: from eventrecord_allocs - Reduces the number of allocations caused by our server-side analytics - New "analytics.small_buffer_send_limit" persistent ServerVar to reduce task scheduling overhead. Set -1 to return original behavior. Tests: ran existing analytics unit tests, booted server in editor.
1 Year Ago
Merge: from parallel_validatemove - Fixers a couple rare bugs leading to missing data from FullServerDemo recordings - More work on BasePlayer.SErverUpdateParallel, still disabled - Editor-only: Added a couple unit tests - Editor-only: ServerDemoPlayer - disable error spam during demo playback, improve log format - Editor-only: ServerDemoPlayer - automatically authenticate connections during demo playback Tests: played back demo from staging server, recorded a couple new demos in local editor
1 Year Ago
Merge: from profiling_improvements - makes the Linux binaries compatible with more distros (Ubuntu 20.04, Debian 12) Tests: ran in Ubunti 20.04 and 24.04 via WSL. Took snapshots and opened them in perfetto.
1 Year Ago
Merge: from profiling_improvements - Fixes ProfilerBinViewer to display all available threads and fix invalid callstack depth calculation - Fixes a bug that would prevent json from being generated on busy servers - Fixes a bug with timelines being very-slightly out of sync - Optim/Bugfix to filter out all constructors from being profiled Tests: a lot of exports in the edittor and a bit of forced "bad" cases
1 Year Ago
▍ ▌█▇█▅▅ ▇▍▋▅ ▊▄▊█▌▋▌▊█▌▊▋▌▉▋▄▅▆▇▆▉▉▄▍▅▇▅▌▆▇▇▆▌▉ █▅▊ ▊▋▅▌▌▉ ▍▇▅▊▌▊ ▅▍▅▊█▉▅▄▋▇█▉▍█▅ ▉▇▌▆ ▄▉▇▉ ▉▅▇▋▍▄ ▊▍▊ ▇ ▅▄█▅▊▇ ▍▇▅ ▍▇▆▉ ▍▇█▇▍▆█ ▋▅▌▇▊█ ▅▌▅▄▄▇ ▌▆▌█ ▊▇ ▊▉▇▋█▇▅ ▆▊█ ▇▉▊▊▋▆▉
1 Year Ago
Merge: from parallel_validatemove * Modifies Full Server Demo recording to grab more data + timestamps per packet * Adds editor-only "DemoServer" server backend that we can use in editor to play back full server demos. Switch editor to ServerMode and put path in GameSetup object * New server-side batch-update of players routine - disabled by default as it's not validated yet. Controlled by `server.UsePlayerUpdateJobs` * Added GamePhysics batch versions of OverlapCapsule and OverlapSphere * Couple unit tests to check Water's batch queries against non-batched versions Tests: A lot of server demos recorded and played back in the editor doing core activities (looting, harvesting, interacting). Made sure standalone server and client builds locally.
1 Year Ago
Merge: from profiling_improvements Further reducing overhead by recording 25% less data overall (based on 350p release server snapshot) Tests: Took a snapshot on Craggy in Editor
1 Year Ago
Merge: from hackweek_serverprofiler_memory - Records allocations from all threads - Displays allocations on separate thread tracks + a graph of total allocations per thread - Allocations now have last/current method, allocated type and size in the mark's "arguments" - see "current selection" in perfetto - Allocations now also duplicate in the executing thread to make it easier to spot where exactly in the method it was allocated. - Graphs of working set and virtual set memory for the entire process Tests: multiple snapshots in editor on Craggy, single in standalone debug linux server via WSL on 3k procgen map, single in standalone release windows server on 3k procgen map with a harmony mod
1 Year Ago
Merge: from profiling_improvements Further exclude small methods/utility classes that are fast 95% of the time. Tests: Took a snapshot on a defualt ProcGen map in Editor(Client+Server). ~13% uncompressed json reduction.
1 Year Ago
Merge: from profiling_improvements Avoids recording methods that are tiny/fast - helps with overhead. Tests: in editor on Craggy generated a new snapshot and opened in Perfetto, couldn't find my methods.
1 Year Ago
Merge: from buildingprivilegeretrotool_recycling Fixes invalid pooling of protobuf type when replicating data. Tests: On Craggy setup a tiny box base and placed retro cupboard - before fix it immediately reported negatives via pool.print_memory, after fix - stayed >= 0
1 Year Ago
Buildfix: define symbol on Mac Server Tests: compiled editor, then compiled linux DGS
1 Year Ago
Merge: from profiler_improvements - Adds linux support (tested on Ubuntu 22404 via WSL) - Optimizations for JSON export - Added debug utility to export binary snapshot - run `perfsnapshot <delay> <name> <frames> <shouldBinExport>` - Added Tools/Profiler Bin Viewer, an editor only tool to inspect binary snapshots - Reduced default frames captured to 4 from 10 - Profiler now skips annotating UnityEngine.CoreModule methods (reduces capture overhead) - Works around Perfetto visualization issue with Complete events (https://github.com/google/perfetto/issues/970) Tests: - Exported a number of editor snapshots with binary snapshots to test bin viewer - Using WSL, tested exporting a snapshot on Ubuntu - 3k procgen world
1 Year Ago
Merge: from amvienceemitter_recycle Fixes an inconsistent bug on client disconnect from a server trying to reactivate a gameobject. Tests: validated it doesn't affect entity pool warmup sequence (as we create->retire there). Using `log.level Audio 2` and a bit of 100% code-forcing the issue, disconnected 3 times: - without the fix, it was 100% generating an error on disconnect - with the fix, had 0 error reports
1 Year Ago
Merge: from mapuploader_retry_exc Fixes an exception when map uploading fails and it tries to incorrectly retry. Tests: in editor's procgen server - hardcoded a failure point on first attempt, 2nd attempt managed to send it off properly.
1 Year Ago
Merge: from soundmodulator_leak Fixes an audio-related NRE when performing generic interactions (zipline, bike, etc). Tests: rode the zipline on Craggy a bunch of times(the whole way and with quick jump-off). Couldn't repro the NRE (though couldn't do it originally anyway)
1 Year Ago
Merge: from soundmodulator_leak Disabling audio pooling to mitigate SoundModulator NRE in BlendedSoundLoops Tests: on Craggy ran around, rode the zipline, hunted animals. Also left it to stew for a bit - no exceptions
1 Year Ago
Merge: from soundmodulator_leak Hopefully improving stuttering audio for ModularCrane in bad server conditions Tests: while connected to a local staging server moved the arm and rotated the cabin
1 Year Ago
Update: change indent_style to 4 spaces Tests: regenerated projects and tabbed a couple times - it's spaces
1 Year Ago
Merge: from VendingMachinePooling Fixes a minor bug that caused Vending Machine's protobuf pool to inflate Tests: spawned a vending machine on craggy, saved, loaded craggy again - marker was present. Monitored pooling stats - seemed normal.
1 Year Ago
Merge: from soundmodulator_leak - Fixed sound leaks from quickswitching scenarios - Fixes wrong loop sound being played when coasting on a pedal bike - Fixing flamethrower not playing sound when quickswitching while holding fire button - Fixing pilot sound not played on taking out a flamethrower - Recycle footsteps when their sounds end, instead of potentially incorrect preset time Tests: played with a lot of weapons and vehicles while monitoring sounds via audio.printsounds and log.level Audio 2
1 Year Ago
Merge: from profiling_improvements - Moves core of ServerProfiler to an unmanaged DLL - this deals with various mod issues and massively reduces recording overhead (less than 10% vs previous up to 7x). - Snapshot marks are prefixed with assembly name Tests: - 3 times in a row: Generated snapshot in editor on Craggy - 5 times in a row: Generated snapshot in Release standalone server with 6k world and 190k entities (with borked and good harmony mods) - 3 times in a row: Generated snapshot in Debug standalone server with 6k world and 190k entities (with borked and good harmony mods) - Built Wint64 client (debug and relase); booted up release
1 Year Ago
Merge: from profiling_improvements - This brings ServerProfiler over, our own tool to generate server profiling snapshots - To activate, start your server with "-enableProfiler", to take a snapshot use admin server command profile.perfsnapshot (files in <root>/server/<ident>/profiler/) Tests: Exported multiple snapshots from Editor running Craggy, Release server running 6k Procgen world and a couple from Debug server.