http://bugs.winehq.org/show_bug.cgi?id=33446
Bug #: 33446 Summary: Left 4 Dead: Player outlines may appear distorted Product: Wine Version: 1.5.28 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: CFSworks@gmail.com Classification: Unclassified
Created attachment 44258 --> http://bugs.winehq.org/attachment.cgi?id=44258 Distorted player outlines: UseGLSL=enabled, shader detail level = very high
In Left 4 Dead, with the shader detail level set to high/very high, and UseGLSL=enabled, there is some distortion in the outlines of characters through walls.
At medium/low shader detail, the outlines appear as they should. Likewise, setting UseGLSL=disabled corrects the image, so this may be a bug in Wine's GLSL generator.
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #1 from Sam Edwards CFSworks@gmail.com 2013-04-22 17:28:31 CDT --- Created attachment 44259 --> http://bugs.winehq.org/attachment.cgi?id=44259 Very distorted player outlines - the player silhouettes are distorted, the auras are the same as before: UseGLSL=enabled, shaders at very high
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #2 from Sam Edwards CFSworks@gmail.com 2013-04-22 17:29:47 CDT --- Created attachment 44260 --> http://bugs.winehq.org/attachment.cgi?id=44260 How it's supposed to look: UseGLSL=disabled, shaders at "very high"
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #3 from Sam Edwards CFSworks@gmail.com 2013-04-22 18:12:06 CDT --- Created attachment 44262 --> http://bugs.winehq.org/attachment.cgi?id=44262 Items are affected too, but the outline is simply skewed, not distorted
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #4 from Sam Edwards CFSworks@gmail.com 2013-04-22 18:21:21 CDT --- Some more interesting information:
This appears to happen on every map. It affects items that can be picked up (weapons, healthkits, pipe bombs and molotovs, pain pills) but doesn't affect ammo cans (which have a blue outline).
The distortion always happens along the (world-space) Y axis. Staring at a character along the Y axis gives a (mostly-correct) outline, but staring at them along the X axis reveals lots of distortion. The same happens for items: see attachment 44262 - the shotgun's vertices' X and Z coordinates are the same, but the Y coordinates are getting skewed.
The distortion is affected by the viewmodel, for some reason. Changing weapons causes the outlines to shake in sync with the weapon-change animation. Setting r_drawviewmodel 0 stops this.
The player silhouettes are only distorted (as in attachment 44259) when they are culled. If the player model is not culled, the silhouette appears correctly (as in attachment 44258).
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #5 from Sam Edwards CFSworks@gmail.com 2013-04-24 02:54:28 CDT --- The bug is caused by overriding the material (in Source) to something else (e.g. the glow effect) - this can be demonstrated by "r_drawothermodels 2", which causes some models to mess up, but not others.
The affected models all have something in common: They have bones. This means that the problem is actually improper hardware skinning when a material override is active. Setting "mat_softwareskin 1" stops the distortion from happening (but does cause other artifacts).
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #6 from Sam Edwards CFSworks@gmail.com 2013-04-25 05:13:36 CDT --- Created attachment 44287 --> http://bugs.winehq.org/attachment.cgi?id=44287 d3d_shader trace for the (non-bugged) vertex shader on 'low'/'medium' detail levels
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #7 from Sam Edwards CFSworks@gmail.com 2013-04-25 05:14:07 CDT --- Created attachment 44288 --> http://bugs.winehq.org/attachment.cgi?id=44288 d3d_shader trace for the (problematic) vertex shader on 'high'/'very high' detail levels
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #8 from Sam Edwards CFSworks@gmail.com 2013-04-25 05:17:01 CDT --- I've managed to find the vertex shader causing the problem.
When the shader detail level is set to "low" or "medium", Left 4 Dead uses the vertex shader shown in attachment 44287, which produces clear results.
When the detail is set to "high" or "very high", Left 4 Dead uses the vertex shader in attachment 44288, which produces the distortion.
I'm completely certain that the shader is to blame: Using a gdb breakpoint to force the "low" shader over the "very high" one fixes the distortion.
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #9 from Sam Edwards CFSworks@gmail.com 2013-04-25 08:43:25 CDT --- Created attachment 44290 --> http://bugs.winehq.org/attachment.cgi?id=44290 The "high" shader, with register R0 changed to R3 past line 49.
This is the same GLSL shader as in attachment 44288, but after line 49, R0 is changed to R3. This allows reordering of lines 50-53.
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #10 from Sam Edwards CFSworks@gmail.com 2013-04-25 08:45:14 CDT --- Created attachment 44291 --> http://bugs.winehq.org/attachment.cgi?id=44291 How attachment 44290 compiles on NVIDIA proprietary drivers 313.18
This is attachment 44290, compiled to assembly on NVIDIA 313.18. Output generated using __GL_WriteProgramObjectAssembly=1.
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #11 from Sam Edwards CFSworks@gmail.com 2013-04-25 08:47:19 CDT --- Created attachment 44292 --> http://bugs.winehq.org/attachment.cgi?id=44292 How attachment 44290 compiles after permuting lines 50-53
http://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #12 from Sam Edwards CFSworks@gmail.com 2013-04-25 08:52:41 CDT --- After a lengthy discussion on IRC, we're now exploring the possibility that this may be a bug with the NVIDIA GLSL compiler. I'm using NVIDIA drivers 313.18 (but have seen this issue around since the late 2xx.xx series) and cannot test it on alternate hardware or drivers at the moment, so I'm not fully certain yet.
Attached are the results of an interesting experiment:
Attachment 44290 is a slightly-modified version of the "high" shader, provided for convenience. When compiled using my drivers, I get the assembly shown in attachment 44291.
Then, I permuted lines 50-53. Currently, the GLSL shader assigns to R3 in "x, y, z, w" order. However, if I merely change the order of the lines to "z, x, y, w" (move line 52 to before line 50), the shader begins to work correctly. Attachment 44292 is the result of the compilation.
https://bugs.winehq.org/show_bug.cgi?id=33446
roger@mailinator.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |roger@mailinator.com
--- Comment #13 from roger@mailinator.com --- can anyone update this?
https://bugs.winehq.org/show_bug.cgi?id=33446
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |CFSworks@gmail.com, | |winetest@luukku.com
https://bugs.winehq.org/show_bug.cgi?id=33446
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #14 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur vanilla with wine-7.10?
https://bugs.winehq.org/show_bug.cgi?id=33446
Neko-san nekoNexus@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nekoNexus@protonmail.ch
https://bugs.winehq.org/show_bug.cgi?id=33446
--- Comment #15 from joaopa jeremielapuree@yahoo.fr --- No new since more 10 years !!!! NO download available Can an administrator close this bug as ABANDONED?
https://bugs.winehq.org/show_bug.cgi?id=33446
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |ABANDONED Status|UNCONFIRMED |RESOLVED
--- Comment #16 from Gijs Vermeulen gijsvrm@gmail.com --- Marking ABANDONED, if anyone can still reproduce, feel free to reopen.
https://bugs.winehq.org/show_bug.cgi?id=33446
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #17 from Gijs Vermeulen gijsvrm@gmail.com --- Closing.