The whole problem has nothing to do with 16 or 32 bit fp. You can even do ssao with 32bit rgba if you encode the depthmap.

You have to do a simple depthtest and check if a blurred part of the depthmap intersects with a "far away" part of the depthmap. If this is the case you simply don't apply ssao. And there you go: The black line are gone.
Now creating the code for all this is not quite as easy, but basically that's what you have to do smile


Shade-C EVO Lite-C Shader Framework