userFelixcancel
branchrust_reboot/main/indirect_instancingcancel

310 Commits over 335 Days - 0.04cph!

Yesterday
Check for valid material before submitting a draw call
Yesterday
Fix objects in motion failing to move properly after disconnecting/reconnecting (it was a pooling issue)
3 Days Ago
Fix chandelier chain not scaling (stretching) correctly with Indirect Instancing
3 Days Ago
Prevent unit cube bounds by always requiring at least one valid mesh for all LODComponents
3 Days Ago
Check textures for null in ApplyMipLevels()
3 Days Ago
* Store local bounds so that new world bounds can be derived when an instance moves * Emit a warning when a unit cube is assumed for bounds * Don't actually try calculating worldBounds for Unity, it gets really messy when things move around * Use the new local bounds for the debug overlay as well * Add some null checks in MotionList * Add BroadcastTransformUpdate() to force-update the instance transform regardless of motion state
4 Days Ago
Add the ability to mark ConVars as "DeveloperOnly" (for graphics debugging stuff)
4 Days Ago
Set minimum mip level instead of requested mip level to avoid overwriting results of Unity's streaming system.
5 Days Ago
Remove leftover debug message from ElectricWindmill
5 Days Ago
Gate some Indirect Instancing ConVars behind ClientAdmin rather than DEBUG.
6 Days Ago
CodeGen
6 Days Ago
Ensure once again that Indirect Instancing is disabled by default and advanced debug ConVars are only available in debug builds.
6 Days Ago
Rebase on /main
9 Days Ago
Fixed initial door states after load by finalising the transform on StopMotion()
9 Days Ago
Fix server build
9 Days Ago
Remove IBatchingToggle from InstancedLODComponent
9 Days Ago
Fix electric windmill animation
9 Days Ago
Fix wind turbine animation by assuming perpetual motion when there is an active animator.
9 Days Ago
Don't use `cachedTransform` for instancing. Fixes misplaced condional models, wind turbine nacelles and probably many other "slightly offset" bugs.
11 Days 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 Days Ago
Set default execution order of InvokeHandler to (hopefully) work with Indirect Instancing
11 Days Ago
Rebase on /main
31 Days Ago
Disable terrain culling by default
31 Days Ago
Add `indirect_instancing.use_instance_mask` for in-build debugging purposes
31 Days 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
35 Days 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.
36 Days Ago
Fix floating point overlow in mip level calculation
36 Days Ago
More debugging ConVars
36 Days Ago
- Clean up texture streaming jobs - Fix wrong camera position in Streaming_FallbackSquaredDistanceJob - Add various debugging ConVars - Add "Indirect Instancing" UI Indicator
37 Days Ago
Experimental frame synchronisation ConVars
37 Days Ago
Fix monster mesh rendering issue
38 Days Ago
Re-apply CodeGen
38 Days Ago
Reset some CodeGen to their state on /main
38 Days Ago
CodeGen
38 Days Ago
Rebase on /main
38 Days Ago
Rebase on /main
38 Days 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
39 Days Ago
un-gate indirect instancing for testing purposes
39 Days Ago
Fix build by scrapping the function pointer idea.
40 Days Ago
Fix typo
40 Days 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
43 Days 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`
44 Days 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.
44 Days Ago
Some cleanups
44 Days Ago
Fix burst compile issues by bringing back `DamageRegion` struct
45 Days Ago
Jobify the damage region scanning for instance data
46 Days Ago
First implementation of hybrid monster meshes
46 Days Ago
Merge from /indirect_instancing/layers
47 Days Ago
Slightly optimise command reordering