https://bugs.winehq.org/show_bug.cgi?id=45468
--- Comment #8 from Henri Verbeet hverbeet@gmail.com --- (In reply to Andy Clayton from comment #7)
Do you think somehow WINED3D_RS_DIFFUSEMATERIALSOURCE = WINED3D_MCS_COLOR1 could be getting ignored? In the logs I see DIFFUSEMATERIALSOURCE set to COLOR1:
That sounds plausible, but the question would be why.
Based on shader_glsl_ffp_mcs() it seems like if WINED3D_MCS_COLOR1 is applied then the GLSL vertex shader would be
ffp_varying_diffuse.xyz = ffp_material.ambient.xyz * ambient + ffp_attrib_diffuse.xyz * diffuse + ffp_material.emissive.xyz; ffp_varying_diffuse.w = ffp_attrib_diffuse.w;
rather than the WINED3D_MCS_MATERIAL/ffp_material.diffuse variant being used.
Right.
passed. I did a little looking at the condition in wined3d_ffp_get_vs_settings(), but I do see a trace from wined3d_stream_info_from_declaration() which seems to say that the use_map flag FFP_DIFFUSE = 5 is getting flipped:
What does wined3d_ffp_get_vs_settings() end up setting "settings->diffuse_source" to? Is that value used correctly by shader_glsl_generate_ffp_vertex_shader()?