branchrust_reboot/main/indirect_instancingcancel

452 Commits over 669 Days - 0.03cph!

1 Year Ago
Made shadows toggleable
1 Year Ago
do not copy shadow mode from renderer to avoid rendering shadows twice
1 Year Ago
revert protocol version
1 Year Ago
- Fixed invisible objects due to state information ending up wrong in the prefab pool - Fixed method ambiguity build error in BufferList - Merged aggressiveShadowLod optimisation into InstancedLODComponent - Allow RendererLOD collapsing when instancing is enabled - Added stats about fallback rendering to indirect instancing diagnostics - Fixed shadow proxy detection - Avoid leaking memory by actually destroying monster meshes before recreating them
1 Year Ago
Re-enabled instancing for the Nature/Cliff shaders
1 Year Ago
native libraries
1 Year Ago
- Found a way to unity instance adding/removal code under InstancedLODComponent. This is starting to look very solid now. - Started extending BufferList to work with Span<T> - Added ArrayPoolBufferList as an experiment
1 Year Ago
Fix compilation error about RecordUnsupportedMaterial
1 Year Ago
fix native library issue
1 Year Ago
fix server build
1 Year Ago
Removed some leftover debug stuff
1 Year Ago
- MeshCull, MeshLOD and RendererLOD are now able to add their states to the instancing system themselves without the need for a RustRenderer. - Fully decoupled InstanceCreationInfo from *Renderer for more flexibility. - Added an `autoconnect` ConVar (editor only) to speed up debugging on external servers - Improved debugging by adding Robocop vision. New ConVar: indirect_instancing.debug - Added InstancedLODComponent to cover the instancing needs of MeshCull, MeshLOD and RendererLOD - Tools: Record unsupported materials during play mode so that they can be fixed later - Tools: More progress bars for long operations - InstancedDebugDraw: Fixed not updating properly due to missing damage tracking on the command buffer - Introduced WrappedRenderer to intercept modifications from other parts of the code. It works, but I'm probably not going to keep this. - Moved all the debug stuff to separate files - Fixed a == vs. = typo in SoundDefinition.AutoAssignAudioClips
1 Year Ago
Enable instancing on all supported materials
1 Year Ago
Enable Read/Write on all prefab meshes
1 Year Ago
Don't fail builds when file timestamps could not be set
1 Year Ago
Improve automated indirect instancing tools
1 Year Ago
Bring back compute changes
1 Year Ago
Bring back supported shader changes and includes
1 Year Ago
Bring back prefab changes
1 Year Ago
Revert execution order changes
1 Year Ago
Revert compute changes
1 Year Ago
Revert script changes
1 Year Ago
Revert prefab changes
1 Year Ago
Revert package changes
1 Year Ago
Revert platform changes
1 Year Ago
Revert changes to shader includes
1 Year Ago
Reverted changes to supported shaders
1 Year Ago
Revert changes to ProjectSettings
1 Year Ago
merge from main
1 Year Ago
Remove instancing support from all non-standard shaders
1 Year Ago
Some .FBX.meta I didn't catch because they were uppercase
1 Year Ago
Revert even more .fbx.meta and .mat files to the state they have on /main
1 Year Ago
Subtract all .mat changes to investigate artifacting issues
1 Year Ago
Subtract all .fbx.meta changes to investigate artifacting issues
1 Year Ago
Fixed InstancedDebugDraw instance and command buffers initially bound to zero
1 Year Ago
don't use sort jobs
1 Year Ago
fix server build
1 Year Ago
Revert ProjectSettings.asset
1 Year Ago
build fix
1 Year Ago
regenerate codegen
1 Year Ago
merge from main
1 Year Ago
- Removed indirect_instancing.enabled toggle (was broken) - Reverted all modifications to MeshLOD, MeshCull, RendererLOD, RendererBatch and other LODComponents
1 Year Ago
- Fixed and optimise debug diagnostics - Use an array instead of a dictionary to store RenderKeys - Added various toggles for controlling which parts of the system run during profiling
1 Year Ago
InstancedDebugDraw: Fix performance issue when re-adding instances each frame
1 Year Ago
Indirect instancing fixes: - Supported shaders are no longer determined at runtime, instead a list is supplied to the component on the main camera prefab. This fixes issues where instanceable objects would end up in the non-instanceable fallback renderer. - Add operations are no longer queued in order to return success/failure states immediately back to the caller. - Remove operations are now queued without relying on managed references, fixing various use-after-destroy issues. - Broadened the use of the InstanceCreationInfo struct to avoid fealing with so many function parameters. - Improved logging when instances can't be added (1) at all or (2) only in the non-instanced fallback renderer. - Fixed exceptions resulting from calling RecalculateUVDistributionMetric() after UploadMeshData()
1 Year Ago
Fixed removing the wrong instance when the swap-back-removal of another instance invalidated the indices by reintroducing instance sequence numbers, but slightly better.
1 Year Ago
Don't rely on managed references when removing instances, use InstanceHandle instead
1 Year Ago
Fix exceptions caused by removal of meshes with less materials than submeshes
1 Year Ago
merge from main
1 Year Ago
A week's worth of fixes for indirect: - Added a `spawnprefab` editor-only command that allows to spawn (and pre-process) any prefab for testing. - Moved indirect ConVar stuff to a proper indirect_instancing.cs - Temporarily removed Core/* shaders from the compatibility list because indirect support is unclear. - Revamped the indirect compatibility decision logic to be more granular and robust. - Fixed invisible models when a renderer in instanceable but none of its materials are. - Fixed NRE when encoundering null materials. - Added TryEnqueueAdd which gives feedback about when enqueing a renderer failed due to incompatibility. - Downgraded assertion exception when a shader wasn't found to just a warning. - Reworked RejectReason structure to a struct fully interoperable with bool. - RustRenderer now remembers original shadow casting modes so that they can be restored when indirect rendering is disabled. - Store errors reported by TryEnqueueAdd in RustRenderer for debug purposes. - Automatically disable RustRenderer if object is a shadow proxy. - Automatically disable RustRenderer if any submeshes are incompatible with either indirect or fallback rendering.