https://bugs.winehq.org/show_bug.cgi?id=55061
Bug ID: 55061 Summary: Starcraft Remastered: blurry graphics / low resolution Product: Wine-staging Version: 8.10 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: zculek@gmail.com CC: leslie_alistair@hotmail.com, z.figura12@gmail.com Distribution: ---
Graphics in Stacraft Remastered is blurry (like it's running in low resolution or something like that) when running on Wine versions >5.6 - I'm attaching screenshots so it's better understandable and visible. This is true for both wine-staging and wine.
In the screenshots, you can see how e.g. the main menu and it's fonts, user ID in the uper right corner, etc. look blurry when compared to Windows or running on Wine versions prior this bug was introduced (e.g wine-staging 5.6 and lower). Also, the in game graphics is also blurry when compared to Windows or running on Wine versions prior this bug was introduced - everything looks much sharper and nicer when running on wine-staging 5.6 or Windows.
I haven't reported this earlier, because everything was running fine for me on 5.6 and whenever I would try some newer version and saw this is still happening, I would just return to using 5.6. But, after a recent Battle.net update, Battle.net app won't start any more, just crashes due to some dll libraries issues, on any 5.x version (both staging and upstream).
So, the last properly working Wine version for me was 5.6. I've tried with multiple other versions over time in 5.x, 6.x, 7.x and 8.x branches and this issue was always present. I've also tested 8.9 and 8.10 recently, and the issue is still there.
Also, not sure if it's related, but 5.6 was also the last version on which Real Time Lighting option in Starcraft Remastered worked for me (which is also one of the reasons I was sticking to that version for years).
The same thing is happening on Debian with Cinnamon and Mint with Cinnamon (doubt it's OS related, but mentioning it any way). With version 5.6 I had it properly working on both Debian and Mint, one with nVidia GPU, the other with AMD GPU.
I know a lot of other people from SC community that have this same problem and are/were thus using wine-staging 5.6.
In my search of solution, I stumbled upon this user report, which I don't see how it could be related, but perhaps someone here might get the idea of what the actuall issue is (or maybe it's totally unrelated): https://www.reddit.com/r/wine_gaming/comments/t5hmmi/starcraft_remastered_lo...
"I switched the DE to use Wayland instead of X11 and now the game is running in the correct resolution. Hope this helps someone."
Unfortunatelly, using Wayland on Cinnamon is pretty complicated and I'm unable to test that.
Steps to reproduce are: 1. Install wine-staging version >5.6 (e.g. 5.19, 7.8, 8.9, 8.10) 2. Install Battle.net desktop app - https://www.blizzard.com/download/confirmation?product=bnetdesk 4. Start Battle.net desktop app, login. 5. Install Starcraft Remastered through Battle.net desktop app. 6. Run the game.
Screenshots: https://ibb.co/Mk0f6yt https://ibb.co/VDppGTn https://ibb.co/1sLjHm7 https://ibb.co/GC69DLx https://ibb.co/N72LXkk https://ibb.co/hWvHN10 https://ibb.co/n6VjZD1 https://ibb.co/cNyBBNp
https://bugs.winehq.org/show_bug.cgi?id=55061
Zel Uneec zculek@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zculek@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=55061
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |-unknown Product|Wine-staging |Wine CC| |o.dierick@piezo-forte.be
--- Comment #1 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
(In reply to Zel Uneec from comment #0)
true for both wine-staging and wine.
Changing product to 'Wine'.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #2 from Zel Uneec zculek@gmail.com --- Checking on https://bugs.winehq.org/show_bug.cgi?id=46624, I'm trying to build latest wine-staging with the commit aadae4d1ea173dfa30e09d6cc816bb174e35f90d reverted, but I'm at the moment stuck on the following error (after resolving some of the other ones):
gcc -m64 -c -o dlls/winex11.drv/x11drv_main.o dlls/winex11.drv/x11drv_main.c -Idlls/winex11.drv -Iinclude -D__WINESRC__ \ -DWINE_UNIX_LIB -Wall -pipe -fcf-protection=none -fno-stack-protector -fno-strict-aliasing \ -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self \ -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \ -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -fPIC \ -fasynchronous-unwind-tables -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 dlls/winex11.drv/x11drv_main.c:1001:15: error: static declaration of ‘get_display_device_init_mutex’ follows non-static declaration 1001 | static HANDLE get_display_device_init_mutex(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from dlls/winex11.drv/x11drv_main.c:50: dlls/winex11.drv/x11drv.h:808:15: note: previous declaration of ‘get_display_device_init_mutex’ with type ‘void *(void)’ 808 | extern HANDLE get_display_device_init_mutex(void) DECLSPEC_HIDDEN; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dlls/winex11.drv/x11drv_main.c:1019:13: error: static declaration of ‘release_display_device_init_mutex’ follows non-static declaration 1019 | static void release_display_device_init_mutex(HANDLE mutex) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from dlls/winex11.drv/x11drv_main.c:50: dlls/winex11.drv/x11drv.h:809:13: note: previous declaration of ‘release_display_device_init_mutex’ with type ‘void(void *)’ 809 | extern void release_display_device_init_mutex(HANDLE) DECLSPEC_HIDDEN; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make: *** [Makefile:113528: dlls/winex11.drv/x11drv_main.o] Error 1
I'm trying to build WoW64 BTW.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #3 from Zel Uneec zculek@gmail.com --- OK, I managed to fix the above issue and sucessfuly compile wine with stuff from aadae4d1ea173dfa30e09d6cc816bb174e35f90d commit reverted, but did some wrong steps during compilation, so I'll have to redo it. I'll post updates again when I have everything ready and tested.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #4 from Zel Uneec zculek@gmail.com --- Well, I can't say I did everything right 100%, but I think I did and I built Wine with aadae4d1ea173dfa30e09d6cc816bb174e35f90d commit manually reverted, but it didn't fix the blurry/low resolution graphics issue. :\ I guess that either means it has to be something else done after 5.6 or it's not only aadae4d1ea173dfa30e09d6cc816bb174e35f90d changes.
I wonder if this will ever be fixed, now that we're on 8.10 and it's happening since 5.6. :\
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #5 from Zel Uneec zculek@gmail.com --- I managed to install Gnome with Wayland on Linux Mint 21.1 Cinnamon and tested Starcraft Remastered, but the issue/bug is still there - graphics is still blurry / low resolution. I tested on both notebook monitor (1920x1080) and external monitor (2560x1440) - no difference. :(
I'm not sure if I'm allowed to write this here, but here it goes - I'm willing to donate money (say 50 euros) to whoever fixes this in newer wine versions (of course, after the fix is confirmed working as expected).
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #6 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to Zel Uneec from comment #5)
I managed to install Gnome with Wayland on Linux Mint 21.1 Cinnamon and tested Starcraft Remastered, but the issue/bug is still there - graphics is still blurry / low resolution. I tested on both notebook monitor (1920x1080) and external monitor (2560x1440) - no difference. :(
I'm not sure if I'm allowed to write this here, but here it goes - I'm willing to donate money (say 50 euros) to whoever fixes this in newer wine versions (of course, after the fix is confirmed working as expected).
Hello,
If you gift me the game, I'll work on the issue with highest priority. Then when the issue gets fixed, you may donate the remainder money to whoever you deem appropriate.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #7 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to Olivier F. R. Dierick from comment #6)
(In reply to Zel Uneec from comment #5) Hello,
If you gift me the game, I'll work on the issue with highest priority. Then when the issue gets fixed, you may donate the remainder money to whoever you deem appropriate.
Regards.
Please, to discuss this and get my battle.net account, use my email.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #8 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
Before going the bounty route, I found a post [1] on the Blizzard forums indicating that HD graphics can be toggled by pressing F5 or going into Options
Video.
You didn't mention trying that so: Can you check if toggling HD Graphics off and on makes any difference?
Regards.
[1] https://us.forums.blizzard.com/en/starcraft/t/scr-is-the-same-as-original/87...
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #9 from Zel Uneec zculek@gmail.com --- Hello Olivier,
Thank you for your interest in this!
Yes, this is not related to HD graphics being enabled or not. I can enable HD graphics without problems and the difference between HD and SD is pretty clear - SD is 4:3 with 800x600 resolution while HD is widescreen with higher resolutions, more clear graphics, sprites, etc. It's kinda like the HD resolution is not properly applied or sth. like that, don't know how to describe it different way. You can check some of the screenshots I attached and I can attach an SD screenshot as well, if you'd like to see the difference, but you'll be able to check it yourself in the game too.
There's also this bug, which I thinks is somehow related, as both of proper graphics and RTL stopped working for me and most of the community with Wine versions >5.6 - https://bugs.winehq.org/show_bug.cgi?id=46624 Perhaps you'll get some good info and answers there.
Also, one thing to mention - people were usually using wine-staging for Battle.net and Brood War, as it had some needed patches which weren't present in the stable.
Let me know if you need any additional information.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #10 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
First, thank you for gifting me the game. I'm now working on the issue(s) with highest priority.
I've installed the game in clean wineprefixes and I can't reproduce the issue. I've tested both the 32-bit and 64-bit versions of the game, both with plain Wine and wine-staging 8.14.
With plain Wine, I had to install 'winetricks corefonts' to avoid a crash in the main game menu. It seems that the remaster uses libcef (Chromium Embedded Framework) to render the game UI. libcef has a few known issues. The font one is bug 32342. Wine-staging has a patchset that should avoid that out-of-the-box.
After installing the missing fonts, I could play the first Terran mission tutorial without issue. I didn't get blurry graphics in either the main menu or in-game. The RTL option is not grayed out either. Then I did the same in 64-bit, and then with wine-staging in both 32-bit and 64-bit.
The test system is Debian 12 with X11 and the GPU is NVidia RTX 2070 with 8 GB VRAM. The screen is 3840x1024 (3x 1280x1024 DisplayPort monitors on a Matrox triplehead box) and a virtual desktop mode of the same size is used (as it's more reliable and less risky than letting the application switch the actual hardware resolution).
Apart from the above description, no third party tools or DLL overrides are used.
Maybe the issue depends on the GPU. What are the GPU model and VRAM size on the computers that you tried the game on?
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1
--- Comment #11 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
I managed to reproduce the issue by not using virtual desktop mode. The game then tries to use the full screen, but the graphics are blurry as in the screenshots, and the RTL option is grayed out too.
I think this is a clear indication that Wine provides different information about the display capacities in virtual desktop and non-virtual desktop mode. I know what I'm looking for now. I'll keep you updated about my progress.
In the meantime, you may open winecfg and enable a virtual desktop of the same size as your screen. This will make a fullscreen virtual desktop for the game to use. Can you confirm that it also works around the issue for you?
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #12 from Zel Uneec zculek@gmail.com --- Hello Olivier,
The issue is definitely not related to the hardware (GPU or anything else) used because I had different behaviour on the same hardware depending on the Wine version being used. Well, I guess it might be related to the GPU model in a way how Wine versions >5.6 handle specific GPU moddels. On two of my systems, Linux Mint with Cinnamon + RX 460 2GB GPU and Debian 10 with Cinnamon + GeForce RTX 3050 4GB GPU, everything works/worked well with Wine 5.6, but Real Time Lighting becomes grayed out (unable to be enabled) and graphics become blurry (low resolution) with newer wine versions.
I've tried with virtual desktop before and the issue was still present, that is no visible difference between using and not using virtual desktop. But, after your checks and suggestion, I tried it again with Wine 8.14 staging and now the graphics look good (proper screen resolution, not blurry any more) and I can again use Real Time Lighting, so you're definitely on the track there!
I had issues enabling virtual desktop with some Wine Proton versions, the Battle.net just wouldn't start, but that's a different thing, and I'll check on that separately.
I have yet to test if there are any issues when playing in virtual desktop and I'll report back when I do.
Also, everything worked properly without virtual desktop at least until Wine 5.6 (possible a few minor versions up, can't say for sure) but then this issue/bug/regression was introduced, so I really hope we can get it back to working the same way again.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #13 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
Some update about what I've been doing.
I've been compiling old version of wine (5.x-6.x) to do a regression bisect. There are some difficulties because some libraries + GCC are more recent and I had to back-port some commits. Starcraft doesn't work at all and I've not found the stuff needed to get it even starting with those old wine versions.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
Boris Carvajal boris2.9@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |boris2.9@gmail.com
--- Comment #14 from Boris Carvajal boris2.9@gmail.com --- I've bisected the problem to the code introduced in this commit:
3a3c7cbd209e23cc6ee88299b3ba877ab20a767f - winex11.drv: Retrieve PCI IDs and device name from Vulkan.
The first obvious change I could detect was that now some 'gpu.device_id' variable was set to 0x8086 (Intel vendor ID) instead of the old value that it was simply 0. So I hard-coded a "device_id = 0;" and guess what, StarCraft ran with clear graphics.
It seems the game lowers the graphics on purpose or just has broken logic in the presence of an Intel GPU. After further investigation I found this bug also happening natively on Windows and Mac systems:
https://us.forums.blizzard.com/en/starcraft/t/sc-remastered-looks-blurry-on-... https://us.forums.blizzard.com/en/starcraft/t/blurry-buildingsunits-on-intel... https://us.forums.blizzard.com/en/starcraft/t/scr-hd-graphics-bug-with-intel... https://community.intel.com/t5/Graphics/I-also-cannot-play-4K-Starcraft-rema...
I think you also have an Intel processor with integrated graphics in addition to a dedicated GPU (if that's not the case I'm lost), which is queried using Vulkan at app startup and in some way it's interfering even if not used at all.
I'm using PRIME offloading so my setup may be different than yours, here are a few workarounds that worked for me:
- Create 'VideoPciVendorID' and 'VideoPciDeviceID' keys (https://wiki.winehq.org/Useful_Registry_Keys) with a known value from (wine-src/dlls/wined3d/wined3d_private.h) not Intel of course. For example, save this file and apply it with 'reg import customid.reg' or using regedit. This will report a Radeon RX 480 to StarCraft.
--- customid.reg --- Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Wine\AppDefaults\StarCraft.exe\Direct3D] "VideoPciDeviceID"=dword:000067df "VideoPciVendorID"=dword:00001002 --------------------
- Another way is to export the environment var VK_ICD_FILENAMES with a specific driver, e.g. VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json so that only the dedicated GPU is exposed. An empty VK_ICD_FILENAMES="" could also work but then you can't use vulkan/DXVK.
- When using DXVK you need to set 'dxgi.customVendorId' option, you can use 'dxvk.conf' or export DXVK_CONFIG, e.g. DXVK_CONFIG="dxgi.customDeviceId = 67df; dxgi.customVendorId = 1002"
Good luck.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #15 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
I don't have an Intel integrated GPU, I have a single NVidia GPU, and I can reproduce the issue.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #16 from Zel Uneec zculek@gmail.com --- Yes, I don't think it's Intel GPU issue (nor any kind of integrated GPU), since I had the same problem on a PC with AMD processor and dedicated Radeon GPU, without any kind of integrated GPU. And I know a few people that also have single, dedicated GPU, either nVidia or Radeon that have the same issue.
But, the issue might be related to gpu.device_id variable, perhaps worth investigating further.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #17 from Boris Carvajal boris2.9@gmail.com --- (In reply to Zel Uneec from comment #16)
Yes, I don't think it's Intel GPU issue (nor any kind of integrated GPU), since I had the same problem on a PC with AMD processor and dedicated Radeon GPU, without any kind of integrated GPU. And I know a few people that also have single, dedicated GPU, either nVidia or Radeon that have the same issue.
I mean I was able to reproduced it with Intel, but it also happens to affect running the game on my NVidia gpu through PRIME. I'll try a single GPU setup when I have time.
But, the issue might be related to gpu.device_id variable, perhaps worth investigating further.
It solved it in my case. So did you try any of the workarounds? Maybe it's something to do with GPUs not being in the Wine database.
Another thing could be the monitor modes presented to the game.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #18 from Zel Uneec zculek@gmail.com --- I tried the registry workaround (setting Vendor ID and Device ID), but that didn't work, and also the DXVK_CONFIG, didn't work either.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #19 from Zel Uneec zculek@gmail.com --- Hello Olivier,
Did you perhaps try to revert the changes introduced in aadae4d1ea173dfa30e09d6cc816bb174e35f90d using the latest wine-staging version? I know it needs to be done manually, but I think it's worth a try. I tried it myself, but it didn't work for me. Doing it for 5.x versions is probably a waste of time, as making Stacraft Remastered working on those old wine versions is almost imposible.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #20 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- (In reply to Zel Uneec from comment #19)
Hello Olivier,
Did you perhaps try to revert the changes introduced in aadae4d1ea173dfa30e09d6cc816bb174e35f90d using the latest wine-staging version? I know it needs to be done manually, but I think it's worth a try. I tried it myself, but it didn't work for me. Doing it for 5.x versions is probably a waste of time, as making Stacraft Remastered working on those old wine versions is almost imposible.
Hello,
I've compiled wine 5.5, 5.6 and 5.9 with some patches back-ported from later Starcraft Remastered fixed bugs, but so far I couldn't make the game start with those versions. All I get is a dead process in the background. Battle.net is working fine, though. I'm currently trying to build a 'modernized' wine 5.21. If it still fails to run Starcraft, I'll test from 8.x to earlier versions instead of going from 5.x up.
Unfortunately, my work on this has been delayed by unexpected events.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #21 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
I found the commit that partially fixes the blurry issue in virtual desktop mode: It's commit 9b7669592d6f8b40976b571b70f8543777d35167 (between 8.10 and 8.11). It already reverts aadae4d1ea173dfa30e09d6cc816bb174e35f90d, so it's not possible to revert it.
That commit adds conditional paths for virtual desktop mode at multiple place. I bisected them to find which one does fixed the issue in virtual desktop mode. The lines that fixes the issue in VD mode are those:
@@ -1799,7 +2010,16 @@ static BOOL update_display_cache( BOOL force ) (...) + /* as update_display_devices calls the user driver, it starts explorer and may change the virtual desktop state */ + if (ret && is_virtual_desktop()) + { + reset_display_manager_ctx( &ctx ); + ret = desktop_update_display_devices( force || !was_virtual_desktop, &ctx ); + }
If I remove those + lines, the broken behavior comes back in VD mode. This means that the issue is fixed in VD mode by resetting the display manager context and rebuilding the device list.
I don't immediately see how to use that info to fix the non-VD mode. calling desktop_update_display_devices in non-VD mode doesn't make sense, and calling reset_display_manager_ctx unconditionally breaks Wine.
Maybe the context needs to be reinitialized/recreated after reset.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #22 from Zel Uneec zculek@gmail.com --- Hello,
After discussing some stuff with Jon (arilou@gmail.com), he created a PR that seems to have fixed both RTL and blurry graphics issues - https://gitlab.winehq.org/wine/wine/-/merge_requests/4466. The PR/bug fix has been merged and is part of the 9.0-rc1 release. I did a quick test yesterday and and both issues look to be resolved, both when using and not using Virtual Desktop mode, but I'll do some more testing and ask some more people to confirm before we mark this as resolved.
If anyone here can test, please do and share the results.
https://bugs.winehq.org/show_bug.cgi?id=55061
--- Comment #23 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
I confirm that the issue is fixed in 9.0-rc1.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=55061
Zel Uneec zculek@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #24 from Zel Uneec zculek@gmail.com --- Marking the bug/issue as resolved, since I got confirmation from multiple people that everything's working properly now.
https://bugs.winehq.org/show_bug.cgi?id=55061
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #25 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 9.0-rc3.