As you can see the depth-values are not interpolated correctly. On long edges there is a round curve in the shadow. Is this because I don't divide correctly? The big white circle is supposed to be a point-light.

I once optimized 2d point light system and I noticed that easiest and fastest way to do it for many point light was to render all blockers to big single channel fbo. Then I calculated all shadow maps at once to (point lights x shadow map width) size fbo using screenspace raytracing. At that point drawing lights was really fast and shadow test was single texture lookup. Scene was always rendered just two times no matter how many lights was in scene. This way I could easily do 8k shadowed point lights in realtime(>60fps).(My laptop max texture width)