You are not logged in.
I can't run any proton games when using the normal linux kernel.
If I unload the nvidia modules and restart steam, the games will run, but obviously without gpu acceleration.
It used to work a few weeks ago, although i can't say which specific kernel/nvidia version broke it
Proton games work again if i boot into linux-lts.
Suggestions would be great, as I have no idea where to start.
I use steam flatpak
All packages/flatpaks are up to date
nvidia 535.113.01-5 nvidia-lts 1:535.113.01-4
linux 6.5.7.arch1-1 linux-lts 6.1.57-1
KDE Plasma
X11
Using ext4 everywhere
Tried various proton versions aswell as PROTON_USE_WINED3D=1
steam log after running the game:
linux: https://pastebin.com/Aw5DGTEF
linux-lts: https://pastebin.com/rznN2mVt
Offline
535.113 is within the last few weeks but that really should work. How do you install your nvidia driver? The dkms package, the run file from Nvidia? I personally use the beta driver 535.43.13 but I have to, it's a Starfield thing.
Offline
I installed the nvidia drivers with pacman, nvidia and nvidia-lts packages. Both are 535.113.01
Offline
I'm certainly not the most qualified to advise you but I'd say try to switch back to the regular kernel and install nvidia-dkms. If there's a problem at least that will give us an error in the build log that might be helpful. I'm getting 'this site can't be reached' for your pastebins so I have no idea what your logs said.
Edit: Are you on an optimus setup? Having an internal GPU and a discrete one? If that's the case you need nvidia-prime. Though if everything works on the lts kernel that's probably not your issue. I'd also say run lsmod on the regular kernel but if the module's isn't loaded at all you would notice that before you got to the point of trying to play a game, unless you're on optimus.
Last edited by tdtooke (2023-10-13 21:28:21)
Offline
nvidia and nvidia-lts are the same driver version, so I dont see how nvidia-dkms would change anything, but I'll give it a try later.
I have a vfio setup and nvidia-prime installed. Native linux games work fine with both kernels and they are obviously using the nvidia gpu.
Offline
I wanted you to get nvidia-dkms because that will build the nvidia module locally instead of you just having a package so if there's something wrong maybe a usable message will come out of it. I was finally able to view your pastebins, I guess my work blocks that. Just looking at it it makes me think there's an architecture mismatch happening. Running 64bit stuff in a 32bit prefix, something like that but if that were the case it wouldn't work on lts either. I really have no idea. You might get lucky and dkms will have an error log if there's a problem with building it for the regular kernel.
Offline
The log for linux shows several page faults in running wine .
I use steam flatpak
Have you tried with steam from archlinux repos ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
I wanted you to get nvidia-dkms because that will build the nvidia module locally instead of you just having a package so if there's something wrong maybe a usable message will come out of it. I was finally able to view your pastebins, I guess my work blocks that. Just looking at it it makes me think there's an architecture mismatch happening. Running 64bit stuff in a 32bit prefix, something like that but if that were the case it wouldn't work on lts either. I really have no idea. You might get lucky and dkms will have an error log if there's a problem with building it for the regular kernel.
nvidia-dkms installed without issues and works exactly like nvidia: only issues with proton games when not using lts kernel.
Have you tried with steam from archlinux repos ?
I don't use that because it causes issues in some games and proton doesn't work with it, no matter which kernel I use.
That being said native wine never worked on my system when nvidia drivers are loaded, so that might be the underlying issue. But I never cared because proton worked with flatpak, which is all I use it for.
The log for linux shows several page faults in running wine .
I didn't realize that. I found a thread with similar issues: https://bbs.archlinux.org/viewtopic.php?id=272856
Although I don't know what to do, since I don't use optimus manager.
Offline
I have a vfio setup and nvidia-prime installed.
Native linux games work fine with both kernels and they are obviously using the nvidia gpu.
That suggests your system is running as an nvidia optimus system. Seems like it's time to look into your hardware and basic setup.
Did you set the nvidia card as primary / boot-up card in the uefi/bios firmware ?
Please post full lspci -k output .
X or wayland ?
Do you use a Display Manager (gdm, sddm, ly , lightdm to name a few) ?
What WM/DE (X11) or compositor (wayland)?
Last edited by Lone_Wolf (2023-10-14 14:40:17)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Did you set the nvidia card as primary / boot-up card in the uefi/bios firmware ?
No, I have a vfio setup so I can pass my nvidia gpu to a vm. I boot with my igpu and have my nvidia gpu isolated and nvidia modules blacklisted on boot.
When I want to use my nvidia gpu on linux I manually modprobe the nvidia modules and prime-run whatever I need the nvidia gpu for.
Using KDE Plasma, X11, sddm
lspci -k:
00:00.0 Host bridge: Intel Corporation 12th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
Subsystem: ASRock Incorporation 12th Gen Core Processor Host Bridge/DRAM Registers
00:01.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x16 Controller #1 (rev 02)
Subsystem: ASRock Incorporation 12th Gen Core Processor PCI Express x16 Controller
Kernel driver in use: pcieport
00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
Subsystem: ASRock Incorporation AlderLake-S GT1
Kernel driver in use: i915
Kernel modules: i915
00:06.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 (rev 02)
Kernel driver in use: pcieport
00:14.0 USB controller: Intel Corporation Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller (rev 11)
Subsystem: ASRock Incorporation Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:14.2 RAM memory: Intel Corporation Alder Lake-S PCH Shared SRAM (rev 11)
00:15.0 Serial bus controller: Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #0 (rev 11)
Subsystem: ASRock Incorporation Alder Lake-S PCH Serial IO I2C Controller
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
00:16.0 Communication controller: Intel Corporation Alder Lake-S PCH HECI Controller #1 (rev 11)
Subsystem: ASRock Incorporation Alder Lake-S PCH HECI Controller
Kernel driver in use: mei_me
Kernel modules: mei_me
00:17.0 SATA controller: Intel Corporation Alder Lake-S PCH SATA Controller [AHCI Mode] (rev 11)
Subsystem: ASRock Incorporation Alder Lake-S PCH SATA Controller [AHCI Mode]
Kernel driver in use: ahci
00:1c.0 PCI bridge: Intel Corporation Alder Lake-S PCH PCI Express Root Port #1 (rev 11)
Subsystem: ASRock Incorporation Alder Lake-S PCH PCI Express Root Port
Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation Device 7a86 (rev 11)
Subsystem: ASRock Incorporation Device 7a86
00:1f.3 Audio device: Intel Corporation Alder Lake-S HD Audio Controller (rev 11)
Subsystem: ASRock Incorporation Alder Lake-S HD Audio Controller
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl
00:1f.4 SMBus: Intel Corporation Alder Lake-S PCH SMBus Controller (rev 11)
Subsystem: ASRock Incorporation Alder Lake-S PCH SMBus Controller
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
00:1f.5 Serial bus controller: Intel Corporation Alder Lake-S PCH SPI Controller (rev 11)
Subsystem: ASRock Incorporation Alder Lake-S PCH SPI Controller
Kernel driver in use: intel-spi
Kernel modules: spi_intel_pci
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (17) I219-V (rev 11)
Subsystem: ASRock Incorporation Ethernet Connection (17) I219-V
Kernel driver in use: e1000e
Kernel modules: e1000e
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd GA104 [GeForce RTX 3070]
Kernel driver in use: vfio-pci
Kernel modules: nouveau, nvidia_drm, nvidia
01:00.1 Audio device: NVIDIA Corporation GA104 High Definition Audio Controller (rev a1)
Subsystem: Gigabyte Technology Co., Ltd GA104 High Definition Audio Controller
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller S4LV008[Pascal]
Subsystem: Samsung Electronics Co Ltd Device a801
Kernel driver in use: nvme
Kernel modules: nvme
03:00.0 Network controller: Qualcomm Atheros AR93xx Wireless Network Adapter (rev 01)
Subsystem: Qualcomm Atheros AR93xx Wireless Network Adapter
Kernel driver in use: ath9k
Kernel modules: ath9k
and after loading nvidia modules:
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd GA104 [GeForce RTX 3070]
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
01:00.1 Audio device: NVIDIA Corporation GA104 High Definition Audio Controller (rev a1)
Subsystem: Gigabyte Technology Co., Ltd GA104 High Definition Audio Controller
Kernel modules: snd_hda_intel
Offline
Dynamic passthrough complicates things.
Can you boot to a non-vfio configuration with both igp & dgp present for linux and test if things work then ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
I disabled vfio so I have nvidia drivers loaded on boot, but that didn't change anything.
I also loaded the nvidia modules and changed the X11 config so that X11 is running on the GPU.
With that Proton games aswell as wine works with gpu acceleration, but that is not what I want since I can't unload the nvidia drivers like that for vfio use (without restarting X11).
I assume something is wrong with my prime setup, not sure why that would not be the case with the lts kernel.
Last edited by wsk (2023-10-16 13:52:35)
Offline
I do vaguely remember something changed for intel+nvidia combination with recent kernels / intel processors that affected how/when the nvidia card worked.
For clarity :
I also loaded the nvidia modules and changed the X11 config so that X11 is running on the GPU.
With that Proton games aswell as wine works with gpu acceleration,
this was with the latest kernel ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
this was with the latest kernel ?
Yes.
I also tried to find out which was the last kernel that worked, but I cant get my system to boot with kernels older than 6.5.1 (also has this problem).
Offline
I tried using wayland on the newest kernel, that seems to work without issues.
I'm probably just gonna use the lts kernel until I can fully switch to wayland.
Offline
I'm probably just gonna use the lts kernel until I can fully switch to wayland.
As 6.6 is the last kernel release of this year, it is expected to become the next LTS early in 2024 .
When that happens 6.1 lts will be dropped to aur.
You should keep an eye on how 6.6.x performs and if it doesn't do what you want/need look into building & maintaining your own lts kernel version using aur packages.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Maybe we ignore steam for the moment and inspect the desired setup:
1. Please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General
2. glxinfo -B; prime-run glxinfo -B
Offline
As 6.6 is the last kernel release of this year, it is expected to become the next LTS early in 2024 .
When that happens 6.1 lts will be dropped to aur.You should keep an eye on how 6.6.x performs and if it doesn't do what you want/need look into building & maintaining your own lts kernel version using aur packages.
Ok, thanks for letting me know.
Maybe we ignore steam for the moment and inspect the desired setup
Makes sense, as its probably not a steam issue. I have mentioned before that wine never really worked with nvidia drivers loaded.
1. Please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General
https://pastebin.com/raw/B0KPdQA9
2. glxinfo -B; prime-run glxinfo -B
glxinfo -B;
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel (0x8086)
Device: Mesa Intel(R) UHD Graphics 770 (ADL-S GT1) (0x4680)
Version: 23.2.1
Accelerated: yes
Video memory: 64066MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics 770 (ADL-S GT1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.2.1-arch1.2
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.2.1-arch1.2
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 23.2.1-arch1.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
prime-run glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 8192 MB
Total available memory: 8192 MB
Currently available dedicated video memory: 7965 MB
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce RTX 3070/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 535.113.01
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6.0 NVIDIA 535.113.01
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 535.113.01
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
Offline
[ 13.280] (==) No screen section available. Using defaults.
[ 13.280] (**) |-->Screen "Default Screen Section" (0)
[ 13.280] (**) | |-->Monitor "<default monitor>"
[ 13.280] (==) No device specified for screen "Default Screen Section".
Using the first device section listed.
[ 13.280] (**) | |-->Device "intel"
[ 13.280] (==) No monitor specified for screen "Default Screen Section".
looks like optimus-manager and the nvidia GPU isn't utilized by that xorg log, so I'm not sure how the "prime-run glxinfo -B" output came to be?
Offline
looks like optimus-manager and the nvidia GPU isn't utilized by that xorg log, so I'm not sure how the "prime-run glxinfo -B" output came to be?
Thats because I have a vfio setup, the nvidia modules aren't loaded after booting. See #10
Offline
But the OP says
I can't run any proton games when using the normal linux kernel.
If I unload the nvidia modules and restart steam, the games will run, but obviously without gpu acceleration.
So
1. talks about a condition where the nvidia module is loaded as desired but disfunctional
2. how do you expect to use the nvidia GPU on the host when you're passing it through (cause that's not gonna happen)
Are you starting the X11 server, then stop the passthrough, then load nvidia, don't restart the X11 and try to prime-run?
What did the X11 server look like when running the above "prime-run glxinfo -B"?
Offline
2. how do you expect to use the nvidia GPU on the host when you're passing it through (cause that's not gonna happen)
copied from post #10
No, I have a vfio setup so I can pass my nvidia gpu to a vm. I boot with my igpu and have my nvidia gpu isolated and nvidia modules blacklisted on boot.
When I want to use my nvidia gpu on linux I manually modprobe the nvidia modules and prime-run whatever I need the nvidia gpu for.Using KDE Plasma, X11, sddm
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Are you starting the X11 server, then stop the passthrough, then load nvidia, don't restart the X11 and try to prime-run?
cause that's not gonna happen
Offline
Let me explain how I use my setup.
I followed the instructions from the wiki for my vfio setup: https://wiki.archlinux.org/title/PCI_pa … h_via_OVMF
I boot my PC, I automatically get logged in and X11/KDE start automatically (X11 is running on the igpu).
At this point my dgpu has the vfio-pci driver loaded:
$ lspci -k
...
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd GA104 [GeForce RTX 3070]
Kernel driver in use: vfio-pci
Kernel modules: nouveau, nvidia_drm, nvidia
Which means that I can't use it on my host to e.g. prime-run something.
But I can start a VM (in my case with virt-manager) which will bind the dgpu to the VM, allowing the guest to use it.
When I'm done with the VM, I can shut it down, which will unbind the dgpu.
Lets say I'm done with my VM and want to use the dgpu on my host now.
If the dgpu is not bound to a VM (so if all VMs are shut down) I can unload the vfio-pci driver and load the nvidia drivers:
modprobe -r vfio_pci
modprobe nvidia
modprobe nvidia_uvm
modprobe nvidia_modeset
systemctl start nvidia-persistenced
(later I can do this in reverse again to load the vfio-pci drivers and use the dgpu in a VM)
Now the dgpu can be used on my host, without restarting X11 or anything.
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [GeForce RTX 3070] (rev a1)
Subsystem: Gigabyte Technology Co., Ltd GA104 [GeForce RTX 3070]
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
Now the dgpu is in use by the nvidia driver, which means that I can't pass it to VMs anymore, but I can e.g. prime-run games.
(this is also where I ran prime-run glxinfo -B)
So now I can start Steam and run native games which will be able to use my dgpu.
And usually I can start proton games the same way, but as mentioned this only works on linux-lts since this issue came up.
And whenever I'm done with gaming I can unload the nvidia drivers (after making sure nothing uses the dgpu) and load the vfio-pci driver and pass the dgpu through to a VM, again without restarting X11.
systemctl stop nvidia-persistenced
modprobe -r nvidia_uvm
modprobe -r nvidia_modeset
modprobe -r nvidia
modprobe vfio_pci
Hopefully this clears things up.
Offline
Please test whether it works if you restart the X11 server after loading the nvidia modules and also post an xorg log from a relevant session w/ main and LTS kernel after this procedure (w/o restarting the server)
Offline