userDaniel Pcancel

2,360 Commits over 608 Days - 0.16cph!

1 Year Ago
Update: LootableCorpse pools ItemContainer Tests: Equipped a horse with backpack and items, killed it - saw the uptick in ItemContainer telemetry, then once corpse despawned, it ticked down.
1 Year Ago
Update: PlayerInventory pools ItemContianers Tests: equipped backpack, loaded up on items, killed self and checked that look transferred properly. Confirmed recycling in 2p session by killing the sleeper.
1 Year Ago
Update: BaseRidableAnimal pools ItemContainers - Also "fixes" silent id leak by returning it Test: On Craggy, equipped and shot a horse - saw 2 ItemContainers returned to pool in stats. Spawned another one - they got consumed, and gear was empty.
1 Year Ago
Clean: remove BaseRidableAnimal.OnInventoryFirstCreated - Inlined only usecases's event code into init - Cleaned up double-nested ifdef and a bunch of newlines It has been used incorrectly anyway and was misleading. Tests: none, trivial changes
1 Year Ago
Update: ShopFront pools ItemContainer - also deleted empty virtual override Test: 2 player session with a shop front, one was interacting with the front while I destroyed it - items dropped, next front clear
1 Year Ago
Clean: Remove redundant StorageContainer.ResetState All the cleanup is already done in DoServerDestroy. Might be worth consolidating these callbacks in the future. Tests: none, trivial change
1 Year Ago
Update: StorageContainer now pools ItemContainer - had to introduce a member variable to avoid funky pool API usage because oif property - also had to relax empty container assert, as there already are cases that don't clean up their inventory on kill Tests: on Craggy killed all entities via console, saw the pool container stats go down to 0
1 Year Ago
Update: ItemContainer supports IPooled - Minor fix - avoid double returning container UID - replace a static-readonly with a const Right now there's only 1 place that pools ItemContainers(reclaim manager), so impact of this is low. Tests: in softcore killed self and looted reclaim backpack. Tests:
1 Year Ago
Optim: avoid copying items on container clear - Also consolidated it into one function. Did an overview of existing code, didn't spot cases where we can try to modify the container as we're clearing it. Tests: killed a bunch of animals, loaded up a wooden storage box then killed it
1 Year Ago
Update: Adding a couple tail recursion perf tests - also comes with a vailidity unit test Going to be used to do a write up for the weekly perf blog post Tests: Ran these perf tests in editor and player, got kind-of expected results.
1 Year Ago
Merge: from main Tests: none
1 Year Ago
Merge: from fix_hitinfo_pooling Tests: all modes build in editor, got attacked by animals then injure->kill - correct killer (and no leaks of HitInfo in Pool)
1 Year Ago
Bugfix: show valid last attacker when suiciding We used to cache pooled HitInfo which could cause it to be randomly modified by other hit processing. Now we cache a value struct isntead of hitinfo. Tests: solo session, get attacked by an animal, then run injure -> kill. Used to see self as killer, now see animal
1 Year Ago
Bugfix: Fix server-side leak of HitInfo for player melee attacks Still on the lookout for the sourc of bad death screen info Test: local session, couple hits by p2 and the pool numbers for HitInfo stayed stable
1 Year Ago
Merge: from main Tests: none, trivial changes
1 Year Ago
Merge: from geiger_counter_leak Brings across the pool.print_memory filter feature. Tests: none, trivial change
1 Year Ago
Merge: from main Tests: built all modes in editor
1 Year Ago
Clean: remove obsolete logs from GeigerCounter Tests: none, trivial change
1 Year Ago
Update: Take marker telemetry every measurement - Also avoid activating markers during Setup/Shutdown - Also avoid trying to convert Undefined sampler type to "seconds" Without these changes perf telemetry was too coarse(1 total value for all measurements * iters) Tests: Ran it for existing bench tests
1 Year Ago
Bugfix: Don't record GC data from Warmup runs Fallout from my first patch Tests: ran new perf tests with warmup, observed no allocations being recorded(as expected)
1 Year Ago
Clean: fix 2 Pool obsolete warnings Tests: none, trivial changes
1 Year Ago
Merge: from main - There's 2 new warnings for obsolete pool usage, will fix in next Tests: Built all modes in editor
1 Year Ago
Merge: from main Tests: built all modes in editor
1 Year Ago
Update: Switch to Dynamic measurements for Pool perf tests - Also moved the tests into it's own nested class since there'll be more in the future. Surprised this is not default behavior, but ah well. It does run less measurements, so it avoids random spikes. Tests: ran the pool perf tests, results line up with previous
1 Year Ago
Bugfix: Avoid perf degradation with many small Perf Test iterations Was caused by aggressive GC invocation, which I just ripped out - there's a better alternatives if it's truly needed. Tests: Ran the Pool bench tests, execution time went down from 3m to 3-5s
1 Year Ago
Bugfix: Avoid tracking allocations from Setup/Cleanup This fixes the bug that was invalidating measurement tracking. That said, this causes a perf regression because ExecuteSingleIteration is slow - will fix in next CL. Tests: Observed a reduction in allocation calls for Pool perf test (but not to 0, as it's picking up allocations from GC.Collect)
1 Year Ago
New: Adding PoolTests allocation perf test Estimates the allocation speed compared to basic heap alloc when we have full capacity available. This is just for perf testing package validation(revealed 2 bugs). Tests: ran it and validated results in the Test Report window
1 Year Ago
Add: Adding Performance Test Framework(v3.0.3) as a source package While evaluating I discovered a couple issues, so will be patching it over time Tests: wrote a pool perf test, it ran
1 Year Ago
Merge: from main Tests: built all modes in editor
1 Year Ago
Update: document and test StringView.IndexOf Tests: ran the new unit tests
1 Year Ago
Merge: from main Tests: built all modes in editor
1 Year Ago
Update: RCon test page now accepts custom endpoint Think at this point it's good enough, so I'll stop here Tests: tested with connecting to local host
1 Year Ago
Update: RCon test page now follows log coloring output - Parses color tags that we receive in the stream - Recolored background to follow unity's style (since we sometimes send white colored logs) Tests: connected to session with high debug level with colored output
1 Year Ago
Update: RCon page displays Logs - Logs the pages connection flow, rcon commands and the feed from the server - Log scroll sticks to bottom Tests: ran with local session
1 Year Ago
▅ ▌▆▆▄▋▄▌ ▋▋▆▄ ▄█▉█ ▋▋▇▇ ▊▆▆▍▌▊▌▊▍▊▍█▌▉▋ ▊▍▌ ▄ ▅▊▊▌▇▄ ▄▊▋▋ ▍▇▋▍▋▍▌ ▊▆██▌ ▇▍▄ ▌▋ ▆▉▋▍▉▌ ▋▆▋▍ █▌▌▋▄▅▌▄▆▅▉ ▅▊▌▄▊█ ▊▆ ▆▋▋█▇▌▅▍▌ █▉▄▊ ▍▍▇ ▋█▊▇ ▋█▌ ▌▊▅▄▌▌▍▍ █▅▄▉▆▋▇ ▉▍ ▍▅▄▊▋▅▍▆▋▉ ▆▅▌▆▉▌▌ ▌▋▅▋▆▅▍█▄ ▌▊█▊ ▊▇▌ ▊█▉█▆▅▉▆ ▋▄▇ ▊▋▉ ▌▉▊▇▌▊█▅ ▊▄ ▄ ▅▊▆ ▇▌▄▌▍▆▅ ▋▍█▊▋▆▌▄▆ ▌ ▇▋█▄▅▋▇ ▋▋██ ▌▉▇▄█▇▍▍▍ █▋ ██▄▉▆▊▅▇▉▅█▅▋█ ▅▆▆▅▋▅▅▌▋ ▍▇ ▄▉▇ ▍▍▅▆▇ ▉▆▄▍▉▉ ▊▊▇▌▇▇▇▉ ▊▆▄▋▌▆▇ ▉▊▊▅▅▅▄▌█▊▄▅ ▌▅▅▅▆▊▉ ▄▉▋▍ ▇▉▄▉▍▄ ▌▅▇ ▄▄▄▊
1 Year Ago
Update: Add entity counter to Save Viewer This should be enough for now, I'll add more functionality as needed. Tests: loaded a large save, validated counter updates with filtering applied
1 Year Ago
Update: SaveViewer triggers loading on changed event - Also disabe the export buttons if no valid save is loaded Allowed to get rid of an extra variable and a first-run exception Tests: loaded large save game multiple times, all func still worked
1 Year Ago
Bugfix: avoid parsing invalid paths in SaveViewer Tests: tried to use a malformed path
1 Year Ago
Bugfix: Avoid leaking protobuff entities in SaveViewer Tests: loaded a save multiple times
1 Year Ago
Clean: remove redundant code in SaveViewer Tests: filtered a small save
1 Year Ago
Bugfix:SaveViewer no longer constantly filters - Also clear up cached results when user clears save file path Tests: stepped through the code, confirmed execution happened only once
1 Year Ago
Update: Migrating ConvertSaveFile func to SaveViewer - Removed old CovertSaveFile Tests: checked sorting works on a small save, export generates valid csvs
1 Year Ago
Merge: from main I also renamed this branch(used to be itemcontainer_ipooled) Tests: spawned on cragy, killed a scientist, confirmed m92 was marked to not save before kill, then marked for save after kill
1 Year Ago
Bugfix: Fix equipped item entity leak into savegames Fixed by tracking whether owher player-entity will be saved or not, and banning equipped items from saving. Tests: - Ran in local editor with known offender 'scientistnpc_junkpile_pistol.prefab' - it no longer orphaned it's items on save-load - Built a local server executable, let it simulate for 30 mins, saved-loaded - there were no instances of 'geiger_counter' and only 1 instance of m92 (out of 253 on the server), it's child `lasersight` also was 0 (out of 143 original)
1 Year Ago
Buildfix: invalid macro scope Tests: built in none mode - passed
1 Year Ago
Update: Allow control for individual log type level - dev level works as before by overwriting all of log type levels This will help avoid flooding logs in specific scenarios. To be fully complete it needs to be extracted and consolidated in it's own utility. Tests: changed logs on a procedural map - saw log types cut off/appear in the stream
1 Year Ago
Update: Temp logging of geiger counter equip events Tests: local session
1 Year Ago
Optim: defer boxing when calling LogEntry Reduces the overhead of logging a smidge when we won't be emitting any logs due to debug level. Tests: ran local session, logs still there
1 Year Ago
Update: Converting custom combat logs to use LogEntry Tests: local session, checked that collisions generated hurt logs
1 Year Ago
Update: minor log format changes to help with searchability By wrapping the category in it'll be easier to do simple searches without hitting popular words (like Spawn) Tests: ran locally