userDaniel Pcancel

506 Commits over 123 Days - 0.17cph!

3 Months Ago
Update: Replacing new occurances of obsolete Pool API with new Tests: built all configs
3 Months Ago
Merge: from main Also contains updated codegen binaries to conform with new API Tests: built all modes
3 Months Ago
Clean: use a cast instead of new expr Also dead static removal Tests: none, trivial change
3 Months Ago
Optim: StringView.Split can use user provided temp storage ServerInfo uses a pooled list to as a go-between the StringView and HashSet. This provides last noticeable change that reduces an allocation per ctor, with average going down by 1.3 (8.31 -> 7). Also reinforced empty tags to not allocate a new empty set everytime. Tests: checked ServerBrowser - tags still recognized.
3 Months Ago
Optim: Replacing ServerInfo.Region with StringView instead of string Avoids another optional allocation, avg count went down by 0.6 (8.95 -> 8.31). This looks like mostly it for clear&easy wins. Tests: Checked server browser, it displayed region tags
3 Months Ago
Update: Add ServerInfo.Protocol enum Avoids us creating a string to track which protocol to use. On average, saves about 0.6allocs (9.56 -> 8.95). We already have a similar enum on the game level, but this has the "Default" member. Tests: none, trivial change
3 Months Ago
Optim: further reduce allocs for ServerInfo Couple easy wins - Changeset is unused so removed, construct ConnectionString on demand, avoid identifying tags if already identified. Should've removed 2allocs per ctor, but data shows reduction by 3allocs on average(12.94 -> 9.56). Tests: None, trivial changes
3 Months Ago
Update: Allow StringView to implicitly convert to ReadOnlySpan This allows StringView to be friendly with APIs that Span, like int.TryParse(). It also removes 3 allocations, and weirdly my tests show a reduction of 4 allocations per ctor invocation on average. Also merging stragler tag lookup into the main loop(avoids an extra traversal and extra lambda allocation). Tests: Checked ServerBrowser, player count was sane.
3 Months Ago
Update: Annmotating ServerCacheQuery to track GC allocs Should've done it at the start but ah well. This also revealed that Task.Delay doesn't seem to be doing much - worth investigating further. Tests: took a recording during server list refresh - no errors and could see the samples displayed.
3 Months Ago
Update: Rewriting ServerInfo to use StringView for Tags This revealed a bunch of other dependencies that needed to be updated. Some of them got plugged up by string copies, some by uninmplemented StringView.Substring. Overall, seems doable, though revealed a number of shortcomings - for example, we'll need to implement our own <numeric>.TryParse(StringView) logic. On the flipside, it allows us to do String pooling a bit more aggressively in our steam library(if we decide to go that far). Tests: Opened GameServer, observed list being populated and interactible.
3 Months Ago
Bugfix: fixing utility algs in StringView Tests: server browser displayed all results (next CL)
3 Months Ago
Add: new StringView utility It's essentially a ReadOnlySpan that keeps alive it's referred-to string, and is able to be stored as a member variable. Only contains a smidgen of algorithms that are needed to use it as part of ServerBrowserList. Goal is to find out how much code we need to update to be able to eliminate most allocations in the browser refresh flow. Tests: none
3 Months Ago
Merge: from main
3 Months Ago
Merge: from main Buildfix for camera shake
3 Months Ago
Buildfix: ifdef out ExplosionScreenBounceFade logic Tests: built all target modes, all green
3 Months Ago
Buildfix: removing usused using declarations Will trip up PC build Tests: ran PC build locally
3 Months Ago
Merge: from main
3 Months Ago
Buildfix: unexpose a variable Leftover that I missed during cleanup, somehow tripped up the build. Tests: Build in all modes - pass. Ran unit tests - pass
3 Months Ago
merge from Pool_Remove_FreeDynamic Tests: ran new CompanionServerTests 10 times, all green
3 Months Ago
Bugfix: Close socket properly instead of aborting during test teardown This is slower, but avoids tripping up the companion server that's polling on data and suddenly gets unexpected remote closure, triggering an exception. Tests: ran the batch of tests 10 times, no failures
3 Months Ago
Merge: from main When testing on main, suddenly discovered that 3rd test batch run would produce an error. Tests: ran CompanionServerTests multiple times, 2 green batches, 1 red (on teardown) - will fix in next CL
3 Months Ago
merge from main
4 Months Ago
Merge: From Main Tests: Ran CompanionServerTests couple times, all green
4 Months Ago
Update: Treat Obsolete warnings as visible, potentially errors. This allows us to clearly see when we have deprecation warnings. We can still clear the console if it's too spammy. Lastly, because they're treated as warnings and not flat-out-errors it allows us to control when we hard-deprecate via flag to [Obsolete]. Tests: marked a funciton as Obsolete - observed warnings instead of errors. Marked that func as obsolete-error - saw errors.
4 Months Ago
Merge: merge from main Lets see how much extra work I got left now
4 Months Ago
Update: AssetStorage now respects compression settings for Save() Originally it was doing nothing (because it picked a compression format as textureFormat, but then set textureCompression to Uncompressed), but now it'll try to compress on request. We only have 1 place where we attempted to compress the terrain normal map, but I'm disabling that explicitly (as it would lead to fudged normals). Tests: Baked Heightmap on CraggyIsland - spat out the same formatted texture as before
4 Months Ago
Bugfix: Discard alpha channel for generated LUT Originally it was saved as RGB24, but since my deprecation warning fix I re-enabled Alpha channel. This fixes it. Tests: none, trivial change
4 Months Ago
Clean: Fixing depr warnings in Third Party/VertexToolsPro - Adapted uncompressed texture pixel access, TextureImporterFormat -> TextureImporterCompression - SceneView.onSceneGUIDelegate -> duringSceneGui Holy guacamoly, it's there's no more deprecation warnings. Now to double check previous compression conversions, as I think I missed alpha channel handling in a couple places. Tests: none, trivial changes
4 Months Ago
Clean: Fixing depr warnings in Third Party/PluginMaster 8 to go. Tests: none, trivial changes
4 Months Ago
Clean: Fixing depr warnings in Third Party/CinematicEffects 10 to go Tests: none, trivial changes
4 Months Ago
Clean: Fixing depr warnings in Assets/Editor - Removed obsolete BuildOptions usage (they do nothing on native side) - Using explicit EditorGUILayout.ObjectField with AllowSceneUsage parameter overload - More PrefabUtility conversion - TextureImporterFormat.AutomaticTruecolor -> TextureImporterCompression.Uncompressed 12 warnings to go. Tests: none, trivial changes
4 Months Ago
Clean: Fixing depr warnings in Scripts/Audio - Removed the method containing deprecated usage, as it was trying to call into a native method that no longer exists. Tests: None, trivial change (no usage)
4 Months Ago
Bugfix: Prevent Scene2Prefab from always switching to default scene I dingussed up in the previous commit by doing extra changes after testing. Reverted small part of the change because Scene handle becomes invalid when loading a new scene. Tests: Ran "Locate Renderers with no LOD Components" - it returned back to original scene properly
4 Months Ago
Clean: Fixing depr warnings in Editor/Rust - Added a bit of error checking to SceneToPrefabs to avoid accidents - EditorApplication -> EditorSceneManager for all scene related work - ListView event changes, onItemsChosen -> itemsChosen, onSelectionChange -> selectionChanged 27 warnings to go. Tests: ran Scene2Prefab/Locate Renderers with no LOD Components - it detected a number of issues, so green. Other changes are trivial.
4 Months Ago
Clean: Fixing depr warnings in Scripts/Procedural - EditorGUIUtility.LookLikeControls -> manual setting field and label widths 47 to go (I hope) Tests: None, trivial changes
4 Months Ago
Bugfix: Reimplementing PowerLineWireUndo Unity deprecated a couple Undo APIs that broke our utility, so replaced them with new API. Also upgraded PrefabUtility usage and nuked a couple unused public methods (since they used deprecated APIs). Tests: Tested Undo-Redo when adding a new line on power line platform - works
4 Months Ago
Clean: Fixing depr warnings in LeavesBlowing.cs - Also cleaned empty method 65 to go - I thought this was going to be 0, but turns out there's 65 more errors hiding, so the counter restarts Tests: none, trivial changes
4 Months Ago
Clean: Fixing depr warnings in Rust.AI/ 3 to go. Tests: none, trivial changes
4 Months Ago
Clean: fixing depr warnings in Scripts/PostProcessing Done by taking Unity's official repo upstream patches for our version of unity for these specific file segments. We should replace our source package via a core package. 5 to go. Tests: Setup debug overlay for normals - still works (though wonky)
4 Months Ago
Clean: fixed depr warnings in Scripts/Analytics Now outputs refresh rate as a decimal fraction Tests: none, trivial change
4 Months Ago
Clean: fixing depr warnings in Scripts/Diagnostics Now able to return 2GB+ values for dump convar. 8 to go. Tests: Generated a dump, validated the padding is alright
4 Months Ago
Bugfix: KeyBindUI once more avoids modifying original prefab name This got broken in 2018.3, about a year after our code submit. Also sneaking in depr fixing in UI/Main Menu - Replaced obsolete PrefabUtils API calls in KeyBindUI - WWW -> UnityWebRequest 10 errors to go Tests: Checked main menu news still download and dispaly. checked KeyBinds prefab doesn't get polluted with bind names and options prefabs get renamed properly
4 Months Ago
Clean: Fixing depr warnings in Scripts/ConsoleCommands `objects` and `textures` vars can return 2GB+ memory size values per object now. - Application -> SceneManager - refreshRate -> Round(refrestRateRatio.value) 14 to go Tests: none, trivial changes
4 Months Ago
Clean: Fixing depr warnings in Scripts/ViewModel - More ParticleSystem module usage - Also removed obvious comments 19 to go - there's basically no more large groupings, so the CLs will continue to be small Tests: none, trivial changes
4 Months Ago
Clean: Fixing depr warnings in Scripts/Client - More ParticleSystem module usage - Application -> SceneManager 23 to go Tests: None, trivial changes
4 Months Ago
Clean: Fixing depr warnings in Scripts/Procedural - Removal of dead Render.mateiralType - Renderer.castShadows -> shadowCastingMode - WWW -> UnityWebRequest - Explicitly use default QueryParameters for a RaycastCommand 26 to go Tests: None, trivial changes
4 Months Ago
BugFix: TerrainMeta now updates Terrain Material if it's missmatching Unity's deprecation made it so that our validate-and-update logic broke with 2019.2 and it's been silently skipping it. - Removed obsolete code (it always returned MaterialType.Custom) - Updated Hapis TerrainConfig to reference Terrain.v3.Hapis material (so that new logic doesn't set the wrong material on validation) Tests: Validated that all Release worlds have matching materials as in their TerrainConfig.
4 Months Ago
Clean: fixing depr warnings in Scripts/Effects It's all just ParticleSystem module usage additions. 39 warnings to go. Tests: none, trivial changes
4 Months Ago
Clean: fixing depr warnings in Scripts/Game/ - SceneToPrefab - using SaveAsPrefabAsset instead of ReplacePrefab - More ClientRPC(RpcTarget) usage - More ParticleSystem module usage - CreatorGibSpawner now caches and restore entire Random state when changing seed - prefabAssetPath -> assetPath Tests: Tested SceneToPrefab workflow by building "water well" monument prefab - although it produced inconsistent diffs, original impl also did. Checked the generated prefab visually - it matched. Also walked through Unity's call tree - the controlling variables were the same. About 55 left
4 Months Ago
Clean: fixing depr warnings in Scripts/Server - Server performance can now report memory usage past 4GB Tests: None, trivial changes