Open apemax opened 3 days ago
Please report this issue to the game developer's support channels if you haven't already. They can comment on this issue if it would be helpful to discuss technical details with the Steam Runtime team.
I'm downloading the game onto a test machine to see whether I can get a better idea of how it works (whether it uses SDL, etc.), but it's rather large, so that's going to take a while.
If launched outside of Steam directly from the launcher WT will launch on my primary monitor
Launching Steam games without going via Steam is not, in general, a supported thing to do. In your case it seems like it's actually working around this specific issue, for whatever reason. That gives us a useful data point, but there are several aspects of the execution environment that will be different for games launched via Steam or directly, so it's going to be difficult to narrow down which one is the most relevant here.
If we can find a mechanism to launch War Thunder via Steam that does give you the desired results, then that would be a smaller environmental difference to work with, which would make it more likely that either we or the game developer can figure out what is going wrong.
War Thunder is not launching on the primary monitor when run through Steam Linux Runtime. This happens with both Scout 1.0 and Sniper 3.0.
Each Linux game on Steam should be targeting either the Steam Runtime 1 'scout' or Steam Runtime 3 'sniper' environment (developer's choice), but not both. Unfortunately there are some Steam client bugs that mean you are sometimes offered options that are not actually meant to work. We should try to focus on the scenarios that are meant to work.
War Thunder's developer does not appear to have flagged it as targeting sniper, so the fact that you are able to select sniper at all is a Steam client bug. This is tracked as steamrt/tasks#553 internally, and is fixed in the Steam client public beta (since 2024-11-27).
The two environments where it should be possible to run War Thunder are:
LD_LIBRARY_PATH
-based scout runtimeIf you switch to the Steam client beta, you will be able to select these in Properties → Compatibility → Force the use of..., where they are labelled Steam Linux Runtime 1.0 (scout)
and Legacy runtime 1.0
respectively.
Or, in the non-beta version of Steam, if you run it as steam -compat-force-slr off
, the default behaviour for native Linux games will be to launch them in the legacy runtime, and SLR will normally only be used if you explicitly select it via Properties → Compatibility.
One way or the other, please try launching War Thunder via the legacy runtime. Does it choose the primary monitor that you expected, like it did when launched outside Steam? Or does it choose the "wrong" monitor, like it did when using SLR? Whichever answer you get, it will be useful information.
Some more information about your system:
xrandr
tool and pasting its output is a convenient way to answer this. This is important because some of the common heuristics for choosing which monitor is considered to be primary will default to the monitor that is closest to coordinates (0,0), which in your case is probably the one that you had intended to be secondary.I see that you're using an AMD proprietary Vulkan driver (AMDGPU Pro?), with an AMD non-Mesa open source Vulkan driver (AMDVLK?) also available. We have seen some odd issues with these drivers in the past, so we generally recommend Mesa's driver for AMD GPUs ("RADV" internally), but I don't know whether this would influence the choice of primary display or not.
For me my primary monitor is on the right and my secondary monitor is on the left
Just to check, when you say "primary monitor", do you mean the one that has the GNOME menus at the top?
This issue happens on both Wayland and X11 on Gnome 47
What do you mean by "on Wayland" and "on X11", exactly? Do you mean you logged out and back in, selecting a session at the login prompt with a name like "GNOME on Wayland" or "GNOME on Xorg"? Or do you mean that, while logged in to a Wayland session, you used environment variables or some other similar mechanism to force the game to make a specific choice between native Wayland or X11-via-Xwayland?
If you happen to know any technical details about this game - like whether it uses SDL, or what game engine or other middleware it uses - then those would also give us a good starting point to investigate further.
Please report this issue to the game developer's support channels if you haven't already. They can comment on this issue if it would be helpful to discuss technical details with the Steam Runtime team.
Yes I have just reported this to the WT Developers as well.
Launching Steam games without going via Steam is not, in general, a supported thing to do.
For WT you can download the launcher direct from the games homepage, So you can run it either way as it is available to download outside of Steam.
One way or the other, please try launching War Thunder via the legacy runtime. Does it choose the primary monitor that you expected, like it did when launched outside Steam? Or does it choose the "wrong" monitor, like it did when using SLR? Whichever answer you get, it will be useful information.
So when I launch Steam with the steam -compat-force-slr off
command, Then disable SLR through Properties → Compatibility, WT will launch on the correct monitor that is set as the primary monitor.
I see from the System Information report that you have an AMD Radeon RX 6500 XT discrete GPU. Is this your only GPU, or do you have others, either discrete or integrated?
I have 2 GPUs in my system, A RX 6500 XT and a GT 710.
How are your monitors physically connected to the GPU(s)?
My two monitor are a iiyama 24" and a BenQ 22". The iiyama 24" is connected to the RX 6500 XT via HDMI and the BenQ 22" is connected to the GT710 via DVI. The iiyama 24" is set as my primary monitor on the right.
What is the logical layout of your monitors?
`xrandr --listmonitors Monitors: 2
0: +*HDMI-2 1920/530x1080/300+1920+0 HDMI-2 1: +DVI-D-1 1920/480x1080/270+0+0 DVI-D-1 `
I see that you're using an AMD proprietary Vulkan driver (AMDGPU Pro?), with an AMD non-Mesa open source Vulkan driver (AMDVLK?) also available.
Yes I have both amdvlk and AMDGPU-Pro installed and select which one I want to use with AMD Vulkan Prefixes. I generally run everything with the Mesa RADV driver. This issue happens with all Vulkan drivers.
Just to check, when you say "primary monitor", do you mean the one that has the GNOME menus at the top?
Yes, It is the monitor set as primary in the Gnome Displays settings and the one with the menus at the top.
What do you mean by "on Wayland" and "on X11", exactly?
I mean running Gnome on Wayland or X11, So selecting "Gnome" or "Gnome on Xorg" at the Gnome log in screen. WT only has support for X11 right now so for Wayland it is running through XWayland.
If you happen to know any technical details about this game - like whether it uses SDL, or what game engine or other middleware it uses - then those would also give us a good starting point to investigate further.
WT uses the Dagor Engine which was open sourced a while ago:
https://github.com/GaijinEntertainment/DagorEngine
I believe it uses Xlib directly for window management.
I think I have answered all your questions however if I have missed anything please let me know. :)
My first guess here would be that there has been a behaviour change in some library that is used by this engine, possibly Xlib (libX11) or one of its associated libraries like libXrandr, such that the copy on your Arch system is choosing the monitor that you wanted to be primary, but the (probably older) copy of the same library inside the Steam Linux Runtime container is not.
In "GNOME on Xorg", the Xorg server should be directly reporting via the Xrandr protocol which display is meant to be primary.
In the Wayland session, GNOME Shell reports to Xwayland via some protocol (exactly what protocol, I don't know) which display is meant to be primary, and ideally Xwayland should pass this information on to the game via the Xrandr protocol. But there are a couple of places in that chain where this information could get lost, resulting in Xwayland and/or the game needing to fall back to heuristics - and one popular heuristic is to assume that the monitor at (0,0) is meant to be primary, which, in your case, is wrong.
My two monitor are a iiyama 24" and a BenQ 22". The iiyama 24" is connected to the RX 6500 XT via HDMI and the BenQ 22" is connected to the GT710 via DVI. The iiyama 24" is set as my primary monitor on the right.
Ah, like several of the users on the Proton issue you linked, you have your two monitors connected to different GPUs. This might be adding complexity to your situation.
Is it physically possible to connect both of your monitors via the same GPU - ideally the GPU that you want to be using for rendering (presumably the RX 6500 XT)? If yes, does that make any difference?
Also, when you say GT710, do you mean an Nvidia discrete GPU from around 2014? Is this using the proprietary Nvidia driver, or Mesa's Nouveau driver?
WT uses the Dagor Engine which was open sourced a while ago
That's helpful, because it means we'll be able to see exactly what it's doing. I'm not going to be able to look at this again for a few days, but I'll come back to it when time permits.
Is it physically possible to connect both of your monitors via the same GPU - ideally the GPU that you want to be using for rendering (presumably the RX 6500 XT)? If yes, does that make any difference?
Yes the primary GPU I use to render everything is the RX 6500 XT, Unfortunately I can't plug both monitors into the RX 6500 XT because it only has two display outputs, 1 DisplayPort and 1 HDMI and because of my case I have yet to find a DP cable that will fit correctly as most DP cables have large connector housings that hit my case before going all the way in to the GPU DP port.
I did however plug both monitors into my GT 710 and it didn't make any difference, Still starts on the wrong monitor. I only tested this on Wayland as for some reason with both my monitors plugged in to the GT 710 Xorg won't start.
Also, when you say GT710, do you mean an Nvidia discrete GPU from around 2014? Is this using the proprietary Nvidia driver, or Mesa's Nouveau driver?
Yes that would be the one. I am using Mesa's Nouveau driver with it. The main reason I even have it in my system is because of the problem I mentioned previously about not being able to plug in any DP cable into my RX 6500 XT.
That's helpful, because it means we'll be able to see exactly what it's doing. I'm not going to be able to look at this again for a few days, but I'll come back to it when time permits.
Right, Yep no problem. :)
I will also just add, there is a report on the WT community bug tracker regarding this issue:
https://community.gaijin.net/issues/p/warthunder/i/NHkOOFjzaY0c
And they only seem to have one GPU in their system. So maybe helpful to know.
Hi, i am the person that reported the bug on the war thunder bug tracker. My setup itself is slightly different as i have a 3 monitor setup, with one monitor to the top of primary and one to the right of primary. xrandr --listmonitors: Monitors: 3 0: +*DisplayPort-0 2560/697x1440/393+0+1080 DisplayPort-0 1: +DisplayPort-1 1920/435x1080/239+334+0 DisplayPort-1 2: +HDMI-A-0 1920/531x1080/299+2560+1080 HDMI-A-0
all three are plugged into the same GPU, that being a RX 6700 XT. runtime system info : https://gist.github.com/share234/c87165abbf66affc024debd2e32194cc
as part of the debugging i did for the WT bug report, i ran the game with the 3 different "modes", that with normal, forcing the use of the runtime and then using proton. I found that there was no difference between normal and runtime and that with proton it ran as i expected with the game launching onto my primary monitor.
Your system information
steamapps/common/SteamLinuxRuntime/VERSIONS.txt
? 0.20240806.0steamapps/common/SteamLinuxRuntime_soldier/VERSIONS.txt
? 0.20241118.108551steamapps/common/SteamLinuxRuntime_sniper/VERSIONS.txt
? 0.20241118.108552Please describe your issue in as much detail as possible:
War Thunder is not launching on the primary monitor when run through Steam Linux Runtime. This happens with both Scout 1.0 and Sniper 3.0.
For me my primary monitor is on the right and my secondary monitor is on the left, If launched outside of Steam directly from the launcher WT will launch on my primary monitor, If launched through Steam WT will launch on my secondary monitor on the left.
I'm not sure if it is related but this issue with SLR is very similar to this issue with Proton:
https://github.com/ValveSoftware/Proton/issues/7717
This issue happens on both Wayland and X11 on Gnome 47.
Log file from Wayland: https://gist.github.com/apemax/343430a0a90bbe3f34a74cb70edbeed7
Log file from X11: https://gist.github.com/apemax/8257dd94a7d715a4c524ddb3c7acbc77
Steps for reproducing this issue: