userFelixcancel
branchrust_reboot/main/indirect_instancingcancel

442 Commits over 669 Days - 0.03cph!

11 Months Ago
Don't use `cachedTransform` for instancing. Fixes misplaced condional models, wind turbine nacelles and probably many other "slightly offset" bugs.
11 Months Ago
Use a better way to toggle objects in motion. This fixes "stuck" objects and the initial state of doors but currently breaks everything else that is not a door.
11 Months Ago
Set default execution order of InvokeHandler to (hopefully) work with Indirect Instancing
11 Months Ago
Rebase on /main
12 Months Ago
Disable terrain culling by default
12 Months Ago
12 Months Ago
Add `indirect_instancing.use_instance_mask` for in-build debugging purposes
12 Months Ago
- Fix inaccuracies in terrain culling raycast - Fix terrain culling issues around terrain holes - Add generic SIMD vector types `float8x3` and `int8x3` for terrain culling and future use - Make the first culling layer (LOD/Distance) respect the instance occupation mask - Add `terrain.debug` command to visualise how the culling system sees the terrain height map - Fine tune `tc_max_iterations` to 512
12 Months Ago
- Fix random low res mip levels by using NativeParallelMultiHashMap instead of FixedList to avoid running out of space. - Fix dropping off-screen instances to low res mip levels by considering all instances for mip level calculations instead of just culling surviors. The old off-screen behavior can be examined by setting `indirect_instancing.streaming_use_all_instances 0`. - Mitigate dropping Unity renderers to low res mip levels when Unity's and Indirect Instancing streaming systems disagree by calling ClearRequestedMipmapLevel() when we have determined mip 7.
12 Months Ago
Fix floating point overlow in mip level calculation
12 Months Ago
More debugging ConVars
12 Months Ago
- Clean up texture streaming jobs - Fix wrong camera position in Streaming_FallbackSquaredDistanceJob - Add various debugging ConVars - Add "Indirect Instancing" UI Indicator
12 Months Ago
Experimental frame synchronisation ConVars
12 Months Ago
Fix monster mesh rendering issue
1 Year Ago
Re-apply CodeGen
1 Year Ago
Reset some CodeGen to their state on /main
1 Year Ago
CodeGen
1 Year Ago
Rebase on /main
1 Year Ago
Rebase on /main
1 Year Ago
- Create buffers with correct flags according to `buffer_upload_mode` - Set default buffer upload mode to be "indirect" (1) - Disallow changing `buffer_upload_mode` during gameplay
1 Year Ago
un-gate indirect instancing for testing purposes
1 Year Ago
Fix build by scrapping the function pointer idea.
1 Year Ago
Fix typo
1 Year Ago
- Fix rendering issues due to various jobs executing for command indices that are no longer in use. - Fix broken debug draw when damage region bitscan job is active. - Split `surviving_command_counts` into `command_counts_after_culling` and `command_counts_after_reordering` for clarity. - Create a universal IsCallVisible() function instead of the mess we had before
1 Year Ago
- Rewrite the buffer update logic to ensure a direct update only happens once per frame to make DX11 happy. - Always update the entire buffer to make greedy GPU drivers happy. - Add IGraphicsBuffer wrapper because Unity didn't do it so I can finally stop copy/pasting everything. - Use a function pointer (👻) in damage region processing for similar reasions. - Unlock the arrays in Update in case OnPreCull wasn't called. - New debugging ConVars: `reorder_instances_job`, `damage_bitscan_job` and `buffer_upload_mode`
1 Year Ago
A whole marathon of Indirect Instancing changes: - Schedule all jobs at the beginning of LateUpdate() for better worker utilisation. - Further improve scheduling behavior by modeling actual dependencies between jobs using writes_to_* and reads_from_* handles. - Allow instance reordering and command aggregation to run in paralell to give even more flexibility to the scheduler. - Run the debug overlay (where possible) in parallel with the jobs to improve performance - Avoid garbage allocation when scheduling the frustum culling job. (GeometryUtility.CalculateFrustumPlanes) - Schedule all jobs using ScheduleByRef. - Correctly set `[ReadOnly]` and `readonly` for all jobs to help Burst as much as possible. - Make batch size tunable: `indirect_instancing.batches_per_worker` - Add somewhat automatic instrumentation to CrudeProfiler via `using` statements. - Add ProfilerMarker to mimic what Unity 6 is doing with `using` statements. (Still need to verify it this compiles out properly.) - Add more profiler instrumentation. - Rename a ton of things for clarity. - Remove CommandBuffer. We won't need it where we're going.
1 Year Ago
Some cleanups
1 Year Ago
Fix burst compile issues by bringing back `DamageRegion` struct
1 Year Ago
Jobify the damage region scanning for instance data
1 Year Ago
First implementation of hybrid monster meshes
1 Year Ago
Merge from /indirect_instancing/layers
1 Year Ago
Slightly optimise command reordering
1 Year Ago
Jobified instance reordering
1 Year Ago
Merge bitmapped_damage_tracking → indirect_instancing
1 Year Ago
Clean up some failed experiments
1 Year Ago
Fix nothing rendering for real this time.
1 Year Ago
Fix nothing actually rendering with new Graphics.DrawMeshInstancedIndirect based draw call submission
1 Year Ago
Fix NRE in Indirect Instancing debug overlay
1 Year Ago
Add agressive optimisation attributes to the hot path of Indirect Instancing.
1 Year Ago
Rebase on /main (save 271)
1 Year Ago
Regenerate ConVars and force bounds to be always huge (experiment)
1 Year Ago
Add a third submission mode to indirect instancing which works through `Graphics.DrawMeshInstancedIndirect` and avoids copying to a command buffer. Enable `indirect_instancing.command_buffer` to switch back to the old way.
1 Year Ago
Finalise SIMD terrain culling implementation: - Fix oscillation/flicker bug by tracking individual ray progress properly. - Adjust step size dynamically with altitude to reduce iterations. - Limit overall iterations to ConVar `indirect_instancing.tc_max_iterations`. - Ignore rays to instances that have been culled in a previous step.
1 Year Ago
Add more debug output to the indirect_instancing.debug overlay
1 Year Ago
Add new SIMD terrain culling implementation (WIP) providing ~3x speedup (up to 30x in certain cases)
1 Year Ago
Only allow StartMotion() when IsDynamic is set
1 Year Ago
Rebase on /main
1 Year Ago
Speed up motion list execution 30x by caching matrices and checking them for changes.
1 Year Ago
Rebase on /main
1 Year Ago
Rebase on /main