You are not logged in.
So following the wiki here https://wiki.archlinux.org/title/wayland
I have:
- Enabled KMS
- Added env variables (GBM_BACKEND=nvidia-drm and __GLX_VENDOR_LIBRARY_NAME=nvidia)
- In Wayland and X11 run (journalctl -b 0 --grep "renderer for") - no output from command.
In both Sway and Hyprland checking startup messages Nvidia is still using EGL and not GBM. I get errors such as glx extension missing GLX_mesa_query_renderer and then a bunch of EGL errors. So my assumption, right or wrong, is I'm not forcing GBM. I've scoured the Wiki so I must be missing something.
If someone can help provide correct logs or lead me in the right direction, I'd appreciate that.
3070 Ti (HDMI)
525.78.01 drivers
Fully up to date.
Last edited by turbochamp (2023-01-10 23:58:28)
Offline
EGL != eglstreams, https://download.nvidia.com/XFree86/Lin … E/gbm.html
I assume you're trying to solve some kind of problem?
Try the vulkan renderer, https://bbs.archlinux.org/viewtopic.php … 6#p2078186
Offline
I'm getting this too with an RTX 4070. In my journalctl output I see the following:
Jan 29 16:46:32 maverick-legion /usr/lib/gdm-x-session[2459]: (II) LoadModule: "nvidia"
Jan 29 16:46:32 maverick-legion /usr/lib/gdm-x-session[2459]: (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
Jan 29 16:46:32 maverick-legion /usr/lib/gdm-x-session[2459]: (II) Module nvidia: vendor="NVIDIA Corporation"
Jan 29 16:46:32 maverick-legion /usr/lib/gdm-x-session[2459]: MESA-LOADER: failed to open nvidia-drm : /usr/lib/gbm/nvidia-drm _gbm.so: cannot open shared object file: No such file or directory (search paths /usr/lib/gbm, suffix _gbm)
I want to use Wayland with Gnome and I don't want to disable the check using the udev rule. This should be something that works, but for whatever reason I can't get the system to use the NVidia card properly.
Offline
I don't want to disable the check using the udev rule
Why?
This should be something that works
Yes "should" …
Offline
Get rid of those environment variables they're not needed and might break things if you force them haphazardly.
There are a lot of preconditions to enabling GDM without the udev rule, did you cover them all https://wiki.archlinux.org/title/GDM#Wa … DIA_driver (I'm talking about the links linked there that are not simply disabling the rule)
Offline
I don't want to disable the check using the udev rule
Why?
When I enable Wayland by overriding the udev rule, the performance on my second monitor is very poor. I think the reason for this is because the card isn't actually setup properly, and that by disabling the checks in the udev rule, a problem is being masked rather than actually setting the system up properly. For example, running glxgears on my laptops internal monitor gives me ~230 fps, but running it on the external monitor I only get 22 fps, despite the vsync of the monitor being 60 Hz.
Also, when I fractionally scale the external monitor up, when I run chrome with the proper options so that the content doesn't look blurry, it takes forever to load, and there are a bunch of errors spit out by the gpu process.
These things lead me to believe that the card isn't actually setup properly.
Offline
Get rid of those environment variables they're not needed and might break things if you force them haphazardly.
There are a lot of preconditions to enabling GDM without the udev rule, did you cover them all https://wiki.archlinux.org/title/GDM#Wa … DIA_driver (I'm talking about the links linked there that are not simply disabling the rule)
I did to the best of my ability to read and follow along.
So I have the following for my kernel parameters:
[maverick@maverick-legion ~]$ cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=65d96607-2e92-4237-a307-7f1b9f4a3868 rw loglevel=3 quiet nvidia_drm.modeset=1
Then in the mkinit.conf I am preloading the nvidia modules:
[maverick@maverick-legion ~]$ cat /etc/mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
...
...
...
And then I created the etc/modprobe.d/nvidia-power-management.conf and put the following contents in it:
[maverick@maverick-legion ~]$ cat /etc/modprobe.d/nvidia-power-management.conf
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp
I also have the three nvidia services enabled to run.
Reran mkinitcpio and rebuilt my grub config just to be on the safe side and it still doesn't seem to like my nvidia setup.
Last edited by siginsig (2024-01-30 00:28:12)
Offline
When I enable Wayland by overriding the udev rule, the performance on my second monitor is very poor.
The rule just "tricks" GDM, it'll not cause that slowdown, but
the card isn't actually setup properly … disabling the checks in the udev rule, a problem is being masked
is a valid concern.
You might have to mask the rule still, gnome can be quite a diva…
Did you
Get rid of those environment variables
?
Please post your complete system journal for the boot failing to use wayland
sudo journalctl -b | curl -F 'file=@-' 0x0.st
Please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General (for a general view of the HW setup, can be from the last xorg start)
b/c of the 230/60/22fps
for OUT in /sys/class/drm/card0*; do echo $OUT; edid-decode $OUT/edid; echo "================="; done
You'll need https://aur.archlinux.org/packages/edid-decode-git
You can unfortunately no longer disable the gnome/mutter vsync: https://bbs.archlinux.org/viewtopic.php … 5#p2143255
But that won't work on a hybridgraphics system.
Offline
Hello
So the reason I wanted to switch to Wayland was to use a tiling window manager like Sway or Hpyrland. While going through the process of setting those up, I ended up using the nouveau drivers instead of the nvidia drivers. I did this because both Sway and Hyprland made comments about using the nvidia drivers as being unsupported.
What I have noticed is that the nouveau driver works great with the laptop screen, but I still get poor performance on the external monitor. This leads me to believe that the issue isn't with the nvidia drivers, because they have been taken out of the equation, but rather something to do with wayland itself and the external monitor. I'm going to dig a little deeper into the issue. I think it may have something to do with the concept of reverse prime (if nouveau does something like this) where when you have something plugged into an external port, that it renders that in a separate buffer and then sends that they the integrated card. I could do a quick test I guess by disabling the internal card in the BIOS (if I have that option, I haven't really looked yet), but I think that I would like to avoid that if I can.
Also the 550 drivers for nvidia should be out soon, and they claim those fix a bunch of issues with wayland. I gave the beta versions a try and I didn't notice a difference, so I am not sure if those claims are accurate at this point.
All that to say that I will get back to this post when I have a chance to do a little more testing.
Offline
and the external monitor
https://wiki.archlinux.org/title/VRR
b/c of the 230/60/22fps
for OUT in /sys/class/drm/card0*; do echo $OUT; edid-decode $OUT/edid; echo "================="; done
You'll need https://aur.archlinux.org/packages/edid-decode-git
the reason I wanted to switch to Wayland was to use a tiling window manager like Sway or Hpyrland
Offline
Alright, I removed the Udev rule that allows me to use wayland. I had also previously removed those environment variables.
Here is a link to my journalctl:
https://0x0.st/HDxC.txt
Here is a link to the Xorg.log.0:
https://0x0.st/HD3i.0.log
Here is the edid information:
/sys/class/drm/card0
/sys/class/drm/card0/edid: No such file or directory
=================
/sys/class/drm/card0-DP-1
edid-decode (hex):
00 ff ff ff ff ff ff 00 10 ac 79 42 4c 50 59 41
09 21 01 04 b5 3c 22 78 3a df 15 ad 50 44 ad 25
0f 50 54 a5 4b 00 d1 00 d1 c0 b3 00 a9 40 81 80
81 00 71 4f e1 c0 4d d0 00 a0 f0 70 3e 80 30 20
35 00 55 50 21 00 00 1a 00 00 00 ff 00 43 52 54
34 32 50 33 0a 20 20 20 20 20 00 00 00 fc 00 44
45 4c 4c 20 55 32 37 32 33 51 45 0a 00 00 00 fd
00 17 56 0f 8c 36 01 0a 20 20 20 20 20 20 01 18
02 03 17 f1 4a 10 1f 20 04 13 12 11 03 02 01 23
09 07 07 83 01 00 00 a3 66 00 a0 f0 70 1f 80 30
20 35 00 55 50 21 00 00 1a 56 5e 00 a0 a0 a0 29
50 30 20 35 00 55 50 21 00 00 1a 11 44 00 a0 80
00 1f 50 30 20 36 00 55 50 21 00 00 1a bf 16 00
a0 80 38 13 40 30 20 3a 00 55 50 21 00 00 1a 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a9
----------------
Block 0, Base EDID:
EDID Structure Version & Revision: 1.4
Vendor & Product Identification:
Manufacturer: DEL
Model: 17017
Serial Number: 1096372300 (0x4159504c)
Made in: week 9 of 2023
Basic Display Parameters & Features:
Digital display
Bits per primary color channel: 10
DisplayPort interface
Maximum image size: 60 cm x 34 cm
Gamma: 2.20
DPMS levels: Off
Supported color formats: RGB 4:4:4, YCrCb 4:4:4, YCrCb 4:2:2
First detailed timing includes the native pixel format and preferred refresh rate
Color Characteristics:
Red : 0.6787, 0.3134
Green: 0.2685, 0.6787
Blue : 0.1445, 0.0595
White: 0.3134, 0.3291
Established Timings I & II:
IBM : 720x400 70.081663 Hz 9:5 31.467 kHz 28.320000 MHz
DMT 0x04: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz
DMT 0x06: 640x480 75.000000 Hz 4:3 37.500 kHz 31.500000 MHz
DMT 0x09: 800x600 60.316541 Hz 4:3 37.879 kHz 40.000000 MHz
DMT 0x0b: 800x600 75.000000 Hz 4:3 46.875 kHz 49.500000 MHz
DMT 0x10: 1024x768 60.003840 Hz 4:3 48.363 kHz 65.000000 MHz
DMT 0x12: 1024x768 75.028582 Hz 4:3 60.023 kHz 78.750000 MHz
DMT 0x24: 1280x1024 75.024675 Hz 5:4 79.976 kHz 135.000000 MHz
Standard Timings:
DMT 0x45: 1920x1200 59.884600 Hz 16:10 74.556 kHz 193.250000 MHz
DMT 0x52: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz
DMT 0x3a: 1680x1050 59.954250 Hz 16:10 65.290 kHz 146.250000 MHz
DMT 0x33: 1600x1200 60.000000 Hz 4:3 75.000 kHz 162.000000 MHz
DMT 0x23: 1280x1024 60.019740 Hz 5:4 63.981 kHz 108.000000 MHz
DMT 0x1c: 1280x800 59.810326 Hz 16:10 49.702 kHz 83.500000 MHz
DMT 0x15: 1152x864 75.000000 Hz 4:3 67.500 kHz 108.000000 MHz
DMT 0x54: 2048x1152 60.000000 Hz 16:9 72.000 kHz 162.000000 MHz (RB)
Detailed Timing Descriptors:
DTD 1: 3840x2160 59.996625 Hz 16:9 133.312 kHz 533.250000 MHz (597 mm x 336 mm)
Hfront 48 Hsync 32 Hback 80 Hpol P
Vfront 3 Vsync 5 Vback 54 Vpol N
Display Product Serial Number: 'CRT42P3'
Display Product Name: 'DELL U2723QE'
Display Range Limits:
Monitor ranges (Range Limits Only): 23-86 Hz V, 15-140 kHz H, max dotclock 540 MHz
Extension blocks: 1
Checksum: 0x18
----------------
Block 1, CTA-861 Extension Block:
Revision: 3
Underscans IT Video Formats by default
Basic audio support
Supports YCbCr 4:4:4
Supports YCbCr 4:2:2
Native detailed modes: 1
Video Data Block:
VIC 16: 1920x1080 60.000000 Hz 16:9 67.500 kHz 148.500000 MHz
VIC 31: 1920x1080 50.000000 Hz 16:9 56.250 kHz 148.500000 MHz
VIC 32: 1920x1080 24.000000 Hz 16:9 27.000 kHz 74.250000 MHz
VIC 4: 1280x720 60.000000 Hz 16:9 45.000 kHz 74.250000 MHz
VIC 19: 1280x720 50.000000 Hz 16:9 37.500 kHz 74.250000 MHz
VIC 18: 720x576 50.000000 Hz 16:9 31.250 kHz 27.000000 MHz
VIC 17: 720x576 50.000000 Hz 4:3 31.250 kHz 27.000000 MHz
VIC 3: 720x480 59.940060 Hz 16:9 31.469 kHz 27.000000 MHz
VIC 2: 720x480 59.940060 Hz 4:3 31.469 kHz 27.000000 MHz
VIC 1: 640x480 59.940476 Hz 4:3 31.469 kHz 25.175000 MHz
Audio Data Block:
Linear PCM:
Max channels: 2
Supported sample rates (kHz): 48 44.1 32
Supported sample sizes (bits): 24 20 16
Speaker Allocation Data Block:
FL/FR - Front Left/Right
Detailed Timing Descriptors:
DTD 2: 3840x2160 29.980602 Hz 16:9 65.688 kHz 262.750000 MHz (597 mm x 336 mm)
Hfront 48 Hsync 32 Hback 80 Hpol P
Vfront 3 Vsync 5 Vback 23 Vpol N
DTD 3: 2560x1440 59.950550 Hz 16:9 88.787 kHz 241.500000 MHz (597 mm x 336 mm)
Hfront 48 Hsync 32 Hback 80 Hpol P
Vfront 3 Vsync 5 Vback 33 Vpol N
DTD 4: 2048x1280 60.196470 Hz 16:10 78.918 kHz 174.250000 MHz (597 mm x 336 mm)
Hfront 48 Hsync 32 Hback 80 Hpol P
Vfront 3 Vsync 6 Vback 22 Vpol N
DTD 5: 2048x1080 23.996617 Hz 256:135 26.372 kHz 58.230000 MHz (597 mm x 336 mm)
Hfront 48 Hsync 32 Hback 80 Hpol P
Vfront 3 Vsync 10 Vback 6 Vpol N
Checksum: 0xa9 Unused space in Extension Block: 32 bytes
=================
/sys/class/drm/card0-DP-2
EDID of '/sys/class/drm/card0-DP-2/edid' was empty.
=================
/sys/class/drm/card0-eDP-1
EDID of '/sys/class/drm/card0-eDP-1/edid' was empty.
=================
/sys/class/drm/card0-HDMI-A-1
EDID of '/sys/class/drm/card0-HDMI-A-1/edid' was empty.
=================
Maybe you are right, maybe I am just banging my head against a wall trying to get Wayland to work properly, and I should just stick with X, and try something like the Awesome window manager.
Offline
You internal display runs 2560x1600 at 240.002507 and is https://wiki.archlinux.org/title/VRR capable.
The external 'DELL U2723QE' and it can run 3840x2160@60Hz - but maybe is limited to 30Hz (b/c of the 22fps)?
What if you run the external output at 2560x1440 and the internal one at 60Hz (no VRR)?
And yes, it's most likely prime-sync related.
Offline
So my issue appears to have been caused by a multiple things. I wasn't enabling Prime properly. I needed to do the following:
In /etc/udev/rules.d/80-nvidia-pm.rules
# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"
# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"
and in /etc/modprobe.d/nvidia-pm.conf
options nvidia "NVreg_DynamicPowerManagement=0x02"
That was taken from this website:
https://wiki.archlinux.org/title/PRIME
Now in Gnome, I had to make sure both monitors had the same refresh rate and I had to run glxgears with prime-run and I had to start it on the second monitor. If I did all that I got 60 fps in Gears.
In Hyprland, I had to disable the following in the Hyprland confing file:
opengl {
nvidia_anti_flicker = false
}
Now disbaling that got me 60 FPS for glxgears, but it caused other problems. I ended up turning that back on, and living with some of the performance issues in Hyprland, becuase turning it off caused some screen tearing in some cases that I didn't really like. So for now I can live with the setup.
Offline