userDaniel Pcancel
reporust_rebootcancel

2,859 Commits over 730 Days - 0.16cph!

12 Days Ago
Optim: cache SamSite.WeaponTick invoke Tests: none, trivial change
13 Days Ago
Merge: from fullserverdemo_removal - Clean: Remove FullServerDemo implementation (RustRelay will take us to the promised land) Tests: compiles, recorded client and server demos and was able to play them back
13 Days Ago
Merge: from main
13 Days Ago
Clean: get rid of Network.ServerInfo Was added for FullServerDemo support, no longer needed Tests: compiles
13 Days Ago
Clean(editor): rip out DemoSever framework It could technically emulate server state from client demos, but required too much compromising, so not worth it. Tests: compiles
13 Days Ago
Clean: delete Demos folder from Facepunch.Network Tests: compiles
13 Days Ago
Clean: delete full-server-demo convars Tests: compiles
13 Days Ago
Clean: remove IServerCallback save request support Keeping the core functionality on SaveRestore Tests: compiles
13 Days Ago
Clean: remove FullServerDemos.cs Tests: compiles
13 Days Ago
Clean: remove BaseNetwork.SupportsServerDemos Tests: compiles
13 Days Ago
Clean: remove demo.full_server_demo - rip out a bunch of stuff related to it, including transient entity serialization - remove MessageType.DemoDisconnect and DemoTransientEntities (no need for protocol change) Tests: compiles
13 Days Ago
Clean(editor): remove ServerDemoPlayer Tests: compiles
13 Days Ago
Clean: remove AntiHackDemoProcessor - drive by deprecated API fixup Starting process of removing full server demos Tests: compiles
13 Days Ago
Resave TimeManager Tests: nothing specific, but have been running with this changed for a couple days
13 Days Ago
Merge: from waterlevel_deepsea_sample_fix - Bugfix for water level queries incorrectly mixing deep sea and overworld states - Bugfix for deep sea ocean sim using overworld heightmap - Simplified TerrainHeightMap API Tests: ran unit tests, booted into craggy, explored deep sea and swam around
13 Days Ago
Bugfix: avoid NRE when ocean sim is not initialized and we don't need it Tests: booted into craggy
13 Days Ago
Merge: from main
13 Days Ago
Clean: simplifyy WaterSystemBurst.GetHeightArray_Burst Tests: none, trivial changes
13 Days Ago
Clean: minor adjustments to WaterLevel.GetWaterLevels impl - use FillJobIndirect instead of FillJob when waves are not needed - get rid of namespace qualifier Tests: ran unit tests
13 Days Ago
Bugfix: OceanSimulation.GetHeightAttenuation - handle positions in deep sea Tests: WaterLevel unit tests pass
13 Days Ago
Bugfix: Rewrite WaterLevel.GetWaterLevel to properly take in deep sea state Tests: ran unit tests, water level consistency tests fail due to bug on OceanSimulation side, serial path, will fix next
14 Days Ago
Update: TerrainHeightMap.GetQueryStructure now takes in a flag for deep sea data - got rid of bespoke height and normal sampling from HeightMapQueryStructure - bugfix: buoyancy - WaterSystemBurst.GetHeightArray_Burst now samples relevant heightfields instead of assuming deepsea heightfield is a single const Last duplicate is gone, yay. Can finally look at fixing WaterLevel.GetWaterLevel and other spots Tests: booted into craggy, generated deepsea and teleported to it - swam around, went to the islands, went to scientist tugboats
14 Days Ago
Clean: rip out TerrainHeightMap.GetHeightsFastIndirect GetHeightsIndirect is similarly fast(~10%) and consistent at borders with GetHeight Tests: ran water level tests (but they're falsely passing)
14 Days Ago
Clean: remove TerrainHeightMap.GetHeightFast, replace with GetHeight - added GetHeight(Vec2) overloads to avoid accidental GetHeight(Vec3) call via implicit conversion GetHeightFast is ~55% faster in managed land, but it's not used in very hot loops, so doubt we'll notice the difference. If we really care, we can replace it with available burst jobs. Tests: ran unit tests
14 Days Ago
Update(tests): add TestGetHeightsIndirect_UV_Overworld and TestGetHeightsIndirect_UV_DeepSea tests Tests: ran all unit tests
14 Days Ago
Update: TerrainHeightMap - redirect all height and normal calcs to go via HeightMapData impl - Renamed HeightMapData.GetHeight -> GetHeight01 Tests: all unit tests pass, perf tests results seem same
14 Days Ago
Update: fill in some missing overloads in TerrainHeightMap - get rid of commented methods Tests: ran unit tests
14 Days Ago
Clean: replace GetHeightsFastIndirect with GetHeightsIndirect - also fix a bug with invalid indexing - TerrainMap<T> now exposes internal src buffer as a ReadOnly view Starting cleanup effort, rough path ahead Tests: ran unit tests
14 Days Ago
Clean: remove Perf.TestGetHeightFastIndirectOld and related bits Tests: none, trivial change
14 Days Ago
Update: switch GetHeightsFastJobIndirect to use HeightMapData.GetHeight instead of inlined logic - removed extra 4 madds by using Fast's index calculation It's slightly slower on 512x512 test (0.9ms -> 1ms) due to Clamp01 calls, but we can afford consistency with GetHeight - will allos us to promote "fast" as "normal" and deduplicate Tests: ran perf tests, compared asm
14 Days Ago
Update: rewrite TerrainHeightMapJobs.GetHeightsFastJobIndirect to use HeightMapData - temporarily added Perf.TestGetHeightFastIndirectOld for easier assembly comparison Generates the same assembly, so same perf Tests: ran perf tests
14 Days Ago
Update(tests): add perf tests for TerrainHeightMap GetHeight family Surprisingly, the *Fast versions are faster even in burst jobs. I want to rip them out(too many dupes), so going to try to replicate the benefits to common family Tests: ran all unit tests
14 Days Ago
Clean: redirect a couple calls via GetHeight01/GetNormal(..., NativeArray.ReadOnly) Tests: none, trivial change
14 Days Ago
Bugfix: TerrainHeightMap.GetNormalsIndirect - reimplement using HeightMapData core - also slightly refactored HeightMapCore height logic Fixes it not knowing about deep sea Tests: all TerrainHeightMap unit tests pass
15 Days Ago
Update(tests): add TestGetNormalsIndirect_Deferred Conceptually it's same logic underneath, but routed through different code, so worth a unit test Tests: ran new unit test - fails on deep sea indices as expected
15 Days Ago
Bugfix: TerrainHeightMap.GetNormal(float, float) now checks for deep sea - added utility funcs that sample user provided NativeArray<short>.ReadOnly - regenerated validation normals for unit tests from TestGetNormal Tests: TestGetNormal passes, TestGetNormalsIndirect fails as expected
15 Days Ago
Bugfix: TerrainHeightMap.GetHeightsIndirect - rewrite using HeightMapData core This fixes missing deep sea lookups Tests: ran TestGetHeightsIndirect - passes
15 Days Ago
Update: refactor core of GetHeight logic into it's own struct - updated GetHeights to use it Tests: TestGetHeights passes
15 Days Ago
Bugfix: TerrainHeightMap.GetHeights - clamp to border when interpolating heightmap samples Tests: TestGetHeights passes
15 Days Ago
Update(tests): add TerrainHeightMap unit tests that cover GetHeight + GetNormal and their variants Tests: ran unit tests, some failures are unexpected
15 Days Ago
Update(tests): add support to generate test positions in deep sea bounds - updated TestWaterLevelsConsistency to use those extra positions, but surprisingly the test passes - documented everything(I think?) that's wrong with WaterLevel.GetWaterLevels Tests: ran updated unit test
16 Days Ago
Merge: from servercacheplayerinfo_optim - Optim: reduce the amount of state we recache every frame - Bugfix: fix some state being out of date by half-a-frame Tests: unit tests + playing on craggy
16 Days Ago
Merge: from main
16 Days Ago
Update(tests): amend BatchWaterLevels and SerialWaterLevels to support variety of query counts Existing 10k test is a bit unrealistic (even if shows nice improvement) Tests: ran perf tests
17 Days Ago
Update: GetWaterFactors - fetch parent entity only once - updated perf test to have 5% to spawn parented player Tests: ran unit tests
17 Days Ago
Optim: GetWaterFactors - add overload that can use cached mountables states for active players - amended perf tests to spawn players with 5% chance to be mounted 400 batched queries: 0.6ms -> 0.55ms (serial are 2.32ms) Tests: ran unit tests
17 Days Ago
Optim: ServerCachePlayerInfo - move isMounted and mountables caching to point of modification instead of every frame Tests: built a boat on craggy and steered the wheel
17 Days Ago
Update: ServerCachePlayerInfo - cache isMounted, mountable for player Tests: built a bouat on Craggy and used the steering wheel
19 Days Ago
Update: use dirty indices for copy Test: none, trivial change
19 Days Ago
Update: propagate PlayerServerStates down to Antihack methods - updates unit tests for changed API Tests: unit & perf tests, ran around craggy