So, I've finally found some times to do experiments with geometry shaders. I've only tested it on notebook GPU - where it performs ... well - at least for notebook GPU. I can run sponza with stencil shadow volumes (single light).
On desktop I added some static objects to get around like 1M triangles and it still ran fine (at maximal fps). Then I got bored of adding objects .
So basically I can get sharp shadows using shadow volumes right now. Soft ones can be done through post-processing right now. I'm also going to try penumbra wedges some other day too. I though don't think I'll be able to optimize these further (of course apart of using level-of-detail techniques and such), and I just don't want to accept using lower resolution meshes for shadows.
So far we need to try this in some more serious game environment - so that we'll be able to decide whether we're going to use shadow volumes or not (or at least give user the option to turn them on).
And at last few words why we're working on shadow volumes right now - we would like to achieve more real soft shadows (like penumbra wedges give), because PCSS and such techniques on shadow maps have so many artifacts (while shadow volumes don't). The most problematic part here is performance, because the volumes are quite heavy for fillrate (and our scenes are already fillrate-heavy, so we've got some heavy optimizations running there (like frustum & occlusion culling inside BVHs, etc.).
The second thing is shadow map limitation for scene size. This problem although isn't that big one, simply because we can use cascaded shadow maps. But there are problems with micro-geometry not casting shadows (we'd of course like to show shadows for micro-geometry - rendered only for near objects of course).
I hope to write again in few days with some more useful scene (and pictures finally) + running penumbra wedge, and some numbers on performance.