I’m trying to do two-sided lighting, but I’m getting these annoying artifacts on the edges (see attached picture). Apparently for these fragments gl_FrontFacing is false…?
This is zfighting at the silhouettes due to the back facing fragments winning the zbuffer evaluation, due to front back order and z fragment equality at the silhouette.
Try to increase z precision if you can, push near clip plane out and pull far clip plane in.
You could also do a two pass render, in pass one have front faces off, then in pass 2 with backfaces off you make sure you have less than or equal to instead of a less than test.