It's all at one depth (depth buffer is disabled as well), but that's an interesting idea. I feel that may be as slow as convolution though being at the pixel level. I'm going to see if I can apply that at the vertex level somehow.
Are you drawing geometry at different depth levels? If yes, you can create extra postprocess step which would compare depth of nearby pixels, and if any of them differs from current depth, then it should be an edge.
Thanks for the input