Created attachment 41971 [details]
I noticed some strange rendering artifacts when having GLSL enabled in wine. Going to attach some screenshots showing these errors.
Intel Corporation Arrandale Integrated Graphics Controller
libdrm, mesa and xf86-video-intel git master
These screenshots were done using the 'FEAR demo' with wine-1.3.11
The demo can be found here:
You can also see some screenshots which show transparency/sprite rendering errors. These also disappear when disabling GLSL, so maybe these two artifact types are related.
Created attachment 41972 [details]
Created attachment 41973 [details]
Created attachment 41974 [details]
Created attachment 41975 [details]
I forgot to mention that this is i965 classic. I couldn't get wine working with i965 gallium, it instantly crashes.
However I somehow managed to get into the game with the gallium software renderer. The crawling pixel groups disappear then, however I get different rendering errors (however most likely related to volumetric lighting and shadow volume rendering). The classic software renderer also somehow works, at least it doesn't show the errors I described.
The errors are also more apparent when seeing them in motion (then the 'crawling' becomes visible).
Yeah, never use the intel gallium drivers.
Interesting bug report, I'm grabbing a copy of the demo to see what's going on in the shader compile.
Disabling compute_to_mrf() in brw_fs.c cleans up some of the artifacts.
Thanks Eric for looking into this. I really appreciate it, since debugging such an issue with the wined3d layer in-between is kind of hard.
What do you mean by disabling? Letting the function exit early? I'd like to test and see the changes to the rendering myself.
Just wanted to say that after the recent change in compute_to_mrf() I rechecked, but the artifacts are still crawling.
I noticed that the same artifacts are also present in Max Payne 2.
You can download the demo here:
Important is to switch 'pixel shader skins' on in the launcher options. I think debugging this one is easier since MP2 doesn't use a lot of pixel shaders. Normally it uses two fullscreen shaders. One for bullet-time (sepia effect) and one for the flashback sequences. Enabling 'pixel shader skins' should give you one more.
The artifacts are limited to the player (and NPC models).
Start the game with
wine MaxPayne2Demo.exe -developer -developerkeys
Then you can use F3 to move the camera around freely.
I just tried out what Eric said in comment #7 and comment out the compute_to_mrf call in brw_wm_fs_emit.
This removes _all_ crawling artifacts in FEAR, at least I can't see a single one anymore. The transparency problems of the windows (and smoke) and the sky problems still hold though.
However removing the compute_to_mrf pass doesn't eliminate all problems in Max Payne 2. The artifacts are much less frequent though and only appear when the camera has a certain distance from the model, where the shader is applied to. When moving close to the model the artifacts disappear.
Reconfirming with latest mesa git master (08d1c91e6c185a186e49189b7ed48629f35a4659)
Looks fixed in recent git master.