D3D: Implement vertex blending in drawStridedSlow

Paul TBBle Hampson Paul.Hampson at Pobox.com
Wed Jan 28 05:08:11 CST 2009


On Wed, Jan 28, 2009 at 09:46:23AM +0100, Henri Verbeet wrote:
> 2009/1/28 Paul TBBle Hampson <Paul.Hampson at pobox.com>:
>> On Mon, Jan 26, 2009 at 12:19:32PM +0100, Henri Verbeet wrote:
>>> Sure, but so does just faking the device caps.

>> I don't see that as having a chance of making it into the Wine tree.

> Indeed. However, it does mean that an important part of this patch
> isn't used by those applications, which makes them unsuitable for
> testing.

Indeed. I probably should have been clearer about that:

It _happens_ to fix rendering in certain games, one of which I happen to
be the AppDB maintainer for. The original bug report the patch's
associated with is for a game that actually _uses_ vertex blending,
which I have not tested, but others in this thread have. (Conveniently,
there's a demo available)

>> This patch, on the other hand, isn't actually a nasty case-specific
>> hack.

> It isn't, but I've yet to hear a reason why it's a better approach
> than using vertex shaders. (And neither has the author adressed my
> comment about the bitfield).

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.

You're suggesting in effect a specialised vertex shader that can just
perform this matrix blending, rather than a full shader-based FFP,
right?

I'd have a poke at that. So far I've not had any luck wrapping my head
around that side of wined3d, as the time I've spent looking at this has
been under the assumption (based on the TODOs in the code) that the
correct solution is to implement this in drawStridedSlow.

If I understand, the software-only wined3d backend is dead and gone, so
doing this with vertex shaders would just involve taking alternate paths
in most of the places that check/use ARB_Vertex_Blend, and providing the
blend matrices to a vertex shader which the current FFP implementation
would feed into? (Or something like that... My lack of knowledge is
quite visible here, I suspect)

Any pointers or hints would be appreciated.

-- 
-----------------------------------------------------------
Paul "TBBle" Hampson, B.Sc, LPI, MCSE
Very-later-year Asian Studies student, ANU
The Boss, Bubblesworth Pty Ltd (ABN: 51 095 284 361)
Paul.Hampson at Pobox.com

Of course Pacman didn't influence us as kids. If it did,
we'd be running around in darkened rooms, popping pills and
listening to repetitive music.
 -- Kristian Wilson, Nintendo, Inc, 1989

License: http://creativecommons.org/licenses/by/2.5/au/
-----------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20090128/00cc835e/attachment.pgp 


More information about the wine-devel mailing list