You are not logged in.

#1 2023-01-10 23:51:35

turbochamp
Member
Registered: 2021-11-05
Posts: 23

Can't seem to force GBM (for Wayland - Nvidia)

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

#2 2023-01-11 08:37:56

seth
Member
Registered: 2012-09-03
Posts: 57,267

Re: Can't seem to force GBM (for Wayland - Nvidia)

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

#3 2024-01-29 22:04:31

siginsig
Member
Registered: 2015-10-28
Posts: 8

Re: Can't seem to force GBM (for Wayland - Nvidia)

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

#4 2024-01-29 22:15:20

seth
Member
Registered: 2012-09-03
Posts: 57,267

Re: Can't seem to force GBM (for Wayland - Nvidia)

I don't want to disable the check using the udev rule

Why?

This should be something that works

Yes "should" …

Offline

#5 2024-01-29 22:21:34

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 22,863

Re: Can't seem to force GBM (for Wayland - Nvidia)

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

#6 2024-01-30 00:18:44

siginsig
Member
Registered: 2015-10-28
Posts: 8

Re: Can't seem to force GBM (for Wayland - Nvidia)

seth wrote:

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

#7 2024-01-30 00:27:00

siginsig
Member
Registered: 2015-10-28
Posts: 8

Re: Can't seem to force GBM (for Wayland - Nvidia)

V1del wrote:

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

#8 2024-01-30 09:22:12

seth
Member
Registered: 2012-09-03
Posts: 57,267

Re: Can't seem to force GBM (for Wayland - Nvidia)

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… tongue

Did you

V1del wrote:

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

#9 2024-02-01 23:43:40

siginsig
Member
Registered: 2015-10-28
Posts: 8

Re: Can't seem to force GBM (for Wayland - Nvidia)

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

#10 2024-02-02 08:51:53

seth
Member
Registered: 2012-09-03
Posts: 57,267

Re: Can't seem to force GBM (for Wayland - Nvidia)

and the external monitor

https://wiki.archlinux.org/title/VRR

seth wrote:

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

Errr… https://wiki.archlinux.org/title/Window … w_managers

Offline

#11 2024-02-02 17:02:41

siginsig
Member
Registered: 2015-10-28
Posts: 8

Re: Can't seem to force GBM (for Wayland - Nvidia)

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

#12 2024-02-02 23:09:11

seth
Member
Registered: 2012-09-03
Posts: 57,267

Re: Can't seem to force GBM (for Wayland - Nvidia)

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

#13 2024-02-12 18:55:20

siginsig
Member
Registered: 2015-10-28
Posts: 8

Re: Can't seem to force GBM (for Wayland - Nvidia)

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

Board footer

Powered by FluxBB