userFelixcancel
reporust_rebootcancel

588 Commits over 426 Days - 0.06cph!

2 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.
2 Months Ago
Fix floating point overlow in mip level calculation
2 Months Ago
More debugging ConVars
2 Months Ago
- Clean up texture streaming jobs - Fix wrong camera position in Streaming_FallbackSquaredDistanceJob - Add various debugging ConVars - Add "Indirect Instancing" UI Indicator
2 Months Ago
Experimental frame synchronisation ConVars
2 Months Ago
Fix monster mesh rendering issue
2 Months Ago
Re-apply CodeGen
2 Months Ago
Reset some CodeGen to their state on /main
2 Months Ago
CodeGen
2 Months Ago
Rebase on /main
2 Months Ago
Rebase on /main
2 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
2 Months Ago
un-gate indirect instancing for testing purposes
2 Months Ago
Fix build by scrapping the function pointer idea.
2 Months Ago
Fix typo
2 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
2 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`
2 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.
2 Months Ago
Some cleanups
2 Months Ago
Fix burst compile issues by bringing back `DamageRegion` struct
2 Months Ago
Jobify the damage region scanning for instance data
2 Months Ago
First implementation of hybrid monster meshes
2 Months Ago
Merge from /indirect_instancing/layers
2 Months Ago
Slightly optimise command reordering
2 Months Ago
Jobified instance reordering
2 Months Ago
▅▇▅▊█▋▉▌ ▆▌▄██▇▌▇ ▍▆▄▊█▍▍▉▍▉ ▌▅▆▉▇▌█ █▆ ▆█▋▄▇ ▍▍▊▊▋▄ ▍▊▅▄▄
3 Months Ago
Merge bitmapped_damage_tracking → indirect_instancing
3 Months Ago
Implement bitmapped damage tracking
3 Months Ago
Rebase on current /indirect_instancing
3 Months Ago
Clean up some failed experiments
3 Months Ago
Fix nothing rendering for real this time.
3 Months Ago
Fix nothing actually rendering with new Graphics.DrawMeshInstancedIndirect based draw call submission
3 Months Ago
Fix NRE in Indirect Instancing debug overlay
3 Months Ago
Add agressive optimisation attributes to the hot path of Indirect Instancing.
3 Months Ago
Rebase on /main (save 271)
3 Months Ago
Regenerate ConVars and force bounds to be always huge (experiment)
3 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.
3 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.
3 Months Ago
Add more debug output to the indirect_instancing.debug overlay
3 Months Ago
Add new SIMD terrain culling implementation (WIP) providing ~3x speedup (up to 30x in certain cases)
3 Months Ago
Only allow StartMotion() when IsDynamic is set
3 Months Ago
Rebase on /main
3 Months Ago
Speed up motion list execution 30x by caching matrices and checking them for changes.
3 Months Ago
Rebase on /main
3 Months Ago
Rebase on /main
3 Months Ago
Regenerate ConsoleSystem.cs
3 Months Ago
Regenerate ConsoleSystem.cs
3 Months Ago
Merge other fixes from /indirect_instancing
3 Months Ago
Rebase on /main
3 Months Ago
Merge build fix from /indirect_instancing_fixes