Wow that's great performance! Can I get one insight on that? Do you use shaders to render the shadows or do you use geometry? I am guessing geometry because that is generally more performant. I look forward to what you come up with in the future
New system use only shaders. Basic algorithm is simple.
1. Calculate bounding box of all lights that contribute to screen.(might be bigger thab screen)
2. Render all occluders that are inside of that bounding box to fbo that is fitted to that bounding box.
3. Calculate 1d shadow maps for all lights using just single pass.
4. Render all lights to fbo. Optimal solution is using vertex shader fetch to save fill rate when light is shadowed. Can use pixel also shader for penumbras. Possible to use normal maps there too.
5. Horizontal separated gaussian blurs pass.
6. Vertical separated gaussian blurs pass.
7. Blend over scene.
There are quite many performance knobs. Occluder texture can be smaller size and use low bandwith texture. Only 1bit is actually needed(but no such render targets exist). Light fbo can be also quite low resolution. Shadow map resolution is quiet important. This 1d texture direclty affect number of raycast for shadow map generation and number of vertices per point light if vertex fetch is used.