-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trying to use iGPU instead of dGPU to run games with Proton doesn't work. #5113
Comments
Hello @segvee, I expect that this is a known (Intel -> nVidia) video driver compatibility issue when the system is configured to run the X session on the nVidia GPU and mesa/ANV can not render to that due to a lack of dri3 support in nVidia's driver (Called nVidia Performance Mode by some configuration tools). I don't think this is a Proton-specific issue, so I've transferred this issue to the steam-runtime issue tracker. In case I'm wrong, please give https://github.com/ValveSoftware/steam-runtime/blob/master/doc/reporting-steamlinuxruntime-bugs.md#essential-information a read and share the requested information. |
Please define "doesn't work"? There are two major ways it might "not work" - the game might use the dGPU even though you wanted the iGPU, or the game might not run at all. From your logs it looks as though it's not running at all (crashing on startup). Steam tries to select the dGPU, and DXVK in Proton also tries to select a dGPU even if an iGPU is the default (to avoid issues where the iGPU either is too slow to be usable, or doesn't support Vulkan at all), so trying to force games onto the iGPU is definitely a "swimming upstream" situation. |
Hey, I just tested Noita with the other Proton versions. Whereas with the one mentioned in my original post it didn't start I tried 5.0-10, 4.11-13, 4.2-9 and 3.16-9 and they seem to work - by that I mean that the game starts, I haven't tested it further. With 3.7-8 the game starts (i.e. a window pops up whereas with experimental, 6.3-5 and 5.13-6 it didn't do that at all) but then the window closes. Furthermore I am running the X server on the integrated video card i.e. I am using NVidia's on-demand mode. Is this still possibly a Steam runtime issue and should I follow the instructions you provided? I will gladly do that if that is the case though I am afraid I won't be able to do that until monday.
Sorry, by doesn't work I mean the game doesn't start in the sense that the main window doesn't even appear. As mentioned above, though, it works with other versions of Proton. I don't think it tries to run on the dGPU. I switched back to Proton Experimental and was monitoring nvidia-smi and Noita didn't appear as a process while it was starting. So I think it tries to use the iGPU and the game does not run at all. I didn't know that Steam tries to select the dGPU. I thought it uses the integrated video card by default and you have to specifically use For future reference: if a game uses the dGPU even though I didn't use the command above is there a way to force the usage of the iGPU? Maybe this could come in handy sometime. |
Proton started using the Steam Linux Runtime - Soldier container environment with Proton 5.13. Since Proton 5.0 and earlier behaves better for you, that makes it more likely that there's an issue with the container environment. There's no particular hurry to gather the extended diagnostic information, we just won't make much progress in the mean time. |
It has
For native Linux games, this might work:
(Or it might be better with However, DXVK second-guesses the rest of the driver stack and tries to select a dGPU anyway: ValveSoftware/dxvk@40b5275 so that might not work. Setting |
Prime Render Offload var needs to be enabled to use So what you have specified above with
does work for both native and Proton games, DXVK-vkd3d doesn't try to use dgpu still when combo above is used. |
Hey, I managed to gather the needed information. Hopefully this will be helpful! slr-app881100-t20210821T200107.log [edit] |
Are you sure it's that, and not this, which would also match those symptoms?
You might be able to tell the difference by using Alt+Tab to switch between windows, or using a equivalent of GNOME's Overview if KDE/Plasma has one. |
|
From your system info, we're successfully detecting both your Intel and NVIDIA GPUs as Vulkan devices, with the Intel GPU preferred, but both working. You also have software Vulkan rendering available. This is true both inside and outside the container. I think pressure-vessel is working correctly, but maybe you need something like
or some suitable value for |
The symptoms in my case are similar but not wholly congruent. It may be the case that a fullscreen window is allocated, however, this is what I experience: the little steam window "Preparing to launch Noita..." pops up. After a few second the screen freezes for a few seconds whereas I cannot do anything. I cannot even alt+tab. The only possible interaction is moving the mouse cursor, that's it. Then it unfreezes. Then it freezes again, for a longer period of time and then it unfreezes again after which the game starts (the main game window pops ups) or other things happen (like the Origin window launching in Far Cry 5's case).
I tried that command, unfortunately the same thing happened, the game doesn't start. :/ |
@kisak-valve, would you be able to point Proton/DXVK developers to this? From the system info in https://github.com/ValveSoftware/steam-runtime/issues/449#issuecomment-903152769 it looks as though basic use of Vulkan is working OK both outside and inside the container (we successfully run a simple program @segvee, something you could try to confirm whether Vulkan is working correctly in the container is to install a native Linux game that uses Vulkan, and configure it to use the "Steam Linux Runtime" compatibility tool. https://store.steampowered.com/app/583950/Artifact/ is an example of a free native Linux game that uses Vulkan. If Artifact works but Proton games don't, then that points towards a problem with Proton/Wine/DXVK. If Artifact doesn't work either, then that points towards a container (or Vulkan) problem. |
Tested on my system with Prime Render Offload and can't see a problem.
Whilelisted against Proton 3.7 so i forced it to run with Proton 6.3-6.
https://gist.github.com/Leopard1907/6f6641d50118a47c95387193d42d48c5
Fwiw ; game that reporter posted output from ( 881100) is Noita, which is a Windows only OpenGL game. So DXVK/Vulkan is irrelevant here. I tested a Windows only GL game, Wolfenstein New Order with So it might be a simple copy-paste error on user side that prevents those vars to work or it might be a Intel driver issue? @segvee Can you try with another GL game? Maybe Intel driver is just not able to run that Noita game? Also PCGW notes that Noita is a 32 bit game so make sure you have functioning 32 bit Intel GL driver. Not sure if there is something like |
Aha, that's a good point. If Proton implements Windows OpenGL using by Linux OpenGL, then it should be https://store.steampowered.com/app/302380/Floating_Point/ is free, and is a nice simple example of a native Linux 32-bit OpenGL game to try. It's the one we used for a lot of the early container runtime testing, before Proton started using it.
The diagnostic tool in System Information should already be doing a quick functional check for at least GLX (look for |
Hello there,
I ran Artifact Foundry with
I don't usually launch Steam with I ran other game besides Noita but I will gladly try again. I don't have Fallout Shelter but I do have Wolfenstein: The New Order and I tried running it without specifying anything, with
Here are the soldier and proton logs for running without any command, with forcing intel and with forcing nvidia (in that order):
I downloaded and ran Floating Point. nvidia-smi confirmed that it ran using the Intel GPU. The game started without a problem and worked fine. I should also note that I didn't have any problems with most Linux native games so far. I'm not sure whether it uses Vulkan or OpenGL but I could run American Truck Simulator on my Intel and on the NVidia GPU without a problem, just as an example. I think Tonight We Riot is a Vulkan game with a native Linux port and I could run it without problems on the Intel GPU, too. |
@segvee Did you run Floating Point by forcing Steam Linux Runtime? I think that is the key point here to determine if this is a Pressure Vessel/runtime issue or not. Right click to game-Properties-Compatibility Tools-Steam Linux Runtime ATS is also an OpenGL game. Forcing SLR should be needed there to also determine if issue is Pressure Vessel rooted or not. Fallout Shelter is a free to play game and relatively small. But since it is D3D11, it is not related to your possibly (?) OGL and runtime related issue. Of cource you could try to run it with wined3d for determining if issue also exist there too. |
One more thing, can you post output of this from terminal?
|
Ah I see. Sorry, I think I misunderstood. I forced Steam Linux Runtime for Floating Point and the game started fine. nvidia-smi doesn't report any processes so I think it runs on the Intel GPU. How would I go about running Fallout Shelter with wined3d?
The output of
|
Your inxi output is ok. I asked for it to see if you are on NV only mode. https://github.com/ValveSoftware/Proton#runtime-config-options
From your comments above it might be an Intel driver issue you experienced, rather than a runtime related one. Which in this case it might be good to report them on Mesa tracker. |
It seems like the container runtime is working fine for native Linux games, which I think points us towards this being a Proton-specific issue? |
His Fallout Shelter with wined3d test should yield to ultimate result i think. OpenGL due to wined3d usage ( if forced like mentioned above) and Proton. Since Intel drivers gets very little testing for games ( usually) , it is very possible driver and HW combo ( Tigerlake-i915/Iris) might have some weirdness with select games. My system has KBL so results might differ. |
Thanks for the testing so far, I think you've pondered this issue well enough to consider the runtime environment as healthy, so it's back to something for the Proton devs to ponder. |
It is strange, I installed Fallout Shelter and tried to run it. It started without problems. But it defaulted to the NVidia card. I then tried
It's true but then again Noita works using the Intel GPU when I force Proton 5.0 or a version of Proton that doesn't use the Soldier container environment, i.e. Proton major version 5 works when not using the Soldier container environment but doesn't when using the Soldier container environment. The versions of Proton are 5.0-10 and 5.13-6. I wonder whether the breakage occurs somewhere in between or when switching to the Soldier container environment. |
Reason why Fallout Shelter ran on your dgpu without doing anything is this. https://github.com/doitsujin/dxvk/blob/master/src/dxvk/dxvk_instance.cpp#L183 DXVK and vkd3d tries to run on dgpu by default. Try Noita with latest Proton but with disabling runtime then. flightlessmango/MangoHud#369 (comment) Do this but with Btw that is |
Note that running Proton 5.13 or later without using the container runtime is an entirely unsupported modification. You can try it as a way to compare different scenarios, but do not expect technical support if something doesn't work like that. |
I changed
to
and tried to start Noita using the default Proton version. The game did not start, so I guess we can rule out that possibility. Anything else I should test for? Maybe try different Proton releases between 5.0 and 5.13? When did the change to the Soldier container environment occur? |
Proton 5.13+ (including Experimental) uses soldier. Proton 5.0 and older didn't. Unfortunately this means there is no supported way to distinguish between "regression caused by switching to the container runtime" and "regression in Proton/Wine/DXVK/etc. between 5.0 and 5.13". However, because bypassing the container runtime had the same result as using the same Proton version in the container, that suggests that the important thing here is probably the version of Proton itself (Proton, Wine, DXVK or some other component) rather than the container runtime. |
Yes, if disabling runtime didn't help there with never Proton versions then we can rule out runtime as possible culprit. What i would do in this case is; both leaving a comment with logs in here with runtime enabled Noita issue tracker and checking ProtonDB ( not official but a good place to see how a game works for others including with their system info) to see if it works for other Intel igpu users. Since i already looked there and saw Intel gpu users can run this game on newer Proton's as well, you reported game works on Nvidia dgpu without problems and game works on your igpu if Proton version is set to 5.0; it is either a very edge situation Proton regression or simply your igpu does something on newer Proton versions that Proton doesn't like but somehow other gpu's and vendors are ok with it. So to sum it up:
https://gitlab.freedesktop.org/mesa/mesa/-/issues When reporting Note that Noita is an OpenGL game. |
One last thing to test:
|
I just tested this, no dice. I'm not sure whether I should report that in the Noita tracker. The problem is that this happens to a lot of games using newer versions of Proton. I also tried "Wolfenstein: the new order", "My summer car", "Ostriv", "Mini motorways", "Outer wilds" and many more I had tried earlier. |
Did you use NV prime render offload vars correctly to run it on igpu tho? It should work... |
My launch options for Fallout Shelter look like this: |
please note that check your version with: these upstream improvements have been waiting in limbo for nearly 2 years since the original nvidia driver releases https://www.phoronix.com/scan.php?page=news_item&px=GLXVND-Offload-Improve-1.21 https://download.nvidia.com/XFree86/Linux-x86_64/435.17/README/primerenderoffload.html other resource you can use and reference for Mesa personally i use afaik the older methods "primerun" & "bumblebee" or whatever they were called have been deprecated and abandoned, favoring nvidia-prime alternatives you can test these supported enviornment variables:
also note proton 4.11 & 5.0 have different DXVK requirements: DXVK Version 1.5.2
note this was released in proton 5.0 last to allow using vulkan 1.0 was proton 4.11 |
Hello @arrowgent, your claim that the unreleased xorg-server 1.21 is required for nVidia's prime render offload is not true, the patches were backported to the 1.20.6 release years ago. |
Sooo... since Debian testing now supports my wifi card I was able to go back home again and install Debian (<3). |
I'm having an issue with this currently. Trying to run the windows version of civilization 5 on my iGPU and it just defaults to Nvidia. No launch arguments seem to change the outcome of which GPU is selected currently on manjaro using the hybrid intel-nvidia driver |
Hey, just to be clear: using
is not working? |
No it's not working. Edit: I tried uninstalling the nvidia drivers, and after rebooting my system and relaunching the game, it wouldn't even run, it would crash half way through launching. Vulkaninfo showed an error when trying to get an output stating something about no gpus detected at all. I reinstalled intel-vulkan and the mesa layers with it as well and the game would then run and launch on the integrated graphics. However since reinstalling the nvidia hybrid drivers and using the above arguments, it still decides to force the Nvidia GPU for some reason. |
Hybrid drivers? How do you install your drivers? I am using Debian and I just install |
Hybrid drivers are packaged with Manjaro, It includes nvidia-prime, intel i915 mesa, and the nvidia drivers. By default the intel graphics on my machine are selected. For some reason any games ran through proton just select the dGPU instead of the iGPU by default and there seems to be no way to override it. Nothing in BIOS should be effecting this issue, and no setting like that exists for me. I'm on a Razer Blade Stealth 13 inch. Edit: Currently the only way I'm able to reliably run Proton games with the integrated graphics is by using Optimus Manager and switching the system to exclusively use the iGPU. |
@E-daw: please report a separate issue with full details and logs (see https://github.com/ValveSoftware/steam-runtime/blob/master/doc/reporting-steamlinuxruntime-bugs.md#essential-information). We might be able to help if given more information, but if we keep appending more comments to a previously-fixed issue, it just gets confusing (which makes it less likely that anything will be diagnosed or fixed). |
Hi,
I have a laptop with a dedicated video card but for older games or games that don't require that much power I'd like to use the integrated video card instead of the dedicated one.
The processor is a i7-11800H which has a , glxinfo reports Mesa Intel(R) UHD Graphics (TGL GT1). The mesa version is 4.6 (Compatibility Profile) Mesa 21.2.1 - kisak-mesa PPA.
Now whenever I try to run a game with the dedicated video card I just set
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia %command%
in the launch options for that game and it works fine. In some native Linux games like X4 you can chose the video card from the options menu and for most other native Linux games I just don't set launch options at all and it works fine using the integrated video card.
Unfortunately that does not seem to work with Proton games, e.g. with Noita.
I started the game with just
PROTON_LOG=1 %command%
and tried the following versions of Proton: Experimental, 6.3-5 and 5.13-6. These are also attached here, in that order.steam-881100_proton_experimental.log
steam-881100_proton_6.3-5.log
steam-881100_proton_5.13-6.log
The text was updated successfully, but these errors were encountered: