Original Post
Hello,
Just tested our deferred shadows on G70 hardware (7800) and we got very terrible performance. Our shadows do several full screen passes with screen space quads that are placed on the correct post-prespective Z coordinates to enclose some specific depth range of pixels to apply shadow to them. So, G70 has no Early-Z / Early-Stencil and Z-Cull is off, since our scene contains a lot of alpha-tested geometry.
So, what can be done to optimize that case - we do have already built depth buffer, and want to render several full screen quads on top of it - we rely on the fact, that newer hardware can kill PS() execution based on depth / stencil and now that is not present on G70.
Dynamic branching?
An option is to pack all shadow map full-screen passes into single one, to optimize the rendering - but this is a bit limiting and still will give performance loss when the shader touches the sky (deferred shadow will generate distant positions, that will generate in turn distant shadow map texture coordinates, which ones even clipped slow down the rendering).
So, any ideas?
Anybody with successful implementation of deferred shadow maps on G70 hardware?
(cross-posted on DXDev mailing list)
Just tested our deferred shadows on G70 hardware (7800) and we got very terrible performance. Our shadows do several full screen passes with screen space quads that are placed on the correct post-prespective Z coordinates to enclose some specific depth range of pixels to apply shadow to them. So, G70 has no Early-Z / Early-Stencil and Z-Cull is off, since our scene contains a lot of alpha-tested geometry.
So, what can be done to optimize that case - we do have already built depth buffer, and want to render several full screen quads on top of it - we rely on the fact, that newer hardware can kill PS() execution based on depth / stencil and now that is not present on G70.
Dynamic branching?
An option is to pack all shadow map full-screen passes into single one, to optimize the rendering - but this is a bit limiting and still will give performance loss when the shader touches the sky (deferred shadow will generate distant positions, that will generate in turn distant shadow map texture coordinates, which ones even clipped slow down the rendering).
So, any ideas?
Anybody with successful implementation of deferred shadow maps on G70 hardware?
(cross-posted on DXDev mailing list)