userFlaviencancel
reporust_rebootcancel

8,063 Commits over 1,004 Days - 0.33cph!

Yesterday
merge from fonts_optims
Yesterday
Fixed missing font server log
Yesterday
Skin viewer uses mip 0 always
Yesterday
Attempt at making downloaded skins streamable like bundled skins Instead of uploading every mip to VRAM, we save the compressed mips RustNative builds to disk and let Unity stream them Needs our custom Unity because we can't make textures created by script streamable 13 skins downloaded, went from 210MB to 4.7MB VRAM (one skin in front of me at mip 0, same spot)
Yesterday
Workshop skin textures no longer keep a copy in RAM Downloaded skin textures were left readable, nothing used that copy 98MB -> 0MB RAM with 22 skins loaded ingame
Yesterday
merge from fonts_optims
Yesterday
Fixed our static font being set as readable The atlases are only in VRAM now, saves another ~42MB RAM
Yesterday
Fixed fonts duped in memory: - the interaction toast in bootstrap was using the non bootstrap version - TMP Settings was referencing Roboto which was pulling the entire chain Saves around ~60MB VRAM and ~30MB RAM
Yesterday
merge from buildingprivilege_cache
Yesterday
Fixed blocks registering with a 0 net id on the server when placed with the building plan
Yesterday
merge from main
Yesterday
merge from sendmouseevents_optim
Yesterday
Optimized PreUpdate.SendMouseEvents by clearing the main camera event mask, nothing uses OnMouse events Saves up to 0.08ms a frame in builds
Yesterday
Compile fix
Yesterday
merge from gunfiring_optims
Yesterday
Fixed holding a gun searching the whole inventory every frame for reload ammo types Holding a gun with a full inventory: 0.06ms -> ~0.01ms
Yesterday
merge from gunfiring_optims
2 Days Ago
Fixed issues from the far shot and shell replay changes
2 Days Ago
Stop muzzle flash light casting any shadows past 60 meters cause it's wasteful Added MaxShadowDistance to LightLOD, default 0 so existing lights aren't changed
2 Days Ago
Reviewed the 3P gun effects we spawn for distant shots: - Muzzle particles don't emit past 60m anymore, you only get the muzzle light and the sound - Shells aren't spawned past 15m Unchanged when using scopes and binoculars, the distances are stretched based on zoom scale
2 Days Ago
merge from main
2 Days Ago
Set all the gun firing effects warmed up amount accordingly Estimated +21MB vs main, still around -29MB overall after removing the 3900 useless thrown projectiles
2 Days Ago
Gun attack effects can now be recycled before their tail sound finishes, means we only have to warm up half the amount we'd need to
2 Days Ago
Added replayInPlace to EffectRecycle, lets us flag effects that can be replayed in place instead of popping and retiring a pooled copy every time Applied to AK first and 3rd person shell eject effects for now, ~0.13ms -> ~0.04ms per shot Also means we'll only have to prewarm a handful of shell particle prefabs for all the guns
2 Days Ago
merge from main
2 Days Ago
Fixed EffectParentToWeaponBone 128B alloc per effect spawn
2 Days Ago
When in first person, don't spawn effects with HideIfOwnerFirstPerson instead of spawning and hiding them right away Also fixed the 128B alloc in HideIfOwnerFirstPerson.OnEnable Saves 0.1ms when firing the AK
3 Days Ago
Reduced the amount of pooled pilot codelock 200 -> 25 Keylock 1 -> 50
3 Days Ago
Reduced the amount of pooled blowpipe dart projectiles 100 -> 4
3 Days Ago
Reduced the amount of pooled ballista projectiles 100 -> 3
3 Days Ago
merge from main
3 Days Ago
Reviewed the amount of bullet impacts and decals we prewarm - Rock, gravel, stones, metal ore and tundra impacts were only warmed with 1 copy, now 25 like the others. - Glass impact 25 -> 32, it stays alive for 4s+ - Bullet decals 25 -> 30, forest was set to 1, cactus lowered to 5
3 Days Ago
Prewarm 10 copies of each sound templates, they were all set to 1 small-sound gets 50 Trying to get to a point where I can empty an AK magazine without instantiating any prefab
3 Days Ago
Fixed all the references to the default unity Quad in particles not actually using it Any of these particle being set active in builds could spike up to 7ms, caused by ParticleSystemRenderer::UpdateCachedMesh walking the Quad whole user list to check whether its already registered It was referenced by thousands of renderers in monument prefabs, this is why the AK muzzle was slow to spawn in 167737
3 Days Ago
Stop HideIfAiming deactivating the muzzle flash once its particles finish. Every reused attack effect had to reactivate it Was spiking up to ~5-7ms in a build and only 0.2ms in editor somehow, now 0 It points at ParticleSystemRenderer::UpdateCachedMesh, checking that next
3 Days Ago
Keep sound template AudioSources enabled while pooled, disabling them on every recycle flushed unity's audio DSP, stalling up to ~1ms when a sound got cut mid play RecycleSound in editor: ~0.45ms -> ~0.25ms The occasional 1ms "flush dsp connections" is gone
3 Days Ago
Fixed quick craft spending ~1.6ms rebuilding after almost every shot (inventory update) Only rebuilds when the inventory is open now
3 Days Ago
Pool 3 copies of thrown melee weapon and tool projectiles instead of 100. No point in filling our pool with 3900 copies you'll rarely see more than 3 of at the same time Saves around 50MB of memory and gives me some leeway to eat that with gun effects next
3 Days Ago
Prewarm 5 copies of each ricochet effect instead of 1, first magazine dumped after connecting created up to 2 more per prefab at ~0.5ms each
3 Days Ago
Create the pools LaunchProjectileClientside uses at bootstrap instead of on the first shot, avoids a ~365KB alloc when the first projectile of the session is fired
3 Days Ago
Compile fix, missed a file..
3 Days Ago
Fixed 150531 not working in builds (Mega hack to bypass the PlayerUpdateCanvases call when unity renders the realtime cubemap, saving some time wasted on UI for nothing)
3 Days Ago
merge from cubemap_ui_optims2
3 Days Ago
merge from soundocclusion_optims
3 Days Ago
Revert ProjectSettings.asset changes
3 Days Ago
Fixed sounds started by destroyed monument client entities when loading not being cleared correctly
3 Days Ago
Sound occlusion optims: - stop checking every wall between a sound and the camera once one wall muffles it - looping sounds occlusion rays are batched - virtualised sounds (sounds muted by unity) check occlusion every 1s instead of 0.25s Standing outside an average base with 40 looping sounds in range: ~0.65ms -> ~0.05 ms per frame
3 Days Ago
merge from railcolliders_optim
3 Days Ago
Rail segments now cook their collider mesh in a job instead of on the main thread 5.2ms -> 0.03ms on the main thread per segment
3 Days Ago
merge from buildingprivilege_cache