userDaniel Pcancel

3,448 Commits over 822 Days - 0.17cph!

48 Days Ago
Clean: missed meta file deletion Tests: none, trivial change
48 Days Ago
Update: move UnsafeScriptingAccess to Facepunch.Unity - add unit tests - delete old TLStest and it's scene Tests: ran unit tests
48 Days Ago
Merge: from main
48 Days Ago
Update: re-enable the feature for clients as well - add editor only RustNative_Editor - rewrapped the code behind UNITY_ASSERTIONS Tests: built all flavors of Rust locally (win, linux, mac | client,server | debug,dev,release) and ran them, got passes everywhere
48 Days Ago
Bugfix: make sure we modify EnsureMainThread in release builds That check is always active Tests: booted TLS scene
48 Days Ago
Update: integrate TLSTest into client bootstrap and server boot routines - copied over linux rustnative.so, to be tested Temp measure to test standalone builds Tests: booted both bootstrap and craggy in win editor - saw output (disabled in client, enabled in server)
48 Days Ago
Merge: from main
49 Days Ago
Update: replacing with a remotely built dylib Surprisingly, it works Tests: ran TLS test scene
49 Days Ago
Update: add MacOS support for UnsafeScriptingAccess - using locally built debug dylib for now Need to figure out if remotely built dylib is going to work or not (didn't when I broke sig locally) Tests: using locally built dylib was able to run TLSTest setup
50 Days Ago
Update: consolidate OS specific calls to RustNative Still gotta build and test linux and mac, gonna do that tomorrow Tests: ran temp scene
50 Days Ago
Update: disable Unsafe.UseMultithreadedScripting on CLIENT - codegen Need to figure out how to better patch out the managed check when doing an IL2CPP build, will leave that for later Tests: tested booting test scene both in CLIENT(ran on main thread) and SERVER(ran on thread pool) modes
50 Days Ago
Merge: from main
51 Days Ago
Merge: from mt_snapshot_saving - Bugfix for thread race in Jobs 4 mode when saving BasePlayer Tests: booted craggyisland_missions, completed a mission
51 Days Ago
Bugfix: avoid a thread race on PlayerState MRU dictionary when saving BasePlayer - use readonly access in Save that doesn't update MRU - push to cache on player connect Tests: ran CraggyIsland_missions, completed a mission - saw states change in UI
51 Days Ago
Update: avoid calling db queries when saving BasePlayer.PersistentPlayerInfo - instead resolved on player join It should be safe according to docs(mt calls are serialized), but this way is just simpler. Tests: booted into craggy
51 Days Ago
Update: implement UnsafeScriptingAcccess.SwitchToMultithreading awaitable Works with ConVar.Unsafe.UseMultithreadedScripting to either keep task on main thread of offload it to thread pool Tests: TLSTest script, with covnar being in both states after system runs
51 Days Ago
Merge: from main
52 Days Ago
Clean: do TLS search after assemblies loaded, not after domain reload - add comments - add temp scene and TLS test script (will remove later) Tests: ran temp scene
52 Days Ago
Update: rewrite UnsafeScriptingAccess to search for TLS slot dynamically - ran codegen Weirdly SwitchToMultithreading doesn't work, might be my UniTask todo Tests: on windows, using local scripts was able to get and read transform pos
52 Days Ago
Merge: from main
52 Days Ago
Merge: from unitask_threadpoolawaitable_fix - Bugfix for deadlocking when frequently moving tasks to thread pool Tests: ran unit test - passes
52 Days Ago
Bugfix: fix races in parameter caches when slamming SwitchToThreadPool - UniTask synced up to commit c995d2b Tests: ran SwitchToThreadPool test - now passes
52 Days Ago
New(tests): add TaskTests.SwitchToThreadPool that reproduces deadlock reported by community Tests: gets stuck as expected when PooledRunners are active
54 Days Ago
Update: add SwitchToMultithreading helper - added ConVar.Unsafe.UseMultithreadedScripting to disable experimental multithreading Tests: compiles
55 Days Ago
Update: added standalone win TLS slot to allow - also wrapped into OS & config dependent compile guards Tests: built all flavors of standalone and checked that code succesfully executes in other project
2 Months Ago
Merge: from mt_snapshot_saving - Bugfix for exception when saving ApartmentRooms in Jobs 4 mode Tests: rented a room in Jobs 4 mode, verified with debugger that code was hit and no exception produced
2 Months Ago
Bugfix: use transform handles when saving ApartmentRoom.GetDailyUpkeepCost in Jobs 4 mode Bypasses transform access which avoids tripping up on unity MT checks Tests: rented a room in Jobs 4 mode, had a breakpoint in the code - no exceptions
2 Months Ago
Merge: from main
2 Months Ago
Merge: from benchmark_fixes - fixes all-bar-one NREs happening when running `benchmark` command Tests: ran benchmark in editor
2 Months Ago
Update: clean up spawned players before unloading BaseRaidBenchmark scene Helps deal with breadcrumb logs for zombie players in the list, but there's still an NRE from Client.LateUpdate - not confident to much with it just yet. Tests: ran entire benchmark suite
2 Months Ago
Update: add a null check to FoliageGrid It depends on terrain, but some scenes might not have terrain available (FireworkBenchmark) Tests: ran the scene
2 Months Ago
Bugfix: add missing initialization to BaseRaidBenchmarkScene - Initialize ProjectileCache (no idea where that has gone) - Initialize admin overlay component Tests: BaseRaidBenchmark runs without exceptions
2 Months Ago
Update: assign CraggyIsland terrain data in MonumentBenchmark Was causing an NRE when trying to run that benchmark from bootstrap Tests: benchmark MonumentBenchmark
2 Months Ago
Merge: from mt_snapshot_saving - Bugfix for invalid-api exception when trying to save attackheli turret with ammo/gun Tests: spawned one, loaded it up and shot all while in Jobs 4 mode
2 Months Ago
Bugfix: cache ammo for heli turret, avoid TryGetComponent in Save which is not safe in MT Tests: spawend a heli, setup an ak turret with 100 bullets, shot in Jobs 4 mode - no errors
2 Months Ago
Merge: from main
2 Months Ago
Merge: from fix_skipinit_error - Buildfix(editor) - replace unsupported intrinsic Tests: no errors in editor on script compile, checked asm
2 Months Ago
Buildfix: get rid of SkipInit, LLVM optimizes out variable initialization from final asm Tests: triggered compile - no errors in editor. Checked asm against externally stack allocated storage - same asm
2 Months Ago
Merge: from pool_leak_experiments - Optim: replace FuzzyPool with LPRQ segment - it can be up to 20% faster and doesn't leak/spill sporadically Tests: unit + perf tests, loaded 2.5k procgen map, checked print_memory - no spills
2 Months Ago
Clean: remove editor-only add/remove fail counters - also cache cell buffer length - jit might already do it automatically, so might be moot Tests: compiles
2 Months Ago
Merge: from lprq Prepping LPRQ segment implementation to use instead of current FuzzyPool Tests: ran unit tests
2 Months Ago
Update(tests): expand TestAllocWhenEmpty test slightly to sanity check leaking behavior Tests: ran unit test
2 Months Ago
Clean: Add general explanation on the pool implementation - remove TODOs - buildfix for non-editor builds - bugfix of setting the wrong epoch for a slot for stale cells Tests: ran unit and perf tests
2 Months Ago
Optim: inline LPRQ segment logic, get rid of the overall queue Perf test is averaging 2.8ms, improvement over FuzzyPool by 20% Tests: unit tests + AllocDeallocMTShortLived(32,False) perf test
2 Months Ago
Optim: use same trick of oversized segment to avoid segment churn Looks faster than FuzzyPool, noice Tests: ran unit tests + select perf tests
2 Months Ago
Optim: inline segment storage and strip all ConcurrentQueue logic My previous estimate of 10% degradation was off - it actually was 6ms vs 3.5ms. With these changes I consistently get 4ms for AllocDeallocMTShortLived(32,False) perf test - 15% loss, still acceptable Tests: unit tests + AllocDeallocMTShortLived(32,False) perf test
2 Months Ago
Update(tests): port unit test fix from child branch Tests: ran PoolTests batch of unit tests
2 Months Ago
Merge: from main
2 Months Ago
Merge: from main Random Editor crash seems to be gone on latest
2 Months Ago
Optim: use an over capacity segment to avoid segment churn This keeps GC activity at 0. Perf seems 10% worse than Fuzzy, but it's acceptable. Though there's a bug somewhere. Tests: AllocDeallocMTShortLived(32,False) perf test