476 Commits over 365 Days - 0.05cph!
Add ConcurrentBoolArray as a simpler (but more wasteful) form of ConcurrentBitArray to get things going quicker.
Add a function to find contiguous regions of values efficiently.
Only run terrain culling when it's actually worth it (when camera is above some but not all terrain)
Introduce WIP version of ConcurrentBitArray for bitmapped damage tracking
Restrict Indirect Instancing ConVars to debug builds only
Undo: Enable more materials for instancing that weren't caught previously because of a buggy automation in indirect instancing tools
Undo setting instancing flags on additional materials because the automation seems to be still incorrect
Fixed node visuals not chaning while harvesting them
Added `graphics.vram_report` command so we can begin getting the VRAM situation under control.
Fix missing terrain on tutorial island by reverting the material to be non-instanced.
Merge fixes from /indirect_instancing
- Don't perform `graphics.aggressiveshadowlod` optimisation on shadow proxies.
- Only respect `indirect_instancing.shadows` when Indirect Instancing is enabled.
Force disable HLOD while Indirect Instancing is enabled
Merge from /indirect_instancing
Remove unused compute shader from indirect instancing
Merge Indirect Instancing
Fix indirect instancing tools never actually applying material changes. (Again, because I love Plastic but it doesn't love me back)
Remove Standard+Wind from the list of supported shaders for indirect instancing as it caused some foliage to be rendered white.
Revert instancing flags on materials that were using Standard+Wind to their original state.
Set correct mip map bias when using indirect instancing
Make sure indirect instancing ConVars are disabled by default and saved
Fix a shader error in certain terrain shaders using _SecondaryDetail_Color
Remove RustRenderer (for now)
Implement IRefreshable and BroadcastRefresh as a better way to refresh InstancedLODComponent after colour changes.
Remove old damage tracker code and rename NativeDamageTracker → DamageTracker
Move `autoconnect` variable to `client.autoconnect`.
▉▆▇▋▅ ▅▋▍▇ ▍▌▊█▉▌▉▄_█▌▆▅▅▇▍_▇▊▅▅▅
▍▍-▊▉▋▆▇: █▆▉▅▌ ▋▄▅▍▊▋▌▌▄▍ ▅▊▇▄▇▉▌▋▋ ▄▍ ▍▇ ▊▍▋█▆▉ ▊▋ ▇▄▄ ▄▊███▍ ▉▋ ▍▄▋▍▆
▅▉▅▇▍ ▅▉▍▇▄▄▅█_▆▊▉▇██▄_▄▆▊▇▌
▉▊-▄▋▊▉▆: █▄▍▌▌ ▇▊▉.▊▄▊▇▌▊█ ▄▇ ▉█▌ ▇▍ ▇▅▇▊▉▄
▄▇-▇▉▅▊▋: ▍▌▉▅▄ ▊▅▌▄▊▄ ▇█▉▆▍▍█▌▄▋▊█▋ ▄▆█▋ ▋▆▋▅█▍ ▇▍ ▅▄▇▉▇▉▌ (▅█▋▍▅▌█ ▇▄▇▊▄▆▇▋▄ ▋▅ ▇▄▌▌▌▍▉ ▅▇▋▍ ▅▆▊▆▋▇▇▆▇▇▍ ▇▌▊ ▌▋-▍▅▉▇▍▉▇)
Merge shader changes for indirect instancing (which should also fix the issues introduced by material changes)
Fix shader issues properly by adding _SecondaryDetail_Color to the instanced properties.
Cherry-pick reverting old shader changes to instancing
Remove dead code and other cleanups from the code review
(▄▊█▆▌▅▋ ▇) ▉▌▋▋▊ ▆▍▆██▉▉ ▊▌ ▊▉▌▋▇ ▆▅▉▄▇▇▌ ▇▌ ▋▅▊█▉. ▋▉▉▊ ▇▋▇ ▄▄█ ▆▄▆▊▆▄▍ ▇▅▋▉▅ ▄▌▇▇▌▍▄█▇▋▅▄ ▌▆ ▄▌▉▍ ▄▆▄▅ ▌▇▄▅.
Revert shader changes that turned out to be not required for indirect instancing. (I'm glad. They didn't make any sense, either.)
▄▄▊▍▊▉▋▋ ▇▅██▉█▄ ▇▆▍/▋▊▋▇▆ ▅▇▊▋▋▊▉▇▋ ▇▅ ▍▍▆█▆▇▄ ▅▆▄▇▇▍▆█▅ ▊▄█▊ ▆▊▋█▊▄▋▄
█▅▉▆▆▍█▅ ▍▄ ▅▄▉▌▍█▄ ▄▊█▇▊▋▅ ▄▋▆▌▋▅▅ ▍▅▄ ▌▌▋█▊ ▊▋▇▉▊
▍▌▌▄▌▄▍▊ ▌▊█▆▌▇▆/▌▊█▊▄▆▇▊ ▋▍▄▇▆▉▇
Shader changes for indirect instancing (changes which are likely not required)