D3D: Implement vertex blending in drawStridedSlow

Claudio Ciccani klan at users.sf.net
Wed Jan 28 09:10:51 CST 2009


Il giorno mer, 28/01/2009 alle 12.34 +0100, Henri Verbeet ha scritto:
> 2009/1/28 Paul TBBle Hampson <Paul.Hampson at pobox.com>:
> > The only position I have on this is that this code exists and if the
> > vertex shader code exists, I am unaware of it. The last comment I
> > thought I read regarding vertex shaders was that they had produced a
> > marked speed decrease (in my thread late last year about this issue) but
> > on reflection, I may have conflated two things here.
> >
> Stefan implemented shader based fixed function vertex processing a
> while ago. It does have performance issues, but I think it should be
> possible to fix those.
> 
> > You're suggesting in effect a specialised vertex shader that can just
> > perform this matrix blending, rather than a full shader-based FFP,
> > right?
> >
> It's not quite that easy, since we need to handle stuff like lighting
> and texcoord generation as well. However, we do need shader based
> fixed function vertex processing for things like specular alpha fog,
> certain combinations of material tracking and drawing pre-transformed
> vertices. My argument is essentially that if we're going to have
> shader based fixed function vertex processing anyway, that's where we
> should implement vertex blending, not as another drawStridedSlow()
> fallback.

Why not both?
I mean, you could implement a hardware based vertex blending routine
using a vertex shader and keep the software vertex blending routine in
case vertex programs are not supported by underlying hardware.
Actually this is what the patch does: fall back to software vertex
blending when hardware vertex blending is not supported.

> 
> > If I understand, the software-only wined3d backend is dead and gone, so
> Slightly OT, but we might need to implement software shaders at some
> point, although that has a rather low priority right now. Would be
> interesting to see if we could use Mesa swrast for that.

Implementing shaders in software would be terribly slow. 
Doing vertex blending in software instead doesn't have a relevant impact
on the performance side.

Honestly I think that we have been waiting too much for a fix to this
bug. There are many games in the AppDB that could go "gold" with this
patch.

http://appdb.winehq.org/viewbugs.php?bug_id=6955







More information about the wine-devel mailing list