[Bug 37424] New: Path of Exile: Graphical Glitches with GLSL Disabled
https://bugs.winehq.org/show_bug.cgi?id=37424 Bug ID: 37424 Summary: Path of Exile: Graphical Glitches with GLSL Disabled Product: Wine Version: 1.7.29 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs(a)winehq.org Reporter: teddy5978(a)gmail.com Distribution: --- Created attachment 49774 --> https://bugs.winehq.org/attachment.cgi?id=49774 One example of the problem Since 1.7.1, every version of Wine including the latest as of this writing 1.7.29 (32 or 64 bit) has graphical glitches throughout the Path of Exile in-game user interface with the settings required to make the load and play without frame drops. (Wine will load Path of Exile on my test systems with Offscreen Renderer set to 'Backbuffer,' and GLSL set to 'Disabled', which is required to fix the frame drop issue reported in bug 34011.) Examples of Glitches from largest to smallest - - GUI menus and status screens on the left-hand side, such as the waypoint menu, the social screen, options screen, etc., when opened, can cause blackout of most of the gameplay area (see attached screenshot), occasionally only manifesting when mouse cursor is moved into a certain area when the menu is open -- not 100% consistent but will do this 'most of the time,' particularly when entering a new area - Textured border designs on GUI menus and status screens randomly do not display, instead showing a flickering transparent area - Corners of border design missing from logon screen Glitches consistently reproduced on different systems. Example: Ubuntu Linux 14.04 LTS 64-bit Intel Core i7-4790 8 GB DDR3 RAM Fast SSD hard drive Video Card: Nvidia GeForce GTX 750 Ti with 2GB memory Nvidia proprietary driver 337.25 (all versions including latest beta tested, no difference) Screen Resolution: 1920x1080 (1080p), Path of Exile runs in full screen mode typically, glitches show in windowed mode / virtual desktop too -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Wylda <wylda(a)volny.cz> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Version|1.7.29 |1.7.1 URL| |https://www.pathofexile.com | |/downloads/PathOfExileInsta | |ller.msi Keywords| |download, regression Component|-unknown |directx-d3d CC| |hverbeet(a)gmail.com, | |wylda(a)volny.cz Ever confirmed|0 |1 Regression SHA1| |37d1e8b79cfc2c4ca7b94758957 | |4179470a06c42 --- Comment #1 from Wylda <wylda(a)volny.cz> --- Confirming. Please always describe most reliable and easiest to reproduce issue. In this case, it is games's login menu (missing upper-left & upper-right corners). Or even better - initial "Loading..." screen should display 3 cogwheel. When this problem is present, they are missing and you can only see the "Loading...". Introduced by commit wine-1.7.0-51-g37d1e8b: commit 37d1e8b79cfc2c4ca7b947589574179470a06c42 Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Fri Aug 16 09:12:30 2013 +0200 wined3d: Try to avoid redundant constant updates. This gives a minor performance improvement. For example, in 3DMark03 Game Test 1 this gives about a 4% improvement, in the Counter Strike: Source stress test it's about 1%. (NVIDIA GF9600M, Intel T9550, 1024x768). Revert makes this problem go away. This is reproducible only if "UseGLSL"="disabled". Please note the console line: err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #2 from Wylda <wylda(a)volny.cz> --- Created attachment 49827 --> https://bugs.winehq.org/attachment.cgi?id=49827 comparison: good vs. bad -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #3 from Sovyn <teddy5978(a)gmail.com> --- @ Wylda Thanks for the info. I spent most of today trying trying to revert commit 37d1e8b79cfc2c4ca7b947589574179470a06c42 .. but the best I could do was revert it in Wine 1.7.1. For Path of Exile, we need a recent version of wine so that the slowdown on mana use bug does not rear its ugly head (See the "1.2.2 update fps drop" comment on the Path of Exile WineHQ page): https://appdb.winehq.org/objectManager.php?sClass=version&iId=25078 (basically, I go from 250 FPS to ~30 when using a skill that costs mana in-game, and when mana globe is full again, back to 250) When trying to revert against 1.7.28, unfortunately it seems to indicate that there are too many changes since this commit to revert it. Anyone come up with a patch to fix this that would apply against the latest wine? I'd be grateful. What version of wine were you using to test the revert, Wylda? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #4 from Wylda <wylda(a)volny.cz> --- I revert it on top of wine-1.7.0-51. It effectivly means wine-1.7.0-50 was the reverted version. The commit covers several files and is more then 1year old, so rather than revert, you should wait for Henri if he finds some time. In the mean time, i would stick to wine-1.7.0 for playing this game. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Henri Verbeet <hverbeet(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |stefan(a)codeweavers.com Resolution|--- |INVALID --- Comment #5 from Henri Verbeet <hverbeet(a)gmail.com> --- (In reply to Wylda from comment #1)
This is reproducible only if "UseGLSL"="disabled". Please note the console line:
err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.
I'm afraid that's also what makes this bug automatically INVALID. We keep the ARB program shader backend around because the code already exists and some people find it useful, and we try not to break it on purpose, but it's essentially up to the people using it to keep it working. That said, perhaps Stefan (CC'd) is interested in this one. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Wylda <wylda(a)volny.cz> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #6 from Wylda <wylda(a)volny.cz> --- OK, closing. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Sovyn <teddy5978(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |REOPENED Resolution|INVALID |--- --- Comment #7 from Sovyn <teddy5978(a)gmail.com> --- (In reply to Henri Verbeet from comment #5)
(In reply to Wylda from comment #1)
This is reproducible only if "UseGLSL"="disabled". Please note the console line:
err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.
I'm afraid that's also what makes this bug automatically INVALID.
We keep the ARB program shader backend around because the code already exists and some people find it useful, and we try not to break it on purpose, but it's essentially up to the people using it to keep it working. That said, perhaps Stefan (CC'd) is interested in this one.
Henri, If you are going to change the code that many users still rely upon, the code that used to work fine, can we please give a somewhat coding-ignorant person like me some idea of where the problem might be so I can make a patch to fix it? There are a LOT of Wine users that play Path of Exile and we all MUST disable GLSL in order to play end-game as the current Wine GLSL support is simply too slow to keep up even on the best desktop systems. Or perhaps the individual you mentioned, Stefan, can help? Re-opening this as it effects hundreds if not thousands of users. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #8 from Stefan Dösinger <stefan(a)codeweavers.com> --- I haven't looked at the details yet, but my guess is that the game switches between fixed function fragment processing and pixel shaders without changing any pixel shader constants at the same time. In the GLSL ffp replacement shader bump map constants are separated from pixel shader constants. In ARB they share the same global constant "namespace". Henri's patch probably doesn't trigger a constant update in this case since it is not needed in GLSL. If my theory is right the solution may be to trigger a constant reload in shader_arb_select if the previous draw did not use a pixel shader, but the current one does, or vice versa. I believe such a reload is already triggered somewhere, but I can't find it right now. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #9 from Sovyn <teddy5978(a)gmail.com> --- (In reply to Stefan Dösinger from comment #8)
I haven't looked at the details yet, but my guess is that the game switches between fixed function fragment processing and pixel shaders without changing any pixel shader constants at the same time. In the GLSL ffp replacement shader bump map constants are separated from pixel shader constants. In ARB they share the same global constant "namespace".
Henri's patch probably doesn't trigger a constant update in this case since it is not needed in GLSL. If my theory is right the solution may be to trigger a constant reload in shader_arb_select if the previous draw did not use a pixel shader, but the current one does, or vice versa. I believe such a reload is already triggered somewhere, but I can't find it right now.
I really appreciate your response Stefan and hope you have a little time to help out the Path of Exile on Wine community by taking a further look at the details. If I can help in any way, please let me know. I have also attached a short log file above (file name: log_d3d_fixme). I'm not certain the problem shows up as output in the log, but it was happening on screen four times during the log so hopefully. I did remove most of the duplicate lines and sections for easier read. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #10 from Sovyn <teddy5978(a)gmail.com> --- Created attachment 49872 --> https://bugs.winehq.org/attachment.cgi?id=49872 log file with d3d fixme errors -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #11 from Stefan Dösinger <stefan(a)codeweavers.com> --- Nothing ARB shader related in that log. If the bug is what I suspect it is I don't expect it to show up in a FIXME log. You may be able to see it in a +d3d,+d3d_shader,+d3d_draw,d3d_constants log. Check for wined3d_device_set_pixel_shader(NULL), followed by wined3d_device_set_pixel_shader(shader != NULL) calls that are not followed by "Loading constants" before the "done all GL drawing" line. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #12 from Sovyn <teddy5978(a)gmail.com> --- (In reply to Stefan Dösinger from comment #11)
Nothing ARB shader related in that log. If the bug is what I suspect it is I don't expect it to show up in a FIXME log.
You may be able to see it in a +d3d,+d3d_shader,+d3d_draw,d3d_constants log. Check for wined3d_device_set_pixel_shader(NULL), followed by wined3d_device_set_pixel_shader(shader != NULL) calls that are not followed by "Loading constants" before the "done all GL drawing" line.
Stefan, thank you for the clues. I did a log file with the switches you suggested. The output is very verbose at around 50MB output per second. There are 33000 instances of the "wined3d_device_set_pixel_shader". I did not see anything offhand with the not equal to (!=) pattern. I did look for a while but nothing is apparent as the output is very extensive as mentioned. I'm probably just too new at this. Looking at the various sections in between the "Done all gl drawing" lines, I do see some variation. Most sections do have the constants you mentioned. Could you elaborate on what the "wined3d_device_set_pixel_shader(shader != NULL)" call line would look like in an actual log? For example, the "wined3d_device_set_pixel_shader(NULL)" line you mentioned is actually expressed thus in the log: trace:d3d:wined3d_device_set_pixel_shader device 0x19a698, shader (nil). All additional guidance is welcome and appreciated. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #13 from Stefan Dösinger <stefan(a)codeweavers.com> --- It would looks something like trace:d3d:wined3d_device_set_pixel_shader device 0x19a698, shader 0xdeadbeef. I.e., the shader that is set is not NULL. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #14 from Sovyn <teddy5978(a)gmail.com> --- Created attachment 49880 --> https://bugs.winehq.org/attachment.cgi?id=49880 Section of a log @Stefan - here is a section from my log file - On line 3 - trace:d3d:wined3d_device_set_pixel_shader device 0x19a698, shader (nil). Line 126 - trace:d3d:wined3d_device_set_pixel_shader device 0x19a698, shader 0x193740. But line 210... trace:d3d_shader:shader_arb_ps_local_constants Load bumpmap consts call ok .. is that OK? Or should I keep looking. :) Wish I could somehow get a log of just the bug. Feels like fishing right now. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Roland Haeder <roland(a)mxchange.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |roland(a)mxchange.org -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #15 from Sovyn <teddy5978(a)gmail.com> --- Created attachment 49884 --> https://bugs.winehq.org/attachment.cgi?id=49884 Transparent life bar Another way this bug manifests itself is that when you are in a party with another player, you often cannot see their life bar to see if they are dead or alive or somewhere in between. It tends to fake some people out and they think the player is dead when in fact this is simply a graphical bug in beta versions of Wine. (Latest stable 1.6.2 is unaffected) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 --- Comment #16 from Stefan Dösinger <stefan(a)codeweavers.com> --- Created attachment 49974 --> https://bugs.winehq.org/attachment.cgi?id=49974 wined3d: Update fragment program constants when switching from arb ffp draws. Can you give this patch a try? It fixes the corners on the login screen for me. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Sovyn <teddy5978(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED --- Comment #17 from Sovyn <teddy5978(a)gmail.com> --- Stefan, You're the best! It's fixed. Changing status of this bug to resolved. Notes for others - I applied Stefan's patch against 1.7.31 and compiled then removed old wine version from system with Synaptic then installed the patched 1.7.31 ('sudo make install' from compile directory). Fix did not work with old wine installed on system and trying to use patched version under PlayOnLinux, for example. But you can use with PlayOnLinux just choose 'System' as wine version to use. Hopefully this patch makes it into the next version of Wine. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Michael Stefaniuc <mstefani(a)redhat.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |mstefani(a)redhat.com Resolution|FIXED |--- --- Comment #18 from Michael Stefaniuc <mstefani(a)redhat.com> --- Reopening the bug as it should be marked resolved only after the patch makes it in. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Sovyn <teddy5978(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED --- Comment #19 from Sovyn <teddy5978(a)gmail.com> --- Fixed in Wine 1.7.32 Thanks Stefan! Marking Resolved - fixed. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Bruno Jesus <00cpxxx(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |7b5bf3d4d65935cd8d4deb2ddff | |ff10e7f4358bf -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=37424 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #20 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 1.7.33. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
wine-bugs@winehq.org