On Wed, Jan 28, 2009 at 09:46:23AM +0100, Henri Verbeet wrote:
2009/1/28 Paul TBBle Hampson Paul.Hampson@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.