https://bugs.winehq.org/show_bug.cgi?id=39057
Bug ID: 39057 Summary: Support for Indexed Vertex Blending Product: Wine Version: 1.7.47 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: swswine@gmail.com Distribution: ---
Created attachment 52025 --> https://bugs.winehq.org/attachment.cgi?id=52025 Patch to implement indexed vertex blending support
Vertex blending support has been added recently (https://bugs.winehq.org/show_bug.cgi?id=6955 was closed). But indexed vertex blending is not supported yet.
I've implemented rather straightforward patch to do it which works for me, it is attached. Though I am far not familiar with wined3d development and not quite sure that my patch is complete and does not have any caveats.
A potential caveat with this patch is the following. Besides using indexes in vertex shaders, a big enough number of supported vertex blend matrices is required to really support this Direct3D feature. It was 4 in 1.7.47, I changed to 128 using the same framework developed in 1.7.47. It may potentially fail on some graphic cards due to large number of uniforms in vertex shader generated. Besides the transfer of those uniforms may probably be optimized not to call glUniformMatrix for every matrix when only one or few has changed.