5,909 Commits over 3,867 Days - 0.06cph!
Fixed weird sound loop when spam-clicking enable / disable building skins button while releasing right mouse button
Enable / disable building skins buttons are now triggered when releasing the mouse button rather then pressing it to prevent multiple triggers in a row when holding down the mouse button slightly too long
Fixed unnecessary GC when refreshing hammer radial menu
Fixed missing phrases for enable / disable building skins buttons in hammer radial menu
Subtracting
80268 (facepunch_pool_2) due to reports of server performance regressions
Fixed network read thread spinning unless decrypt queue is at capacity
Enabling multithreaded networking by default for both client and server
Adding -nonetworkthread startup parameter to disable multithreaded networking
Reducing min NetRead and NetWrite buffer sizes from 4kb to 2kb
Reducing min NetRead and NetWrite buffer sizes from 8kb to 4kb
Forcing recompile of wire shader
Reducing MinNetWriteBufferSize and MinNetReadBufferSize (testing)
Potential EnqueueWrite NullReferenceException fix
Adding Facepunch.ArrayPool
Adding print_arraypool for debugging / monitoring
Changing MaxReceiveTime back to 20 (previous default value) for better comparability
Adjusting NetRead and NetWrite pool buffer sizes to eliminate chance for spills even when network queue convars are adjusted
Call EnterPool even when object is spilled (so any cleanup in there is still performed, which lots of existing code assumes will happen)
Fixing several pooling related bugs that would cause excessive GC on the server (especially when but not limited to multithreaded networking)
Applying EAC's own C# wrapper pinning fix (keeping my previous fix in place as it's expected to yield better multithreading performance)
Fixing memory pool sizes of NetRead and NetWrite
Fixing NRE in main menu when client has multithreaded networking enabled (which is always the case in the editor)
Fixing various fuckups from changeset
79369
Network++
Changing server MaxReceiveTime default value from 20 to 50 (leads to better performance overall, especially with multithreaded networking)
More EOS pinning improvements
Applying EACServer fixes to EAC
Rolling back ArrayPool removal from NetWrite and NetRead
EACServer experiments / debugging (continued)
EACServer experiments / debugging (continued)
EACServer experiments / debugging (continued)
EACServer experiments / debugging (continued)
EACServer experiments / debugging (continued)
Adding missing lock around EACServer tick
More EACServer lock experiments
Removing stopwatch / forced cycle from all worker threads (redundant since 79169)
Only log one warning when SkeletonProperties.boneReference is null (instead of spamming one for every bone)
Increasing MaxReadQueue, MaxWriteQueue and MaxDecryptQueue values to 5000 on the server
Adding profiler samples to BaseNetwork.EnqueueWrite
Adding protect and unprotect locks to EACServer (debugging / testing)
More granular locking
Added warning when main thread is stalling (waiting for write thread)
When kicking / disconnecting a connection, make sure the decrypt thread isn't currently using it
Adding several convars to configure and debug multithreaded networking
Pool performance issue debugging
Changing the default pool prewarm count to 1 of each instead of 10 of each (some frequently used prefab types still prewarm with 100)
Fixed several errors during demo playback
Merge from multithreaded_networking_3 (disabled by default)