561 Commits over 426 Days - 0.05cph!
Use LOD quality setting "Object Quality" in Indirect Instancing to more closely resemble the LOD switching behavior of the old system.
Try skipping the extra pass to remove null transforms for an extra 0.2 ms (toggleable via ConVar)
Perform application of the motion list transforms in a job for better performance
Merge from indirect_instancing (also force-disables it for non developers)
Set new _INDIRECT_INSTANCING_ON keyword when Indirect Instancing is enabled
Mark all Indirect Instancing ConVars as DeveloperOnly.
Don't include DeveloperOnly commands in autocomplete.
Merge from main (to pull in mac_foliage_tearing_fix)
* Fix randomly disappearing in-motion objects since switching to the new TransformMemory implementation.
* Fix randomly disappearing stationary and in-motion objects in the deep sea.
* Fix concurrent access exception when in-motion objects are destroyed.
add some more debug info to TransformMemory
Improve performance of instances in motion by about 3x by mirroring all swap and copy operations of instance memory into a separate structure, and using that to apply new transforms of instances in motion.
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards)
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 7 of 7, because Plastic is a broken mess]
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 6 of X, because Plastic is a broken mess]
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 4 of X, because Plastic is a broken mess]
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 5 of X, because Plastic is a broken mess]
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 3 of X, because Plastic is a broken mess]
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 2 of X, because Plastic is a broken mess]
Enable 222 new materials for GPU instancing (If you conflict with this changeset, simply override these changes and manualle re-enable GPU instancing on the affected materials afterwards) [Part 1 of X, because Plastic is a broken mess]
merge indirect_instancing fixes
Fix wrong lighting in underground scenarios by issuing instanced draw calls earlier in frames where reflection are rendered.
Actually apply and respect render layers when instancing
▅▋▉█▄: ▋▇█ ▌▄▉ ▅▆▌▅ ▊▌▍▇▊▆▆█ ██▉▋▇▄▋▇▉█ ▊▊ ▊▅▍▋▄▊▆█
Fix NRE when Indirect Instancing is disabled
▋█▍ ▉▍▍▇█▉█▇ ▅▌█▉█▆▋▌▊▌ ▌▇▅▋▄▇▅▄▆▋▋▆ ▆▇▌▆▋ ▊▌▌▆▅▇▉ ▋▋ ▅▅▆▌█▌▇
Fix Indirect Instancing accidentally being enabled by default
▇▌▍█▉ █▄▌▆▉ ▊▉▆▄ █▉▆▅▊▄▅▇_▅▅▉▇▇▉▅▉▌█ (▍▅▇▄▊ █▆█▌ #▆)
▊▇█▇▆ ▄▌▇▊ ▋▍▊▌█▍█▅_▄▉▄█▄▆▇▄▅▄
▌▇▉▋▊ ▅▅▌▉██▇▅ ▊▄▌▍█▄▉▆▍█ █▇▆█▍
Replace range_terrain_mound_a (negative scale) with range_terrain_mound_b and adjust position.
* Fix lights at monuments always visually on
* Fix levers not animating properly
Fix workshop skins not loading when Indirect Instancing is enabled
Naval + Indirect Instancing smoke test
▅▉▌▄▊ █▆▇▊▆█▉▆ ▆▋▄▇▆▅█▍▇▌ ▊▊▇▄▍
Allow indirect_instancing.debug to be toggled at runtime
Fix chandelier chain stretching (it actually never did) by properly instancing the _MainTex_ST property
Check for valid material before submitting a draw call
▌▊▄▇▌ ▊▉▇▅▉▆▍▍ ▉▊▋▍█▍▅▊▄▊ ▌▍█▉▆
Fix objects in motion failing to move properly after disconnecting/reconnecting (it was a pooling issue)
Fix chandelier chain not scaling (stretching) correctly with Indirect Instancing
Prevent unit cube bounds by always requiring at least one valid mesh for all LODComponents
Check textures for null in ApplyMipLevels()
Check textures for null in ApplyMipLevels()
Merge Indirect Instancing Fixes
* Store local bounds so that new world bounds can be derived when an instance moves
* Emit a warning when a unit cube is assumed for bounds
* Don't actually try calculating worldBounds for Unity, it gets really messy when things move around
* Use the new local bounds for the debug overlay as well
* Add some null checks in MotionList
* Add BroadcastTransformUpdate() to force-update the instance transform regardless of motion state