branchrust_reboot/main/render_pipeline_testing/depth_based_light_binningcancel
12 Commits over 0 Days - Infinitycph!
Added support for changing the number of depth bins per tile via the rendering debugger
Merge from render_pipeline_testing
Setting the default number of depth bins to 16 per-tile
Moved the property gathering for lights to a job that runs before the binning jobs
Removed branching on spot light code for calculating the cone based on the light type
Added a bin sphere collision check against spot light cones to further reduce the number of lights per bin
Added sphere to bin AABB collision checks to reduce the number of lights per-bin further
Updated the Light binning debug overlay to display the total number of lights processed per screen tile rather than per-bin
Changed to per-camera bin data buffers so the light binning job can be completed just before rendering
- Changed the LightBinningJob to only process depth bins within the screen tile that a light occupies to reduce the overhead of the job significantly
- Aligned depth bins for each tile within memory so that they are within the same cache lines and produce more cache hits when sampling the depth bin on the shader side
Converted the light bins into bitmasks that contain light indices to reduce the overall memory overhead of light binning
Initial light depth binning implementation