userDaniel Pcancel

1,688 Commits over 427 Days - 0.16cph!

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
1 Year Ago
Clean: Making frequent logs less spammy in normal detail mode - Bradley velocity report is removed (as it didn't add much value) - Network update logs moved to highest detail level, 3 Otherwise, it floods the output too much, making it hard to parse logs Tests: ran locally, checked logs are less spammy
1 Year Ago
Bugfix: Fix logging name frequently missing a NetID It was possible to generate and cache name too early Tests: local editor session, observed that same game object's identity updated properly
1 Year Ago
Update: When logging emit an instance ID Without it can be hard to aggregate logs per game object Tests: ran in editor
1 Year Ago
Bugfix: RCon test page now works It's barebones, but enough. Tests: tested in local session, could see commands take effect
1 Year Ago
New: Initial version of Save Viewer It's very simplistic, but currently displays ID, prefab name, and parent ID (if exists). Allows to search by these and prefab name Tests: loaded a test save from staging server (200k entities, 20mb), was able to interact and get data I wanted
1 Year Ago
Clean: simplify code in WhatUsesThis.ParsePrefab Tests: none, trivial changes
1 Year Ago
Bugfix: WhatUsesThis - avoid duplciate results It was possible that our recursive search would pick up the same references as AssetDatabase, so exclude those. Tests: Asset used to return 5 results with 2 pairs of dupes - now it's 3 results with no dupes
1 Year Ago
Update: WhatUsesThis is now able to inspect prefabs recursively It'll search for any GUIDs that are mentioned on any attached MonoBehaviors and cache them. Search is done in the background while database scan is ongoing - no perf degradation. Tests: ran Rebuild then searched for the prefab that didn't report any results - now reports 6 hits
1 Year Ago
Update: pool.print_memory now allows to filter by T, case sensitie Will be useful in narrowing down leaks in a more precise fashion Tests: Ran the command with/without filter args
1 Year Ago
Merge: from /main/expand_ipooled Tests: tested all modes in editor, built client and server binaries, tried 2p local multiplayer - coor loop was good.
1 Year Ago
Merge: from main I've reached a good checkpoint, so prepping to merge back to staging Tests: tested all modes in editor, built client and server binaries, tried 2p local multiplayer - coor loop was good.
1 Year Ago
Update: TokenBucket implements IPooled Tests: none, trivial changes
1 Year Ago
Update: Sliced-/GranularAudioClip.Grain now implement IPooled Didn't realize there were extra similar types, added. Tests: None, trivial changes
1 Year Ago
Update: Planner.Guide.Snapping implements IPooled Another candidate for struct conversion - added it to the task. Tests: tested with laser light snapping - still snaps
1 Year Ago
Update: SoundModulation.Modulator now implements IPooled Ideally this should be a struct, since it's an 8byte object, but that would require to change too many places for now. Will create a separate task for this. Tests: local session, ran around and shot - could hear steps, impact on different surfaces
1 Year Ago
Update: MusicManager.ClipPlaybackData now implements IPooled Tests: booted in local session, no exceptions
1 Year Ago
Update: MusicClipLoader.LoadedAudioClip now implements IPooled Tests: booted in local session, no exceptions
1 Year Ago
Updating: EngineAudioClip.Grain implements IPooled Will need to explore further if it's dead script Tests: None, trivial change
1 Year Ago
Merge: from main Tests: none
1 Year Ago
Update: Replacing Pool.FreeUnsafe with Pool.Free where possible Since more IPooled usage has been added, these were left untouched by accident. Tests: none, trivial changes
1 Year Ago
Merge: from main Tests: checked all modes build
1 Year Ago
Update: Network.Message implements IPooled Technically, this should be converted to a struct instead, but the benefit/effort is not worth it right now. Also marked a static as readonly, since we never modify it. Tests: single client-server session was pumping messages succesfully. Built all modes. Tested recoridng and playback.