D3D Vertex Blending :: why has it not been implemented?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
scraze
Newbie
Newbie
Posts: 4
Joined: Sun Nov 01, 2009 10:37 am

D3D Vertex Blending :: why has it not been implemented?

Post by scraze »

Hi guys,

I've been wondering about the status of vertex blending in Wine. Please excuse my stumbling across terminology; I believe it requires a GL extension called ARB_VERTEX_BLEND. Just to be sure, I'm talking about an extension used to transform matrices, usually employed to animate models.

Alot of video cards do not have this extension and still can run vertex blend applications in Windows. It is as if the D3D dll's take care of emulating the extension. Stefan Dosinger seems to agree: http://www.winehq.org/pipermail/wine-de ... 62437.html

Obviously though. when I try to run the same applications under Wine, things aren't how they should be. There are multiple bugs filed under this problem, but the main bug is #6955. Here's a list of affected programs:
http://appdb.winehq.org/viewbugs.php?bug_id=6955

Note that Claudio Ciccani has even written a patch for Wine 1.1.16 and 1.1.18 almost a year ago:
http://bugs.winehq.org/show_bug.cgi?id=6955 (scroll down to patches)


However, as an end user I'm surprised to see that vertex blending still isn't functional in Wine. Surely I understand that developers are incredibly busy and have more than enough to do. But this is a problem that can be easily solved (software emulation, just like in Windows) as a patch is readily available, and it would bring the status of at least 20 games jump from garbage (unplayable) to at least Bronze, I'd say.

So what's the hold-up?

The discussions on the subject of implementation (http://www.winehq.org/pipermail/wine-de ... 62433.html and http://www.mail-archive.com/wine-devel@ ... 51674.html ) tell me that the Wine developers only want 'clean' code structures - as in, if a d3d9_X.dll should emulate the blending (?) then so should we, instead of using wined3d or other 3rd party code. Or maybe it's about not knowing for sure whether this is the correct algorithm.
But the current state for any application requesting vertex blending is pretty much garbage (unless the application has it's own fallback method) - many people would like to play games that they could if they only knew there was a patch out there.

Am I too much of an enthusiast - to remain silent and wait?

For now, I'll gladly run Ciccani's patch (although a bit modified to fit 1.1.32). It fixes a couple of games for me. I've also read (in the How to play EverQuest section, by Julio Fernandez) about people changing d3dx9_30.dll on addresses 4c6f9 through 4c6fb , but I'll stick to the patch.

I'm sure there are good reasons for what's going on, so please don't be offended - just enlighten me! I'm asking for it ;)
Thunderbird
Level 5
Level 5
Posts: 336
Joined: Mon Nov 24, 2008 8:10 am

Post by Thunderbird »

Certainly we like to offer this feature but it needs to be implemented using shaders and not in software as the proposed patch does. We need to finish our fixed function vertex implementation and add this to it. Nobody is working on that at the moment.
DaVince
Level 8
Level 8
Posts: 1099
Joined: Wed Oct 29, 2008 4:53 pm

Post by DaVince »

If it's done through shaders, will video cards not supporting actual vertex blending still be able to render it (as long as they support shaders)? Otherwise I'd love to see the software implementation added as a fallback (possibly with a disable/enable switch in winecfg).
scraze
Newbie
Newbie
Posts: 4
Joined: Sun Nov 01, 2009 10:37 am

Post by scraze »

Thanks Thunderbird, that's immediate enlightenment for me. It does pose another few questions for me: how/where has the shader been implemented in Windows - can we use that method of implementation as well? Does that happen to be the fixed function vertex implementation you're speaking of? My apologies if those questions are dumb ;]


DaVince: I completely agree with the suggestion - having a winecfg-able fallback software method surely kicks the ass of not having anything at all. Through registry instead of winecfg would be fine for me too.
Thunderbird
Level 5
Level 5
Posts: 336
Joined: Mon Nov 24, 2008 8:10 am

Post by Thunderbird »

On Windows drivers are likely emulating vertex blending as well and they might be doing that using shaders.

Further on windows there is no such thing as a fixed function replacement I think. Roughly what the fixed function pipeline would emulate 'classic GPU functionality' using shaders. The reason we would this is because some of the features old d3d versions aren't supported by opengl, so emulation shaders is better and can even be faster.
JHaleIT
Level 2
Level 2
Posts: 16
Joined: Wed Oct 12, 2011 1:50 pm

Re: D3D Vertex Blending :: why has it not been implemented?

Post by JHaleIT »

Is there any news on this yet?
JHaleIT
Level 2
Level 2
Posts: 16
Joined: Wed Oct 12, 2011 1:50 pm

Re: D3D Vertex Blending :: why has it not been implemented?

Post by JHaleIT »

The private PSU server might be up tonight or tomorrow and I want to try to get this working before it's public if it's possible?

Thank you.
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: D3D Vertex Blending :: why has it not been implemented?

Post by dimesio »

JHaleIT wrote:Is there any news on this yet?
https://bugs.winehq.org/show_bug.cgi?id=6955 is still open.
User avatar
dimesio
Moderator
Moderator
Posts: 13205
Joined: Tue Mar 25, 2008 10:30 pm

Re: D3D Vertex Blending :: why has it not been implemented?

Post by dimesio »

The questions was posted and answered on wine-devel: https://www.winehq.org/pipermail/wine-d ... 07003.html.
Locked