Video resolution problem causes crashes

Questions about Wine on Linux
Locked
Hartmut Figge
Level 2
Level 2
Posts: 16
Joined: Sat Oct 19, 2019 6:05 am

Video resolution problem causes crashes

Post by Hartmut Figge »

Greetings,
wine doesn't like my new monitor. Many installed games crash at startup in wine-4.17. Or wine-4.16. They work in wine-4.01. I have the problem narrowed down by using the launcher of Oblivion. I am using a current Gentoo, mostly stable, and wine-vanilla equals the normal wine.

In wine-vanilla-4.0.1 the available resolutions are
http://www.triffids.de/pub/aoc/wine-4.0 ... uncher.png

In wine-vanilla-4.17 the available resolutions are
http://www.triffids.de/pub/aoc/wine-4.1 ... uncher.png

You can see that most of the resolutions are missing under 4.17. If I select the available resolution 800x600 in 4.17 then oblivion starts and
runs without problems.

But many of the games do not have a launcher to choose a resolution from. I assume when a games tries to start with a resolution which now
seems unsupported it runs into difficulties.

So the question is, how to get wine-vanilla-4-17 to accept the available resolutions? This problem didn't occur with the old monitor. One workaround is to switch to wine-vanilla-4.0.1, choose 800x600, switch back to wine-vanilla-4.17 and start the game. Succeeds, but running at 800x600 is, eh, not so optimal. ;)
Hartmut Figge
Level 2
Level 2
Posts: 16
Joined: Sat Oct 19, 2019 6:05 am

Re: Video resolution problem causes crashes

Post by Hartmut Figge »

Oh, I see I have forgotten some info I supplied to the NG gentoo-user. Here comes:

xrandr old monitor:
Screen 0: minimum 8 x 8, current 1600 x 1200, maximum 16384 x 16384
DVI-I-0 disconnected primary (normal left inverted right x axis y axis)
DVI-I-1 connected 1600x1200+0+0 (normal left inverted right x axis y
axis) 367mm x 275mm
1600x1200.....60.00*+
1280x1024.....75.02 60.02
1152x864........75.00
1024x768........75.03 60.00
800x600..........75.00 60.32
640x480..........75.00 59.94
HDMI-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 disconnected (normal left inverted right x axis y axis)

xrandr new monitor
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
DVI-I-0 disconnected primary (normal left inverted right x axis y axis)
DVI-I-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 connected 1920x1080+0+0 (normal left inverted right x axis y
axis) 725mm x 428mm
2560x1440.....59.95 +
1920x1080.....60.00*
1680x1050.....59.95
1440x900.......59.89
1280x1440.....59.91
1280x1024.....75.02 60.02
1280x960.......60.00
1280x720.......60.00
1024x768.......75.03 70.07 60.00
800x600.........75.00 72.19 60.32 56.25
720x576.........50.00
720x480.........59.94
640x480.........75.00 72.81 59.94

nvidia-drivers-435.21

P.S.
It is good that there is a preview. So I noticed the columns in the xrandr lists were not so aligned as the should. Workaround was inserting points. There may be better ways, TABs?, but I am used to news groups and not to fora. Perhaps I will experiment later a bit.
Hartmut Figge
Level 2
Level 2
Posts: 16
Joined: Sat Oct 19, 2019 6:05 am

Re: Video resolution problem causes crashes

Post by Hartmut Figge »

Some additional info:

wine-4.18 appeared today on Gentoo. I compiled it, switched to it and checked, if the problem still existed. It did. But I tinkered a bit with the parameters and discovered something which seems important to me.

My standard setting in winecfg is "Emulate a virtual desktop". During the tinkering I disabled that and the previously missing resolutions, the ones shown in the screenshots in the OP, are now available and the game runs after selecting one of them. Tested with Oblivion and Morrowind from Gog.

I am considering to file a bug about this issue.
Hartmut Figge
Level 2
Level 2
Posts: 16
Joined: Sat Oct 19, 2019 6:05 am

Re: Video resolution problem causes crashes

Post by Hartmut Figge »

Now I can give a more precise description of the issue.

If you enable "Emulate a virtual desktop", then the available video resolutions in the launcher of Oblivion or Morrowind are restricted by the values in the Desktop size. So a workaround for the problem is to set these number greater than the desired video resolution.

On Gentoo the issue exists for wine-4.15 till wine-4.18 including the edges of the interval. wine-4.0.1 is not affected. No other versions of wine in this interval are available in Gentoo. So I had to try to build wine from the original sources from winehq. I chose 4.10 and the build succeeded. 4.10 is not affected.

It is still uncertain if it is a bug in Gentoo or in Wine. Will have to test a build of the original 4.15 to detect that. On my machine one of those builds takes 75 minutes and two of them are required for a multilib build. I'm not sure at the moment if I will do that for the 4.15. There is a workaround now. ;)
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Video resolution problem causes crashes

Post by Bob Wya »

Hartmut Figge wrote: Mon Oct 21, 2019 10:31 am Now I can give a more precise description of the issue.

If you enable "Emulate a virtual desktop", then the available video resolutions in the launcher of Oblivion or Morrowind are restricted by the values in the Desktop size. So a workaround for the problem is to set these number greater than the desired video resolution.
Typically you would set the Desktop size to match your native monitor resolution.
Obviously you cannot access resolutions larger than the Virtual Desktop size you set - as this the root window that Wine draws to.
Hartmut Figge wrote: Mon Oct 21, 2019 10:31 am On Gentoo the issue exists for wine-4.15 till wine-4.18 including the edges of the interval. wine-4.0.1 is not affected. No other versions of wine in this interval are available in Gentoo. So I had to try to build wine from the original sources from winehq. I chose 4.10 and the build succeeded. 4.10 is not affected.
You'd want to do a Wine regression test / git bisection - to determine the offending Wine commit - before you file a Wine bug report.

Btw there are Gentoo Overlays that hold intermediate Wine ebuilds.
E.g. the official wine Overlay holds the 'overflow' ebuilds from the main gentoo tree (the CI load from having too many Wine ebuilds in the main Gentoo tree, had become a major issue).
I've also got a lot more legacy Wine ebuilds in my Overlay: bobwya.
Both of these Overlays are available via Layman.

Bob
Hartmut Figge
Level 2
Level 2
Posts: 16
Joined: Sat Oct 19, 2019 6:05 am

Re: Video resolution problem causes crashes

Post by Hartmut Figge »

Typically you would set the Desktop size to match your native monitor resolution.
Obviously you cannot access resolutions larger than the Virtual Desktop size you set - as this the root window that Wine draws to.
The default value is 800x600 and has never affected the available video resolutions for games. If you played a game in the past with a video resolution greater than that Virtual Desktop and now try to launch this game in a recent wine, things go poof. *eg*
You'd want to do a Wine regression test / git bisection - to determine the offending Wine commit - before you file a Wine bug report.
I have done bisecting in the past for SeaMonkey-Trunk to determine the responsible checkin. That was under Mercurial and sometimes difficult because of frequent bustages. For wine I would have to install Git and learn at least a minimum about it. Furthermore there is the issue with the time required for a build. No SSD here. Sure, ccache can help especially for bisecting.
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Video resolution problem causes crashes

Post by Bob Wya »

Hartmut Figge wrote: Mon Oct 21, 2019 11:19 am ...
I have done bisecting in the past for SeaMonkey-Trunk to determine the responsible checkin. That was under Mercurial and sometimes difficult because of frequent bustages. For wine I would have to install Git and learn at least a minimum about it. Furthermore there is the issue with the time required for a build. No SSD here. Sure, ccache can help especially for bisecting.
See: WineHQ Wiki: Regression Testing.

You won't need to use ccache - if you compile the Wine tree in place, then only the changed components will be recompiled at each bisection step.
You can obviously skip the overhead of compiling 64-bit multilib Wine as well i.e. just build 32-bit Wine, at each step.

Compilation performance is mainly determined by core count / clock speed (CPU bound). Memory is also a limiting factor of course.
The use of an HDD (vs an SSD) will make some difference, but will not be as significant (unless you are accessing the drive for other things at the same time).

Bob
Hartmut Figge
Level 2
Level 2
Posts: 16
Joined: Sat Oct 19, 2019 6:05 am

Re: Video resolution problem causes crashes

Post by Hartmut Figge »

Bob Wya wrote: Mon Oct 21, 2019 11:35 am You won't need to use ccache - if you compile the Wine tree in place, then only the changed components will be recompiled at each bisection step.
I know that many devs from Mozilla do it this way. And I know also why I insist of deleting $OBJDIR before every compilation.
Bob Wya wrote: Mon Oct 21, 2019 11:35 am You can obviously skip the overhead of compiling 64-bit multilib Wine as well i.e. just build 32-bit Wine, at each step.
Thanks.
Bob Wya wrote: Mon Oct 21, 2019 11:35 am Compilation performance is mainly determined by core count / clock speed (CPU bound). Memory is also a limiting factor of course.
Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz, quite old. Memory is not an issue, 16GB.
Bob Wya wrote: Mon Oct 21, 2019 11:35 am The use of an HDD (vs an SSD) will make some difference, but will not be as significant (unless you are accessing the drive for other things at the same time).
Mhm. I've never had a SSD but Mozilla strongly recommends one for builds.

P.S.
It is possible that the wine devs think the issue is not a bug but a feature. That's why I have some private patches for SeaMonkey. :)

P.P.S.
I miss wine-users. Sigh.
Hartmut Figge
Level 2
Level 2
Posts: 16
Joined: Sat Oct 19, 2019 6:05 am

Re: Video resolution problem causes crashes

Post by Hartmut Figge »

Hartmut Figge wrote: Mon Oct 21, 2019 10:31 am Now I can give a more precise description of the issue.

If you enable "Emulate a virtual desktop", then the available video resolutions in the launcher of Oblivion or Morrowind are restricted by the values in the Desktop size. So a workaround for the problem is to set these number greater than the desired video resolution.

On Gentoo the issue exists for wine-4.15 till wine-4.18 including the edges of the interval. wine-4.0.1 is not affected.
Not only Morrowind or Oblivion were affected. The workaround was sufficient and not too bothersome, so I lived with it until I recently noticed the issue had been fixed. I'm using wine-4.21 at the moment but the fix may have been done previously.

Thanks, devs.
Locked