userDaniel Pcancel

2,738 Commits over 669 Days - 0.17cph!

47 Minutes Ago
Update: Add PlayerModelBenchmarkScene.UseRandomAnims - spawns players with different model states - add a run per lod level with anims (bringing total to 12) In theory should break batching/reuse, but results are a bit too similar(editor overhead?) Tests: ran the scene
2 Hours Ago
Update: define player spawning via desired lod level rather than manually placing them Code lifted from editor gives results that don't land on the LOD boundary, but it still fits in the lod level. Tests: checked triangle counts for every lod level, it falls as expected for every stage
3 Hours 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
4 Hours 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
5 Hours 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
6 Hours Ago
Bugfix(editor): silence UIBlackoutOverlay.Get error when running benchmarks in editor Tests: ran ClothingBenchmark in editor, no longer blasted by errors
Today
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
5 Days Ago
Merge: from jobs3_skip_preallocnetwrites - Optim: Jobs 3 - move netwrite pooling to all threads Tests: ran around craggy with Jobs 3
5 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
5 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
5 Days Ago
Merge: from main
6 Days Ago
Update: Codegen Tests: builds
6 Days Ago
Merge: from main Needs codegen
6 Days Ago
Optim: reimplement all Arg.Get* via GetStringView Avoids allocations in the GetString fallback Tests: unit tests
6 Days Ago
Update: add StringView-to-numeric extensions Tests: ran unit tests
6 Days Ago
Clean(tests): get rid of redundant profiling code Tests: builds
6 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
6 Days Ago
Optim: ConsoleSystem.Index uses StringView internally to avoid allocations Tests: booted into craggy, ran a couple commands (short and fully qualified)
6 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
6 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
6 Days Ago
Update: add StringView.Trim(char) overload - add unit tests Tests: ran unit tests
6 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
6 Days Ago
Update: add StringView.EndsWith(StringView) - added trivial unit test Tests: ran unit tests
6 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
6 Days Ago
Bugfix: Implement Pool.Reset and ResetMaxUsageCounter Tests: booted into craggy and stopped a couple times with Skip Domain Reload active
6 Days Ago
Merge: from main
6 Days Ago
Merge: from main
7 Days Ago
Update: add StringView.Trim - added unit test Tests: ran unit test
7 Days Ago
Update: implemented StringView.Replace - added unit tests Tests: ran unit test
7 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
7 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
7 Days Ago
Update(tests): more failing edge cases Tests: ran unit tests, old logic passes
7 Days Ago
Update(tests): add a couple more trimming edge cases Discovered during rewrite Tests: ran unit tests
8 Days Ago
Merge: from main
8 Days Ago
▄█▉▍▆▋▆ ▌▆█▌ ▄▌▌▆▄▍▌▇▊▉▆▆▍▄▄▇▌█▄▅▌▌█▊▄▌▄▇▊▋ ▊▊▋▍▅▇▋ ▅▆▉▌ ▉▊▍▋▆▉▌▆ ▇█▇▅▇▍▅ ▇▅▆▅▌█▋▌▍▊ █▍▌▋▊▊▆ █▇▇ ▅▉▍ ▋▇▆ ▅▆▇▆▉█▄▄▍ ▉▍▄▋▇▌ ▌▄▄▌ ▊▍▉▋▋▄
8 Days Ago
█▆▌▊▌▌▌ ▇▅▅ ▅▆▅▇▉█▉▆▇▆▇▄▄▊ ▍█ █▆▆▆▋▊ ██▇▄▄▇▅▄▄▇▅ ▊█▇▍▊▄▄██ ▌█▋ █▅▆▋█▇▊▅▌ ▇▉▌▊▄▉▇ ▅▄▆▆▄▍█▅▊█ ▌▅▅▌▇▋▍▋▌▌▌ ▊▋▊█
8 Days Ago
█▊█▆▍▅▍▇ ▌▇▊ ▋▋▇▅▅▊▍▆█▅▉▋▍▋ ▅▋▍▊▊▄▅▊
8 Days Ago
▋▉▉▋▋▍▋ ▌▄▋▉ ▆▍▊▆
8 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
8 Days Ago
Merge: from main
8 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
8 Days Ago
Merge: from fuzzy_circularbuffer Chosing this implementation
8 Days Ago
Merge: from pool_mt
8 Days Ago
Merge: from main
11 Days Ago
Update(tests): even more edge case unit tests - escaped double quotes - split escaped double quotes Tests: ran tests
11 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
11 Days Ago
Add(tests): add StringExtensionTests Currently only covers SplitQuotesStrings. Baseline allocs - 33allocs, 1.8KB Tests: ran tests
11 Days Ago
Optim: fully remove function temporary Saves 1 alloc (63 allocs, 3.9KB) Tests: ran tests
11 Days Ago
Update(tests): add case or command with no args Tests: ran unit tests
11 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