userFelixcancel

256 Commits over 243 Days - 0.04cph!

Today
- Removed indirect_instancing.enabled toggle (was broken) - Reverted all modifications to MeshLOD, MeshCull, RendererLOD, RendererBatch and other LODComponents
Today
- 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
Today
InstancedDebugDraw: Fix performance issue when re-adding instances each frame
6 Days 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()
8 Days 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.
9 Days Ago
Don't rely on managed references when removing instances, use InstanceHandle instead
9 Days Ago
Fix exceptions caused by removal of meshes with less materials than submeshes
9 Days Ago
merge from main
9 Days Ago
merge from main
13 Days 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.
13 Days Ago
Fixed shader errors about missing implementations of vertInstancingSetup
13 Days Ago
merge from main
13 Days Ago
merge from main
17 Days Ago
merge from main
20 Days Ago
Fix construction guide not appearing
21 Days Ago
merge from main
21 Days Ago
merge from main
21 Days Ago
Changed implementation to only render colour pass and leave shadow culling and rendering to Unity
21 Days Ago
Added some debug ConVars
28 Days Ago
Fixed various causes that could render meshes twice
29 Days Ago
Add queue system for adding/removing instances to prevent colliding with the jobs
29 Days Ago
Implement a fallback renderer for non-instanced draw calls based on Graphics.RenderMesh()
29 Days Ago
Disable only unsupported submeshes in MeshRenderers, not all of them
31 Days Ago
Re-enable texture streaming jobs
31 Days 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
31 Days Ago
Improve performance in the hierarchical culling job by reordering the culling tests by cost
31 Days Ago
Fix wrong index calculation in ArrayEx.RemoveAtNoResize()
31 Days Ago
merge from debug_draw_fixes (Make `ddraw.clear` work with Instanced DDraw)
31 Days Ago
Make `ddraw.clear` work with Instanced DDraw
31 Days Ago
merge from main
34 Days Ago
Improve handling of null meshes in RustRenderer auto conversion
34 Days Ago
Grow block allocations exponentially because linearily wastes more buffer space.
34 Days Ago
Implement ArrayEx.RemoveAt* utility functions
34 Days Ago
- Render all instanceable submeshes instead of rejecting the whole mesh - Use real LOD thresholds instead of 5 meter increments
34 Days 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
35 Days Ago
Fix frustum culling by skipping damage tracking as a temporary workaround
36 Days Ago
Prevent NRE when a MeshCull is without a MeshRenderer or MeshFilter
36 Days Ago
Do not update indirect instancing system when scene is loading
36 Days Ago
Do not update indirect instancing system when scene is loading
36 Days Ago
Always grow GPU instancing buffers exponentially to prevent VRAM exhaustion in during initial spawn.
36 Days Ago
merge from main
36 Days Ago
merge from main
38 Days Ago
merge from main
38 Days Ago
First complete (but mostly broken) implementation of indirect instancing. Split most classes into separate files for easier handling and less conflicts.
38 Days Ago
Regenerate console system
38 Days Ago
cherry-pick platform fixes
38 Days Ago
cherry-pick platform fixes
38 Days Ago
merge from main
38 Days Ago
merge from main
48 Days Ago
▆█▍▊▇▇▌ ▊▋▅▍ ▌▇▉█▉▍ ▊▍▅▍▋▆▋▄ ▅▉▇ ▅▇▊█▄ ▌▍▍▋▊ ▋▇▍▅▆ ▄▆ ▊▆▆▉▊ ▊▊▋▄█▉▅ ▅▊ ▅▋▉██