565 release feedback & discussion

[565.57.01] GTK4 apps background CPU usage with Vulkan renderer

As of gtk 4.16 the Vulkan rendering backend is used by default.

GTK4 apps are consuming unexpected CPU cycles while idle in the background when using the Vulkan backend.

This does not occur with the NGL renderer.

This issue is still occurring with the 565.57.01 beta.

For additional info, see initial report for the 560.35.03 driver:

Steps to reproduce

  1. Launch a GTK4 app (e.g. GTK4-demo, Nautilus, gnome-text-editor) using the Vulkan backend
  2. Observe the CPU usage of a GTK4 window’s thread

Current behavior

CPU usage constantly hovering between 2-3%, even when the window is ‘idle’ in the background

Expected outcome

Minimal CPU usage when app is idle, similar to what’s seen when using the ngl renderer

Version information

  • Arch Linux | Kernel 6.11.5
  • Gnome-shell | Mutter 47.1
  • Wayland (meson_options: xwayland=false)
  • Gtk4 4.16.3
  • Mesa 24.2.5
  • nVidia 565.57.01
  • vulkan-icd-loader 1.3.295

Additional information

Here’s where things are spinning:

$ sudo strace -v -fp 9082
strace: Process 9082 attached with 11 threads
[pid  9094] openat(AT_FDCWD, "/proc/stat", O_RDONLY) = 42
[pid  9094] read(42, "cpu  34964 19 18870 9203976 5872"..., 299) = 299
[pid  9094] close(42)                   = 0
[pid  9094] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=5000000},  <unfinished ...>
[pid  9100] <... restart_syscall resumed>) = -1 ETIMEDOUT (Connection timed out)
[pid  9100] futex(0x6322a993e0c0, FUTEX_WAKE_PRIVATE, 1) = 0
[pid  9100] futex(0x7cab2c000f58, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1729865521, tv_nsec=735347000}, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid  9094] <... clock_nanosleep resumed>0x7cab613ffb80) = 0
[pid  9094] openat(AT_FDCWD, "/proc/stat", O_RDONLY) = 42
[pid  9094] read(42, "cpu  34965 19 18870 9203988 5872"..., 299) = 299
[pid  9094] close(42)                   = 0
[pid  9094] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=5000000}, 0x7cab613ffb80) = 0
[pid  9094] openat(AT_FDCWD, "/proc/stat", O_RDONLY) = 42
[pid  9094] read(42, "cpu  34965 19 18870 9204001 5872"..., 299) = 299
[pid  9094] close(42)                   = 0
[pid  9094] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=5000000},  <unfinished ...>
[pid  9100] <... futex resumed>)        = -1 ETIMEDOUT (Connection timed out)
[pid  9100] futex(0x6322a993e0c0, FUTEX_WAKE_PRIVATE, 1) = 0
[pid  9100] futex(0x7cab2c000f58, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1729865521, tv_nsec=745883000}, FUTEX_BITSET_MATCH_ANY <unfinished ...>
[pid  9094] <... clock_nanosleep resumed>0x7cab613ffb80) = 0
[pid  9094] openat(AT_FDCWD, "/proc/stat", O_RDONLY) = 42
[pid  9094] read(42, "cpu  34965 19 18870 9204014 5872"..., 299) = 299
[pid  9094] close(42)                   = 0
[pid  9094] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=5000000}, 0x7cab613ffb80) = 0
[pid  9094] openat(AT_FDCWD, "/proc/stat", O_RDONLY) = 42
[pid  9094] read(42, "cpu  34965 19 18872 9204025 5872"..., 299) = 299
[pid  9094] close(42)                   = 0
[pid  9094] clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=0, tv_nsec=5000000},  <unfinished ...>
[pid  9100] <... futex resumed>)        = -1 ETIMEDOUT (Connection timed out)

nvidia-bug-report-565.57.01.log (16.3 MB)

1 Like