http://bugs.winehq.org/show_bug.cgi?id=29146
Pavel Ondračka pavel.ondracka@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|EVE online: some models are |Wine should warn user when |missing |generating invalid shaders
--- Comment #5 from Pavel Ondračka pavel.ondracka@gmail.com 2012-01-29 15:04:14 CST --- Mesa has recently slightly changed behaviour, the linker is not as strict when rejecting shaders so it is up to the drivers to do what they can with invalid shaders. This is in some cases better, because some shaders that didn't worked before now work, however when the shader is actually addressing out of range constants it fails (to which the driver usually responds by creating a dummy shader and pretending nothing happened). This is really bad for debugging because when mesa is compiled without --enable-debug (majority of distros) there isn't any warning printed. and even in mesa debug build only radeon warns that there is dummy shader being created. I'll give you example how this complicates my life:
I've spend few hours trying to get Sims 3 working on computer with Intel GMA 4500HD. The game did start fine, however there was major corruption all over the place. Nothing interesting in terminal, some harmless wined3d fixmes, some audio stuff. As usual I tried some winetricks (d3d9x9 glsl-disable etc.), no luck. The Sims 3 is platinum so at that point I did suspect a driver issue. My stock mesa was 7.11 so I did compile a new one from git, still no luck. OK, so I was thinking about opening a bug report against mesa. To know if the component is i965 or mesa core I try to run it with llvmpipe. For this I had to make a trace with apitrace to be sure Wine doesn't choose another rendering path. Results: llvmpipe has the same corruption. Now I begin suspect that wine is doing something bad, so I did try that trace on another system with NVIDIA, with same results, but still no clue whats going on. Finally r300g driver prints helpfull: Too many constants:258, max:256. Creating a dummy shader instead.
Please, can there be some warning in the terminal when wine is generating those invalid shaders, so people can just look in the terminal and see whats going on? This would be really nice to have for 1.4 .