userFelixcancel
branchrust_reboot/main/indirect_instancingcancel

268 Commits over 304 Days - 0.04cph!

4 Months Ago
Subtract all .fbx.meta changes to investigate artifacting issues
4 Months Ago
Fixed InstancedDebugDraw instance and command buffers initially bound to zero
4 Months Ago
don't use sort jobs
4 Months Ago
fix server build
4 Months Ago
Revert ProjectSettings.asset
4 Months Ago
build fix
4 Months Ago
regenerate codegen
4 Months Ago
merge from main
4 Months Ago
- Removed indirect_instancing.enabled toggle (was broken) - Reverted all modifications to MeshLOD, MeshCull, RendererLOD, RendererBatch and other LODComponents
4 Months 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
4 Months Ago
InstancedDebugDraw: Fix performance issue when re-adding instances each frame
4 Months 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()
4 Months 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.
4 Months Ago
Don't rely on managed references when removing instances, use InstanceHandle instead
4 Months Ago
Fix exceptions caused by removal of meshes with less materials than submeshes
4 Months Ago
merge from main
4 Months 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.
4 Months Ago
Fixed shader errors about missing implementations of vertInstancingSetup
4 Months Ago
merge from main
4 Months Ago
Fix construction guide not appearing
5 Months Ago
merge from main
5 Months Ago
Changed implementation to only render colour pass and leave shadow culling and rendering to Unity
5 Months Ago
Added some debug ConVars
5 Months Ago
Fixed various causes that could render meshes twice
5 Months Ago
Add queue system for adding/removing instances to prevent colliding with the jobs
5 Months Ago
Implement a fallback renderer for non-instanced draw calls based on Graphics.RenderMesh()
5 Months Ago
Disable only unsupported submeshes in MeshRenderers, not all of them
5 Months Ago
Re-enable texture streaming jobs
5 Months Ago
* Restore damage tracking for command and instance buffers * Skip RemoveDestroyedMeshes() as it doesn't seem to be needed anymore and it was taking well over 3 ms
5 Months Ago
Improve performance in the hierarchical culling job by reordering the culling tests by cost
5 Months Ago
Fix wrong index calculation in ArrayEx.RemoveAtNoResize()
5 Months Ago
Improve handling of null meshes in RustRenderer auto conversion
5 Months Ago
Grow block allocations exponentially because linearily wastes more buffer space.
5 Months Ago
Implement ArrayEx.RemoveAt* utility functions
5 Months Ago
- Render all instanceable submeshes instead of rejecting the whole mesh - Use real LOD thresholds instead of 5 meter increments
5 Months Ago
- Disable LOD fading to be reintroduced when LOD switching is stable - Pass final Mesh instead of MeshFilter to instancing system to allow assets based on MeshLOD to work properly - Restructure RustRenderer for more robust automatic conversion - Fix invisible LODs by merging duplicate entries referring to the same Mesh
5 Months Ago
Fix frustum culling by skipping damage tracking as a temporary workaround
5 Months Ago
Prevent NRE when a MeshCull is without a MeshRenderer or MeshFilter
5 Months Ago
Do not update indirect instancing system when scene is loading
5 Months Ago
Do not update indirect instancing system when scene is loading
5 Months Ago
Always grow GPU instancing buffers exponentially to prevent VRAM exhaustion in during initial spawn.
5 Months Ago
merge from main
5 Months Ago
merge from main
5 Months Ago
First complete (but mostly broken) implementation of indirect instancing. Split most classes into separate files for easier handling and less conflicts.
5 Months Ago
Regenerate console system
5 Months Ago
cherry-pick platform fixes
5 Months Ago
cherry-pick platform fixes
5 Months Ago
merge from main
6 Months Ago
Merge from /main
6 Months Ago
Add terrain occlusion culling to the instanced renderer (WIP)