Hi all!
I’ve recently come across an issue with launching games from steam. For now I’ve seen it happen on two games (or rather demos): Crow Country and Sophonce. They launch fine but have some flickering black blocks on the screen that make them unplayable. Here are some images:
https://pasteboard.co/qXH4H5gm7sIS.jpg
https://pasteboard.co/7k9XM394Zlsi.jpg
https://pasteboard.co/6vPC8GYxhHu8.jpg
This only happens when they go full-screen and on wayland, on X11 works fine. I’ve tried many versions of proton including eggroll variants.
The games work fine when launched with wine without steam in the middle if i do wine <game.exe>
. If i do it this way the games detect that I’m running on an ultra-wide screen and play as such but through steam they stay on 16:9 instead.
My system:
Os: Nobara 40
Kernel: 6.8.12-200.fsync.fc40.x86_64
DE: Gnome 46.2
CPU: AMD Ryzen 7 7800X3D (16) @ 5,05 GHz
GPU 1: AMD Radeon RX 7900 XTX
RAM: 32GB
Any help is appreciated,
Thanks!
I think you are correct assuming it’s an issue with proton not supporting wayland as if i try to use lutris proton still doesn’t work but wine does and so does with gamescope.
I’m trying to use gamescope now as you and the other comment have mentioned but I’m having the issue with this command, if you could help me:
gamescope -w 3440 -h 1440 -W 3440 -H 1440 %command%
It creates a window of the appropriate size but the game is still in 16:9 (Without the black blocks issue, which is already a win, but i’d prefer it to be ultrawide too).
Thanks for the help!!
EDIT: Just tried it with Lutris but it seems to also not work even with their setup on proton. So it might be a them thing. For now I’ll just use lutris to play on wine directly.
The -W and -H are the resolution you want to display at, so you want those to be your monitor’s native resolution. They default to 1280 x 720 if you don’t specify.
The -w and -h specify what resolution to render at, and are only really useful if using DLSS or FSR for scaling. Skip them if you’re not using that.
Yes i read that in the documentation but for some unkown reason if i omit either the lowercase or the uppercase the game won’t even start! Only the gamescope instance.
I don’t have an ultrawide to test, but can you set the correct resolution in the game? Maybe it’s using the settings from previous launches with 16:9.
Its one of those stylized games where i can not choose resolution, only fullscreen or borderless. And when i choose borderless the screen goes to a small 1080p window.
For some reason I’ve been having issues too, but I started adding this to my launch options in the game properties in Steam and it seems to work for several games. Dunno if this is the same issue as you though, but maybe worth a shot:
PROTON_USE_WINED3D11=1 %command%
Also use Wayland.
Thanks for the input! I tried it but no luck, the black blocks are still there and it still renders on 16:9. Thanks though!!
Ah, bummer… Can’t you just log in using X11 instead of Wayland for the session when you want to play? Assuming it’s a Wayland issue…
This may be an issue with your graphics drivers more so then wine, have you installed Mesa? Or are you using AMD’s drivers?
You can check with this command
vulkaninfo --summary
althoughglxinfo -B
may fetch more information try the latter and tell me how it goes if you want.Alternatively Steam might not recognize your resolution by default and just force your games to run in 1920x1080, which ends up messing with the display manager so much it just gives up, (I am not certain how to fix that as I don’t use an ultra wide monitor, perhaps editing something in the steam configuration but … Eh) there is a solution if all else fails and that’s just using gamescope!
sudo dnf -y install gamescope
to install.You can read up on it if you want but the gist of it is, it’s a window manager specifically made to run games inside your usual window manager (so no need to switch between Wayland or X11) its controlled via the steam launch options with certain arguments, or more easily accessible options via Lutris.
gamescope --help
for all options or refer to the link to the (gamescope!) Github to figure out how to configure it for your needs.TLDR: As I see it the “easiest” solution is to bypass the problem entirely and use gamescope the option provided by Valve.
I’m running with the mesa drivers on version
Mesa 24.2.0-devel
. After some tinkering around it seems its a combination of things and gamescope fixes the black blocks but it still won’t render in ultrawide, so I’ll just stick with wine and lutris for now which seems to work fine.Thanks for the help!!
I know this issue. It’s reproducible when
- Using AMD on Wayland
- Only on certain screens or only on HDMI (I never reproduced that when using DP)
- The game is running in non-native resolution, meaning the compositor is doing upscaling
- The game window is full screen and focused - the black blocks go away if you show some desktop menu or focus other window on top - so basically looks like only happens when the direct scanout protocol is doing its thing
- not only in Steam games, in most games in general
The problem has long been reported in Mesa project, but nothing was done to help. My bet is that the bug sits in amdgpu kernel driver and not user space.
https://gitlab.freedesktop.org/mesa/mesa/-/issues/8705
EDIT: maybe it’s worth to report in kernel bugzilla or wherever amdgpu kernel driver bugs would go. I don’t reproduce this on my end anymore, because I changed my screen and it uses DP
EDIT2: I could only reproduce it on RDNA2 and yours is RDNA3. I had Polaris (RX 570) for quite some time and it was running on Wayland. Maybe it only happens on newer cards, maybe it’s regression added along the way
Bingo, yes this is the same issue for what they say. I am connected through DisplayPort though on all my screens. Shame that it is not being worked on but from my testing I assume that when steam moves proton to support wayland natively it will be fixed. Thanks for the info, very interesting!!
The HDMI/DP was my wild guess. For now the problem should also go away if you just change in-game resolution for whatever is your screen. Maybe the problem isn’t being addressed because it was reported to Mesa user-space driver, but maybe the problem is in kernel module. It’s also not 100% always reproducible.