An other possibility would be to send in only the necessary block positions for a certain area if you don´t do so already.

Yes, that's what I do. I have up to 100 corners and 100 blocks/ objects and one loop that checks which corners are in the lightrange (with some optimizations including regions to disable shadows in close-by corridors). Then up to 10 active corners and 10 blocks are sent to the shader.

"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends