https://bugs.winehq.org/show_bug.cgi?id=39057
--- Comment #54 from Matteo Bruni matteo.mystral@gmail.com --- Created attachment 52920 --> https://bugs.winehq.org/attachment.cgi?id=52920 Test output on a Radeon HD 2600
I'm attaching the output of your test on my Windows XP + Radeon HD 2600. I also ran the test on Windows 7 + Nvidia GTX 970 and that matches the previous test results you got here (i.e. MaxVertexBlendMatrixIndex=8 for hardware / mixed vertex processing).
About the patch: cool stuff. Not going into the details, again, but here are some more high-level comments. Ah, BTW, these are my opinions, Henri (aka the wined3d maintainer) might disagree...
I would probably drop indexed vertex blending with plain uniforms altogether, it looks too messy and e.g. allocating extra ~1KB for modelview_matrix_location[] for each GLSL shader doesn't seem justifiable. You should probably add a separate field in d3d_info.limits for the indexed limit (and avoid touching ffp_vertex_blend_matrices) and use it where necessary. You should also report 0 (or 8, but since there is real hardware on Windows returning 0 that is okay) indexed vertex blending matrices for devices not created with the D3DCREATE_SOFTWARE_VERTEXPROCESSING flag (I think you can look that up from device->create_parms.flags). I don't think you need a static variable (or a variable at all) to store the next update_id value, unless I'm missing something.