userFelixcancel
branchrust_reboot/main/indirect_instancingcancel

426 Commits over 516 Days - 0.03cph!

9 Months Ago
Fix monster mesh rendering issue
9 Months Ago
Re-apply CodeGen
9 Months Ago
Reset some CodeGen to their state on /main
9 Months Ago
CodeGen
9 Months Ago
Rebase on /main
9 Months Ago
Rebase on /main
9 Months 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
9 Months Ago
un-gate indirect instancing for testing purposes
9 Months Ago
Fix build by scrapping the function pointer idea.
9 Months Ago
Fix typo
9 Months 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
9 Months 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`
9 Months 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.
9 Months Ago
Some cleanups
9 Months Ago
Fix burst compile issues by bringing back `DamageRegion` struct
9 Months Ago
Jobify the damage region scanning for instance data
9 Months Ago
First implementation of hybrid monster meshes
9 Months Ago
Merge from /indirect_instancing/layers
9 Months Ago
Slightly optimise command reordering
9 Months Ago
Jobified instance reordering
9 Months Ago
Merge bitmapped_damage_tracking → indirect_instancing
9 Months Ago
Clean up some failed experiments
9 Months Ago
Fix nothing rendering for real this time.
9 Months Ago
Fix nothing actually rendering with new Graphics.DrawMeshInstancedIndirect based draw call submission
9 Months Ago
Fix NRE in Indirect Instancing debug overlay
9 Months Ago
Add agressive optimisation attributes to the hot path of Indirect Instancing.
9 Months Ago
Rebase on /main (save 271)
9 Months Ago
Regenerate ConVars and force bounds to be always huge (experiment)
9 Months 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.
9 Months 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.
9 Months Ago
Add more debug output to the indirect_instancing.debug overlay
9 Months Ago
Add new SIMD terrain culling implementation (WIP) providing ~3x speedup (up to 30x in certain cases)
9 Months Ago
Only allow StartMotion() when IsDynamic is set
10 Months Ago
Rebase on /main
10 Months Ago
Speed up motion list execution 30x by caching matrices and checking them for changes.
10 Months Ago
Rebase on /main
10 Months Ago
Rebase on /main
10 Months Ago
Regenerate ConsoleSystem.cs
10 Months Ago
Rebase on /main
10 Months Ago
Remove merging of damaged regions as the sorting and merging was taking more time than it saved in some situations. If frequent buffer updates continue to be a problem, /indirect_instancing/bitmapped_damage_tracking should fix that.
10 Months Ago
Only run terrain culling when it's actually worth it (when camera is above some but not all terrain)
10 Months Ago
Fixed node visuals not chaning while harvesting them
10 Months Ago
Rebase on /main 🤞🏻
10 Months Ago
Rebase on /main
10 Months Ago
- Don't perform `graphics.aggressiveshadowlod` optimisation on shadow proxies. - Only respect `indirect_instancing.shadows` when Indirect Instancing is enabled.
10 Months Ago
Force disable HLOD while Indirect Instancing is enabled
10 Months Ago
Rebase on /main
10 Months Ago
Remove unused compute shader from indirect instancing
10 Months Ago
Fix indirect instancing tools never actually applying material changes. (Again, because I love Plastic but it doesn't love me back)
10 Months Ago
Remove Standard+Wind from the list of supported shaders for indirect instancing as it caused some foliage to be rendered white.