userDaniel Pcancel

2,819 Commits over 700 Days - 0.17cph!

5 Days Ago
Optim: cache RemoveOldNoises invoke Saves 1-2 allocs, 128b each Tests: none, trivial changes
5 Days Ago
Optim: use pooling in BaseNetworkable::OnNetworkLimitStart Saves us 3 allocs, 100b min Tests: none, trivial change
5 Days Ago
Optim: cache action in PlayerLoot.MarkDirty 1 alloc/128b Tests: none, trivial change
5 Days Ago
Optim: cache PlayerLoot.MarkDirty action creation Saves 1 alloc/128b per container Tests: none, trivial change
5 Days Ago
Optim: cache actions in TrainEngine.PlayerServerInput Saves 2 actions, 128b per Tests: none, trivial change
5 Days Ago
Optim: cache BasePlayer.ForceUpdateTriggersAction allocation Saves a single 128b alloc Tests: none, trivial change
5 Days Ago
Merge: from buildcommand_allocs - Bugfix for enable_marker_teleport teleporting to wrong Z Tests: unit tests + enable_marker_teleport
5 Days Ago
Optim: get rid of a string alloc in teleportpos Forgot it when expanding string view compatibility Tests: used enable_marker_teleport
5 Days Ago
Bugfix: fix invalid trimming in ToVector(StringView) - StringView - add 2- and 3-char Trim overloads - add a unit test Tests: unit tests + enable_marker_teleport
6 Days Ago
Merge: from main
6 Days Ago
Clean: add root-level *.slnx to plastic ignore list Tests: plastic doesn't show it as a new file
6 Days Ago
Merge: from player_benchmark_improvements - New: added PlayerModelBenchmark scene that tracks rendering cost of new player model Tests: ran benchmark a couple times
6 Days Ago
Clean: remove UNITY_EDITOR ifdefs around logging Tests: none, trivial change
6 Days Ago
Merge: from main
6 Days Ago
Merge: from pm2
6 Days Ago
Update: disable lightmap baking on scene load for PlayerModelBenchmark Tests: deleted generated assets, reopened scene - no new lightdata
6 Days Ago
Update: add PlayerModelBenchmark scene to the build list - also add it to recognized +autobench list Tests: none, trivial change
6 Days Ago
Update: add PlayerModelBenchmarks cene shortcut to Scenes menu Tests: compiles
6 Days Ago
Update: resave after unity 6 upgrade Tests: ran benchmark
6 Days Ago
Merge: from main
6 Days Ago
Merge: from player_benchmark_improvements
6 Days Ago
Clean: remove naked player bench from ClothingBenchmark Superceded by PlayerModelBenchmark Tests: none, trivial change
6 Days Ago
Bugfix: avoid NRE when no recorders are requested by a benchmark Tests: ran ClothingBenchmark
6 Days Ago
Update: PlayerModelBenchmarkScene - record bone count of spamed player models Tests: ran benchmark
6 Days Ago
Update: BenchmarkScene - add support for selecting which recorders to activate - added Scripts and Physics recorders - PlayerModelBenchmark uses only Rendering + Animation ones Tests: ran benchmark with various category bitfields
6 Days Ago
Update: add "CPU Total Frame Time" recorder Tests: ran baseline
6 Days Ago
Update: add mainthread-only Camera.Render recorder Tests: ran baseline
6 Days Ago
Update: PlayerModelBenchmark - add baseline run (0 models) - change bench naming convention Tests: none, trivial changes
6 Days Ago
Clean: get rid of RecordSampleCount - it duplicates MaxNumberOfFrames Tests: none, trivial change
7 Days Ago
Merge: from main up to 152363
7 Days Ago
Update: Allow benchmark to stop after enough samples accumulated - converted PlayerModelBenchmarkScene to run till 1k sampels accumulated - support accumulated sample wraparound (explains weird results I saw previously) Tests: ran player benchmark
7 Days 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
7 Days 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
7 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
7 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
7 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
7 Days Ago
Bugfix(editor): silence UIBlackoutOverlay.Get error when running benchmarks in editor Tests: ran ClothingBenchmark in editor, no longer blasted by errors
7 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
12 Days Ago
Merge: from jobs3_skip_preallocnetwrites - Optim: Jobs 3 - move netwrite pooling to all threads Tests: ran around craggy with Jobs 3
12 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
13 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
13 Days Ago
Merge: from main
13 Days Ago
Update: Codegen Tests: builds
13 Days Ago
Merge: from main Needs codegen
13 Days Ago
Optim: reimplement all Arg.Get* via GetStringView Avoids allocations in the GetString fallback Tests: unit tests
13 Days Ago
Update: add StringView-to-numeric extensions Tests: ran unit tests
13 Days Ago
Clean(tests): get rid of redundant profiling code Tests: builds
13 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
13 Days Ago
Optim: ConsoleSystem.Index uses StringView internally to avoid allocations Tests: booted into craggy, ran a couple commands (short and fully qualified)
13 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