Nvidia Delayed Frame Bug: Difference between revisions

From JoBaPedia
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 89: Line 89:
  XDG_CURRENT_DESKTOP=GNOME
  XDG_CURRENT_DESKTOP=GNOME


It is important to not have environment variable `QT_QPA_PLATFORM=wayland` set
It is important to not have environment variable QT_QPA_PLATFORM=wayland set.
 
It could be set in many places (service files, user profiles, ...)
It could be set in many places (service files, user profiles, ...)


Line 107: Line 108:


Check with
Check with
  systemctl --user show-environment
  systemctl --user show-environment | grep QT_QPA_PLATFORM
what's the difference to env?
what's the difference to env?

Latest revision as of 15:56, 22 January 2024

Nvidia Delayed Frames Bug

Since quite some time (over a year) I have massive problems with native Nvidia drivers for my 1650 super on OpenSuse Tumbleweed.

Currently I run Gnome on Wayland.

Symptom is in many applications graphics do not work properly:

  • Chrome (and many other apps, like yast or my own chordsplay tk app) has delayed frames: On user action the gui is not updated or not fully updated. A mouse click somewhere in the window can cause a redraw most of the time.
  • VLC videos start stuttering and displaying frames in the wrong sequence. Can be helped by selecting Tools/Settings/Video/Output: XVideooutput (XCB)

Record configuration / status

  • X environment
job4:~ > env | egrep 'XDG_SESSION|XDG_CURRENT'
XDG_SESSION_DESKTOP=gnome
XDG_SESSION_TYPE=wayland
XDG_CURRENT_DESKTOP=GNOME
joachim  20208  0.6  1.8 4900652 606332 ?      Rsl  Jan09 111:28  \_ /usr/bin/gnome-shell
joachim  20700  0.3  0.8 485688 291376 ?       S    Jan09  69:30  |   \_ /usr/bin/Xwayland :0 -rootless -noreset -accessx -core -auth 
/run/user/1000/.mutter-Xwaylandauth.ANUYG2 -listenfd 4 -listenfd 5 -displayfd 6 -initfd 7 -byteswappedclients -enable-ei-portal
joachim  20868  0.0  0.4 1036228 163916 ?      Sl   Jan09   0:22  |   \_ /usr/libexec/mutter-x11-frames
  • Kernel Commandline
job4:~ > cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-6.6.3-1-default root=/dev/mapper/sys15-root resume=/dev/sys15/swap showopts iommu=pt nosimplefb=1
  • X configuration
job4:~ > cat /etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 535.104.05

Section "ServerLayout"
   Identifier     "Layout0"
   Screen      0  "Screen0"
   InputDevice    "Keyboard0" "CoreKeyboard"
   InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
   # generated from data in "/etc/sysconfig/mouse"
   Identifier     "Mouse0"
   Driver         "mouse"
   Option         "Protocol" "IMPS/2"
   Option         "Device" "/dev/input/mice"
   Option         "Emulate3Buttons" "yes"
   Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
   # generated from default
   Identifier     "Keyboard0"
   Driver         "kbd"
EndSection

Section "Monitor"
   Identifier     "Monitor0"
   VendorName     "Unknown"
   ModelName      "Unknown"
   Option         "DPMS"
EndSection

Section "Device"
   Identifier     "Device0"
   Driver         "nvidia"
   VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
   Identifier     "Screen0"
   Device         "Device0"
   Monitor        "Monitor0"
   DefaultDepth    24
   SubSection     "Display"
       Depth       24
   EndSubSection
EndSection

Xorg works

  • select "Gnome on Xorg" during session login
job4:~ > env | egrep 'XDG_SESSION|XDG_CURRENT'
XDG_SESSION_DESKTOP=gnome-xorg
XDG_SESSION_TYPE=x11
XDG_CURRENT_DESKTOP=GNOME

It is important to not have environment variable QT_QPA_PLATFORM=wayland set.

It could be set in many places (service files, user profiles, ...)

/etc/profile
/ect/profile.d/
/etc/bashrc.*
~/.bashrc
~/.profile
~/.config/environment.d/
/etc/systemd/user.conf
/etc/systemd/system/user*/
/etc/systemd/user.conf
/usr/lib/systemd/
/etc/systemd/

After removing the variable from .bashrc I had to reboot to get rid of it. Logout/login was not enough.

Check with

systemctl --user show-environment | grep QT_QPA_PLATFORM

what's the difference to env?