userDaniel Pcancel

2,836 Commits over 700 Days - 0.17cph!

14 Days Ago
Bugfix: convert bench durations from 120frames to 1s Seems to accumulate more data from ProfilingRecorders, but it's sample count doesn't follow linear extrapolation. Weird. Tests: ran the bench scene
15 Days Ago
Update: rename Perf.PlayerModel scene into PlayerModelBenchmark - Purged it of original setup, instead controlled by a script New bench script spawns 100 nakeds at various LOD levels and measures rendering stats Tests: ran benchmark scene
15 Days Ago
Update: format output by recoder's unit type - updated recorder's idents to for easier parsing - skip recorders that didn't accumulate any data Tests: ran the scene in editor
15 Days Ago
Bugfix(editor): silence UIBlackoutOverlay.Get error when running benchmarks in editor Tests: ran ClothingBenchmark in editor, no longer blasted by errors
15 Days Ago
Update: BenchmarkScene - add support to gather simple rendering and animation perf telemetry - ClothingBenchmark uses it for normal standing pass Tests: ran ClothingBenchmark, checked debug output
20 Days Ago
Merge: from jobs3_skip_preallocnetwrites - Optim: Jobs 3 - move netwrite pooling to all threads Tests: ran around craggy with Jobs 3
20 Days Ago
Optim: Jobs 3 - skip running PreallocNetWrites On a busy server we can end up sending 1.5k entities in a frame, and it can cost us 0.7ms total on preallocation. With recent pool rewrite we should be able to allocate on demand. Tests: On Craggy ran around/broke stuff/ziplined with Jobs 3
20 Days Ago
Merge: from buildcommand_allocs - Optim: reduce alloc count from building Arg commands from 20+ to 2 on average - Update: expanded StringView API, Tests: unit tests and running a bunch of different console commands
20 Days Ago
Merge: from main
20 Days Ago
Update: Codegen Tests: builds
20 Days Ago
Merge: from main Needs codegen
20 Days Ago
Optim: reimplement all Arg.Get* via GetStringView Avoids allocations in the GetString fallback Tests: unit tests
20 Days Ago
Update: add StringView-to-numeric extensions Tests: ran unit tests
20 Days Ago
Clean(tests): get rid of redundant profiling code Tests: builds
20 Days Ago
Optim: BuildCommand - remove another Substring alloc via StringView Down to 3 allocs/0.34KB per call Tests: ran a couple commands with and without args
20 Days Ago
Optim: ConsoleSystem.Index uses StringView internally to avoid allocations Tests: booted into craggy, ran a couple commands (short and fully qualified)
20 Days Ago
Optim: Arg.Args is now a StringView[] Most of the code uses GetString to lazy alloc a string. BuildCommand is now 4 allocs/0.4KB per call Tests: unit tests, booted into craggy and set a couple variables, tested crosshair clientvars
20 Days Ago
Optim: Arg.FullString is now a StringView - updated CodeGenerator to support StringView params - ran codegen Saves an allocation(once I’m done with conversion). Currently at 12 allocs/0.85KB per call Tests: booted into cragy, tried echo and say commands
20 Days Ago
Update: add StringView.Trim(char) overload - add unit tests Tests: ran unit tests
20 Days Ago
Optim: add StringView.SplitQuotesStrings overload - Refactored logic to work on StringViews internally Only has 1 alloc(StringView[]). Using it is blocked on whether I'll be able to convert Arg.Args field to StringView[] or not Tests: none
20 Days Ago
Update: add StringView.EndsWith(StringView) - added trivial unit test Tests: ran unit tests
20 Days Ago
Merge: from pool_mt - Bugfix: implemented missing Pool.Reset and ResetMaxCounterUsage Tests: booted into craggy couple times with Skip Domain Reload active - no NYI exceptions
20 Days Ago
Bugfix: Implement Pool.Reset and ResetMaxUsageCounter Tests: booted into craggy and stopped a couple times with Skip Domain Reload active
21 Days Ago
Merge: from main
21 Days Ago
Merge: from main
21 Days Ago
Update: add StringView.Trim - added unit test Tests: ran unit test
21 Days Ago
Update: implemented StringView.Replace - added unit tests Tests: ran unit test
21 Days Ago
Optim: SplitQuotesStrings - use pooled list internally - also gave it a small clean, as it was a bit horrendous looking code Saves us 3 allocs - down to 6 allocs, 0.25KB per call Tests: unit tests
21 Days Ago
Optim: SplitQuotesStrings - replace regex usage with hand-rolled processing Saves us 24 allocs per call - now 9 allocs, 0.5KB per call. As a bonus, looks to be 3-5x times faster Tests: ran unit tests
21 Days Ago
Update(tests): more failing edge cases Tests: ran unit tests, old logic passes
22 Days Ago
Update(tests): add a couple more trimming edge cases Discovered during rewrite Tests: ran unit tests
23 Days Ago
Merge: from main
23 Days Ago
▄█▉▍▆▋▆ ▌▆█▌ ▄▌▌▆▄▍▌▇▊▉▆▆▍▄▄▇▌█▄▅▌▌█▊▄▌▄▇▊▋ ▊▊▋▍▅▇▋ ▅▆▉▌ ▉▊▍▋▆▉▌▆ ▇█▇▅▇▍▅ ▇▅▆▅▌█▋▌▍▊ █▍▌▋▊▊▆ █▇▇ ▅▉▍ ▋▇▆ ▅▆▇▆▉█▄▄▍ ▉▍▄▋▇▌ ▌▄▄▌ ▊▍▉▋▋▄
23 Days Ago
█▆▌▊▌▌▌ ▇▅▅ ▅▆▅▇▉█▉▆▇▆▇▄▄▊ ▍█ █▆▆▆▋▊ ██▇▄▄▇▅▄▄▇▅ ▊█▇▍▊▄▄██ ▌█▋ █▅▆▋█▇▊▅▌ ▇▉▌▊▄▉▇ ▅▄▆▆▄▍█▅▊█ ▌▅▅▌▇▋▍▋▌▌▌ ▊▋▊█
23 Days Ago
█▊█▆▍▅▍▇ ▌▇▊ ▋▋▇▅▅▊▍▆█▅▉▋▍▋ ▅▋▍▊▊▄▅▊
23 Days Ago
▋▉▉▋▋▍▋ ▌▄▋▉ ▆▍▊▆
23 Days Ago
Merge: from serverocclusion_unittests_fixes - Bugfix: NetworkVisibilityGrid.IsVisibleFrom didn't return consistent to GetVisibleFrom results - Bugfix(tests): fix invalid setup of server occlusion visibility in select tests Tests: ran unit tests
23 Days Ago
Merge: from main
23 Days Ago
Merge: from pool_mt - Optim: Pool is now cheaper to use in multithreaded context. Can revert to old pool with pool.usemutexpool 1 (default 0) Tests: unit tests and played on Craggy in editor
23 Days Ago
Merge: from fuzzy_circularbuffer Chosing this implementation
23 Days Ago
Merge: from pool_mt
23 Days Ago
Merge: from main
25 Days Ago
Update(tests): even more edge case unit tests - escaped double quotes - split escaped double quotes Tests: ran tests
25 Days Ago
Update(tests): add a couple more edge case unit tests - torn nested string - single quotes nested - torn single quote nested - Added a whitespace to first nested string in all tests to validate trimming Tests: ran unit tests
25 Days Ago
Add(tests): add StringExtensionTests Currently only covers SplitQuotesStrings. Baseline allocs - 33allocs, 1.8KB Tests: ran tests
25 Days Ago
Optim: fully remove function temporary Saves 1 alloc (63 allocs, 3.9KB) Tests: ran tests
25 Days Ago
Update(tests): add case or command with no args Tests: ran unit tests
25 Days Ago
Optim: don't recreate temporary klass and function substrings, fetch the full name at the end Saves 2 allocs (64 allocs, 4.2KB) Tests: ran tests
25 Days Ago
Optim: skip lowercasing command class and function names We rely on case-insensitivite comparator for map lookups - saves 2 allocs (66 allocs, 4.3KB) Tests: ran unit and perf tests
25 Days Ago
Update(tests): also validate uppercase commands are resolved properly Tests: ran unit tests