https://bugs.winehq.org/show_bug.cgi?id=43761
--- Comment #8 from zefkerr zefkerrigan@gmail.com --- (In reply to Michael Müller from comment #6)
Can you add your full glxinfo output as attachment? For me it seems like a driver bug. The interesting part from the log is:
fixme:d3d_shader:print_glsl_info_log Info log received from GLSL shader #241: fixme:d3d_shader:print_glsl_info_log error: definitions of interface block `shader_in_out' do not match
The reason for the difference is:
vertex shader:
out shader_in_out { vec4 reg0; vec4 reg1; vec4 reg2; vec4 reg3; [...]
pixel shader:
in shader_in_out { vec4 reg0; centroid vec4 reg1; centroid vec4 reg2; centroid vec4 reg3; [...]
This should be valid though according to the GLSL 4.4 spec: https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.40.pdf
The statement on page 50 says:
For this interface, the last active shader stage output variables and fragment shader input variables of the same name must match in type and qualification, with a few exceptions: The storage qualifiers must, of course, differ (one is in and one is out). Also, interpolation qualification (e.g., flat) and auxiliary qualification (e.g. centroid) may differ. These mismatches are allowed between any pair of stages. When interpolation or auxiliary qualifiers do not match, those provided in the fragment shader supersede those provided in previous stages.
The excerpt explicitly states that the auxiliary qualifier centroid can differ. Unless you manually told Mesa to fake a GLSL version of 4.4 or newer, this is a bug in their driver. Try to update Mesa to a more recent version, otherwise you will need to report a bug in their bug tracker.
Why is there no such problem on Wine Staging 2.16, but it appears if the only thing I do is update Wine Staging to version 2.17?