[Bug 39057] Support for Indexed Vertex Blending
wine-bugs at winehq.org
wine-bugs at winehq.org
Thu Nov 12 17:06:06 CST 2015
https://bugs.winehq.org/show_bug.cgi?id=39057
Matteo Bruni <matteo.mystral at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #14 from Matteo Bruni <matteo.mystral at gmail.com> ---
(In reply to swswine from comment #13)
> Thank you very much for clarification.
>
> I will get back to this and try implementing this patch through uniform
> buffer objects within a couple of weeks when I have more time.
>
> Regarding software & H/W vertex processing, the games I've seen using
> indexed vertex blending (IVB) had configuration option to choose between
> software and hardware vertex processing, but IVB was used in both modes. I
> had MaxVertexBlendMatrixIndex constantly set to 0 initially in my patched
> wined3d (updated this field setting in the patch later), this was ignored by
> these games, they used as much VB matrices they wanted without any error. So
> is it possible that at least some (or many) Windows drivers advertise 0
> matrices in H/W mode but actually support up to 256 if requested? If yes,
> should not wine d3dx9 just do the same: just support IVB with 256 matrices
> in H/W mode (and in software mode when it is in place) but advertise 0 in
> H/W mode (or let this value to be configured)?
If that's the case, yes. Notice that the game might create the device with
D3DCREATE_MIXED_VERTEXPROCESSING when the "hardware" mode is selected (you can
check that from a +d3d9 trace). Ultimately this needs tests to figure out what
exactly is supported in every vertex processing mode.
> BTW I came across similar issue with number of supported uniforms in HLSL
> shader. DX9 advertises max of 256 uniforms. I came through some games
> failing to compile HLSL vertex shader under wine due to excessive number of
> uniforms they were trying to use. I worked that around by simply increasing
> the constant for max number of uniforms in wine d3d9, it worked. Apparently
> these games work on Windows which means that Windows drivers do support
> bigger number of uniforms per HLSL shader while advertising 256. Should not
> wine do the same: advertise 256 but allow up to the limit actually supported
> by underlying GL driver?
That should only happen with the so-called "software vertex shaders" i.e.
https://msdn.microsoft.com/en-us/library/windows/desktop/bb147365%28v=vs.85%29.aspx#Software_Vertex_and_Pixel_Shaders
, which AFAIK are also only supported with SOFTWARE or MIXED vertex processing.
I think those should also be implemented via GLSL + UBOs but that's probably
quite a bit harder than the related fixed function stuff (i.e. indexed vertex
blending) in current wined3d.
Notice that I don't want to discourage you (far from it ;) and your work on
this is very much appreciated.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list