Many FPS game use stencil shadow and in game they look good, but I can use this shadows in GS
Depth pass shadow look good but clipped by camera therefore i can not use them in indoor shadow.
Depth fail works good but i can use them only in outdoor because this shadow volume always parallel to mesh
I read solution from
WIKI There is another situation where the eye may be in the shadow of a volume cast by an object behind the camera, which also has to be capped somehow to prevent a similar problem. In most common implementations, because properly capping for depth-pass can be difficult to accomplish, the depth-fail method (see below) may be licensed for these special situations. Alternatively one can give the stencil buffer a +1 bias for every shadow volume the camera is inside, though doing the detection can be slow.
I understand that you do not want lose speed of drawing shadows because detection if eye in volume can be slow, so let user defines how to draw stencil(with +1 or -1)