userDaniel Pcancel

2,343 Commits over 580 Days - 0.17cph!

9 Days Ago
Clean: leave a note why we're not running water traces and raycs concurrently Tests: none, trivial change
9 Days Ago
Update: remove TestLineOfSightBatched unit test as we never implemented the batched version (I think?) Tests: ran all GamePhysics.UnitTests - now they all green
9 Days Ago
Merge: from expand_perf_telem - Update: object work queues now send their budget time + an aggregate record - Update: frame_profiling now contains extra fields about invokes and a pre_lateupdate timing record Needs a bit of backend work to fully finish this. Tests: uploaded to backend, inspected what arrived
9 Days Ago
Update: couple analytics fixes: - new TimeSpanExt.FromMicroseconds utility to get sub ms timespans - changed CSV data pushing to object_work_queue_2 and frame_profiling_2 - moved BudgetTime to be last field in the CSV blob for object_work_queue_2 Tests: inspected csvs on backend
9 Days Ago
Merge: from main
9 Days Ago
Merge: from remove_old_occlusion_group_logic - Clean: ServerOcclusion now uses new occlusion group logic by default, old logic ripped out Tests: ran unit tests
9 Days Ago
Clean: remove old occlusion group code - removed -enable-new-server-occlusion-groups command line - cleaned tests Tests: ran occlusion group unit tests, all 144 pass
9 Days Ago
Merge: from delete_obsolete_pool_api Tests: compiler simulator in editor
9 Days Ago
Clean: remove deprecated Pool api - they've stayed 1 year longer than supposed to - replaced internal usages * Pool.GetList<T> -> use Pool.Get<List<T>> instead * Pool.FreeList<T> -> Pool.FreeUnmanaged * Pool.FreeListAndItems<T> -> Pool.Free(ref obj, true) * Pool.ClearList<T> -> write your own * Pool.FreeMemoryStream -> Pool.FreeUnmanaged Tests: compile simulator in editor
9 Days Ago
▍▊▌▅▆▅▅ ▆▍▍▋ ▇▅▌▉▋▋▆█▆▇▋▊▋▆▄▋▋▉▄▉ ▄▇▅▌▊▆ █▊▄ ▅▊▍▇▆▆▉▋▌▅▄▍▄▌▄▆▄▅▍▅▇█ ▊ ▌█▋▍▍▍▍ █▇▉█▅▋▋ ▇▉▄█ ▍▍█▄ ▉▍█▄▉ ▉▅▉ █▊ ▊▄▄▍█▆▉ ▌▌▊▊█ ▊▊▇▉▋▉▌▊██▅▌▌▋▉▌▇▇▇▌ ▄▌█▋▊█ ▄▌▌▅ ▄ ▌▇▄▇▌ ▋▄▌ ▉▊▋▆▅▌▆▄▊▋ ▋█▉▆ ▌▇▋▅ ▊▍ ▆█▍▋▇█▇▉ ▌
9 Days Ago
▍▄█▋▇▇▆▆ ▋▅▇▋▋▌▅▉ ▍ ▍ █▉▅▆▆ ▄▄▋▄▉▄ █▋ █▉▅▅▉▊ ▄▇ ▌▉▅▌ ▄▅█▌▋▊▌▌ ▄▉█ ▊▋▋█▊▉ ▇▋▆▆█▌▆▊▊▊▍▌▊▉▍▄ ▇▆▍▊▌ ▆▌▅▊▊▍▄█ █▋▅▇▋ ▉▌▍ ▉▊▇▆▆ ▅▄▍▍█▄█ ▊▇▉▉ ▄▊▄▌ ▄▉▋▍▅▅▅▌ ▋█▌▍ ▅▅▋▉▉█▊▅▌▆ ▋▆▌▊▋▄ ▅▊▇▄█ ▍▌▄▍█ ▄▄▍▅ ▆█▉ ▄▇▉▉▄▍ ▊▄▍▄ ▋▌ ▉▄▉▇▅▊▄▅▌ ▉▅ ▆▋▉▅▇▉▆ ▋▄▆▊▋▆ ▆█▅▊▋ ▄█▍▄ ▅█▇ ▉▊▌ █▅▆▋ ▉▅▆▌█ ▌▆█▋ ▇▋▉ ▌▇▇▅▊▉ ▇█▋ ▄▆▅▊▅▋▌▍ ▇▆▌▍▍▆▄▍▊▋▌█▊▋ ▊▇▉▉▄ ▆ ▉▅▍▋ ▌▍ █▍▅▅▆▄█ ▉▇▄▌▊▍ ▄▆▅▍ ▋ ▉▍▅▇▊▌▅▉▋▊▇▆▇ ▄▅▍▌ ▅▌ ▉ █▋▄ ▄▇▉█▍▊▍▍▇▆ ▅▆▍▌ ▄▆ ▇▄▊▇▌▅▅▊ ▌▉▍▆ ▄▇█ ▇▋▌ ▄▄▄▇ ▅▌▋▊ ▄ ▄▆▌▅▅ ▋▍▉█ ▋▇▆ ▍▆▍▊ █▋ ▋▍▄▋ ▌ █▄▋▄ ▅▍▌▌▊▅▄▅█▍▇ ▌█▅▌ ▍▉ ▇▊▄▋▅▋▋▅ ▍ ▋▄▆▇▇▅▇▋
10 Days Ago
Merge: from main
10 Days Ago
Merge: from duplicate_bot_id_fix - Buildfix for missing SERVER guard
10 Days Ago
Buildfix: add missing SERVER guard
10 Days Ago
Merge: from duplicate_bot_id_fix - Bugfix for duplicate player id warning when loading a save - Bugfix for editor freezing when loading a save with a player Tests: playground with 1 transient, 1 persistent npc in editor then save -> load -> spawn player loop 3x
10 Days Ago
Merge: from main Also renamed branch: duplciate_bot_id_fix -> duplicate_bot_id_fix
10 Days Ago
Bugfix: fix bot id being shared when loading a save Fixed by reconstructing the free bot ID list and free bot id counter Tests: playground with 1 transient and 1 persitent bot, couple loops of spawn player -> save -> load
10 Days Ago
Clean: fix formatting in BasePlayer-SaveLoad.cs Tests: none, trivial change
10 Days Ago
Bugfix: recycle bot IDs when loading from a save This was leaking a bunch of IDs, likely harmles on maps with low bot population Tests: loaded craggy with preplaced bots (both persistent and transient). Spawned extra bots, their ID count was starting from 1
10 Days Ago
Bugfix: skip trying to draw water bodies if camera planes are not initialized Was causing a lot of asserts when loading into Craggy with debug unity editor Tests: booted craggy with debug editor - no more invalid plane normal asserts
10 Days Ago
Bugfix(editor): schedule QueryVisJobRunner jobs early to avoid editor freeze Tests: was able to load craggy save with players multiple times in a row
12 Days Ago
Merge: from hackweek_pool_analyzer - New: static code analyzer for invalid use of Pool.Free and related methods - Bugfix: a bunch of fixes for detected pooling problems, about 40 cases Tests: internal unit tests, compile simulator in editor, built C & S standalones (last week tho)
12 Days Ago
Update: PoolAnalyzer - switch to release version - Release binary built from b189abf6 Tests: internal unit tests, started unity and ran compile simulator
12 Days Ago
Merge: from main
12 Days Ago
Merge: from main
15 Days Ago
Bugfix: fix 21 incorrect calls to Pool.Free instead of Dispose Tests: compiled all modes in editor, built standalone C and S
15 Days Ago
Update: PoolAnalyzer - added detections for IProto.Dispose not being called and calling Pool.FreeUnsafe instead of Pool.Free - debug binary build from b189abf6 (moved to new repo) Reported a bunch of warnings, going through them separately Tests: unit tests + started unity
16 Days Ago
Bugfix: fixing ~24 missing Pool.Free Tests: editor compile test, built C and S standalones
16 Days Ago
Buildfix: undefine local GetFromGrid method when in None mode Tests: None builds
16 Days Ago
Update: PoolAnalyzer - support ArgList syntax in ObjCreationSyntax - debug bin built from 0fbab248 C+S Editor now boots! Now to check individual modes Tests: unit tests + started editor
16 Days Ago
Update: PoolAnalyzer - further reduce false-positives - better escapes for await, try blocks, using statements - debug bin built from a2005dd2 Only 2 false-positives remaining in C+S Tests: unit tests and started unity
16 Days Ago
Update: PoolAnalyzer - in cases of assignment, scan all block hierarchy up to local var declaration block - debug binary built from cb708ddf Down to 15 confirmed false-positives (5 different types) Tests: unit tests + started unity
16 Days Ago
Update: PoolAnalyzer - check finally and using blocks - debug binary built from b28334fc Down to 48 potentially false-positive errors Tests: unit tests + started unity
16 Days Ago
Update: PoolAnalyzer - more escape cases - recursively process expression statements to detect deeply nested escape cases - add support for field initializer escapes - debug binary built from e61378eb Currently detecting 54 errors (still a bunch of false-positives present) Tests: unit tests + started unity
16 Days Ago
Update: PoolAnalyzer - escape analysis if assigned to a variable as part of method arg list - debug binary build from 8b392070 Currently seeing 60 errors in C+S (3 valid, 2 false-positives, rest unknown). Tests: unit tests + launched unity
16 Days Ago
Update: PoolAnalyzer - handle more valid cases - added support for Dispose handling - added if(obj != null) Free(ref obj) handling - added support for using directives (both scoped and inline) I give up on trying to handle local data flow involving pooled objects - there's just too much work here Tests: unit tests + started unity (our Pooling unit tests no longer flag false-positives, this was kind of funny)
16 Days Ago
Update: PoolAnalyzer - escape a bit more - don't analyze statements before Pool.Get call - escape analysis when pooled object is returned out of method - debug binary built from b8b556ae Tests: unit tests + started unity. still a bunch of false-positives, but found first legit bug
16 Days Ago
New: PoolAnalyzer - validates code around Pool usage - debug assembly built from e7281f13 Tests: detected errors, but those are false-positives (return of pooled object instance)
16 Days Ago
Merge: from save_leak_fix - Bugfix for items leaking during save - items would be incorrectly marked as persistent when owned by transient entities Tests: 5 save-load cycles on 2.5k procgen in editor. still leaked ~10 entities per save, but couldn't find them
16 Days Ago
Merge: from main
19 Days Ago
Merge: from main
19 Days Ago
Bugfix: prevent leaking entities into save from transient containers Tests: 2.5k procgen map with disabled deep sea - 5 time save-load, went from 15,565 to 15,606. So we're still leaking, but less than a 0.1% per save. Didn't see anything specific in the entity dump.
29 Days Ago
Update: ServerProfiler.Core - more method annotation exclusions - release bins built from c969bbab Mostly focused on reducing the overhead of Scientists2's FSM evaluation and getting rid of injected Burst codegen gunk Tests: craggy in C+S editor, entered deep sea, went to ghostship to wake up scientists, took a snapshot
29 Days Ago
Bugfix: handle similar-to-inf budget timespans Tests: spawned on Craggy - no exceptions
29 Days Ago
Merge: from main
29 Days Ago
Buildfix: remove non-existent call Tests: none, trivial change
29 Days Ago
Clean: remove extra level of indentation Tests: compiles
29 Days Ago
Update: InvokeProfiler now pushes executed_time and invokes_executed Tests: compiles
29 Days Ago
Update(breaking-change): WorkQueueProfiler now also reports BudgetTime - breaking as this doesn't match CSV template Tests: none, compiles
29 Days Ago
Update: WorkQueueProfiler now sends an extra aggregate record for queues We could aggregate it on the backend, but that would mean sending through potentially a hefty amount of empty records Tests: compiles