[560.35.03] GTK4 apps background CPU usage with Vulkan renderer

Originally filed against the GTK project:

This was quickly identified as an nVidia driver issue.

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.

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 560.35.03
  • 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-560.35.03.log (15.9 MB)

I’d imagine this would be considered a low-priority issue as it’s “only” unnecessary extra CPU usage.

Would be great to see any confirmation/ack from nVidia or others though.

As a non-gamer, productivity-focused type of user this is a dealbreaker for using to the default Vulkan GTK backend.

Same behavior with the latest 565 series beta driver:

I’ll try reporting the issue at the open module GitLab instance in hopes of getting this addressed prior to the next Production Branch driver release.

Unfortunately that issue tracker is only supposed to be used for problems with the open module that do not occur with the proprietary driver.

This issue is still present with nVidia 565.77 driver, and is preventing use of the default Vulkan backend for GTK4 applications.

I’m concerned the issue may persist into the next Production Branch driver.

I’ve gathered some additional data beyond the strace in the description above…

Full perf report
# To display the perf.data header info, please use --header/--header-only options.
#
#
# Total Lost Samples: 0
#
# Samples: 5  of event 'cpu_atom/cycles/Pu'
# Event count (approx.): 1744993
#
# Children      Self       Samples  Command    Shared Object                Symbol                
# ........  ........  ............  .........  ...........................  ......................
#
    99.27%    99.27%             1  gtk4-demo  libc.so.6                    [.] read
            |
            ---0x741912a01c6e
               read

    99.27%     0.00%             0  gtk4-demo  libnvidia-eglcore.so.565.77  [.] 0x0000741912a01c6e
            |
            ---0x741912a01c6e
               read

     0.73%     0.00%             0  gtk4-demo  [unknown]                    [k] 0000000000000000
            |
            ---0
               0x741912a01df7
               __nanosleep
               clock_nanosleep

     0.73%     0.00%             0  gtk4-demo  libnvidia-eglcore.so.565.77  [.] 0x0000741912a01df7
            |
            ---0x741912a01df7
               __nanosleep
               clock_nanosleep

     0.73%     0.00%             0  gtk4-demo  libc.so.6                    [.] __nanosleep
            |
            ---__nanosleep
               clock_nanosleep

     0.73%     0.00%             0  gtk4-demo  libc.so.6                    [.] clock_nanosleep
            |
            ---clock_nanosleep

     0.73%     0.73%             3  gtk4-demo  [unknown]                    [k] 0xffffffffb0e01908
            |
            ---0
               0x741912a01df7
               __nanosleep
               clock_nanosleep

     0.00%     0.00%             1  gtk4-demo  [unknown]                    [k] 0xffffffffb0e001c8


# Samples: 114  of event 'cpu_core/cycles/Pu'
# Event count (approx.): 1099021111
#
# Children      Self       Samples  Command          Shared Object                Symbol                    
# ........  ........  ............  ...............  ...........................  ..........................
#
    46.01%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01d0a
            |
            ---0x741912a01d0a
               |          
                --45.83%--sscanf
                          |          
                          |--33.40%--0x74192f8758dc
                          |          
                           --10.59%--0x74192f8759c6
                                     |          
                                      --10.03%--0x74192f85cacf

    46.00%     0.16%             2  gtk4-demo        libc.so.6                    [.] sscanf
            |
            ---sscanf
               |          
               |--33.40%--0x74192f8758dc
               |          
                --10.59%--0x74192f8759c6
                          |          
                           --10.03%--0x74192f85cacf

    40.31%     0.00%             0  gtk4-demo        [unknown]                    [k] 0x89495541f6894956
            |
            ---0x89495541f6894956
               0x741912a04170
               |          
                --39.51%--clock_gettime

    40.31%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a04170
            |
            ---0x741912a04170
               |          
                --39.51%--clock_gettime

    39.51%    39.51%             2  gtk4-demo        libc.so.6                    [.] clock_gettime
            |
            ---0x89495541f6894956
               0x741912a04170
               clock_gettime

    33.40%    33.40%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000668da
            |
            ---0x741912a01d0a
               sscanf
               0x74192f8758dc

    33.40%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8758dc
            |
            ---0x74192f8758dc

    10.59%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8759c6
            |
            ---0x74192f8759c6
               |          
                --10.03%--0x74192f85cacf

    10.03%    10.03%             1  gtk4-demo        libc.so.6                    [.] 0x000000000004dacc
            |
            ---0x741912a01d0a
               sscanf
               0x74192f8759c6
               0x74192f85cacf

    10.03%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f85cacf
            |
            ---0x74192f85cacf

    10.01%     0.00%             0  [vkrt] Analysis  libnvidia-eglcore.so.565.77  [.] 0x0000741912a01970
            |
            ---0x741912a01970
               |          
                --9.96%--0x74192f8a5bc7

     9.96%     9.96%             2  [vkrt] Analysis  libc.so.6                    [.] 0x0000000000096bc4
            |
            ---0x741912a01970
               0x74192f8a5bc7

     9.96%     0.00%             0  [vkrt] Analysis  libc.so.6                    [.] 0x000074192f8a5bc7
            |
            ---0x74192f8a5bc7

     1.13%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01970
            |
            ---0x741912a01970

     0.41%     0.00%             0  gtk4-demo        [unknown]                    [k] 0000000000000000
     0.41%     0.07%             1  gtk4-demo        libc.so.6                    [.] __nanosleep
     0.39%     0.00%             0  gtk4-demo        libc.so.6                    [.] pthread_cond_timedwait
     0.34%     0.00%             0  gtk4-demo        [unknown]                    [.] 0x0000060100000100
     0.34%     0.34%             2  gtk4-demo        libc.so.6                    [.] 0x000000000009300c
     0.34%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8a2010
     0.33%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01df7
     0.30%     0.23%             2  gtk4-demo        libc.so.6                    [.] open64
     0.27%     0.27%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000096bc4
     0.27%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8a5bc7
     0.27%     0.27%             1  [vkps] Update    libnvidia-eglcore.so.565.77  [.] 0x0000000000a0197e
     0.27%     0.00%             0  [vkps] Update    libc.so.6                    [.] pthread_mutex_unlock
     0.26%     0.26%             3  gtk4-demo        libc.so.6                    [.] 0x000000000004db20
     0.26%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f85cb29
     0.23%     0.08%             1  gtk4-demo        libc.so.6                    [.] __close
     0.22%     0.22%             2  gtk4-demo        libc.so.6                    [.] 0x000000000008dc54
     0.22%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89cc5a
     0.20%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01c84
     0.20%     0.20%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000099425
     0.20%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01980
     0.20%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8a842c
     0.18%     0.12%             2  gtk4-demo        libc.so.6                    [.] clock_nanosleep
     0.17%     0.17%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000a00ffb
     0.17%     0.00%             0  gtk4-demo        libc.so.6                    [.] pthread_self
     0.17%     0.17%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000a02682
     0.17%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a02690
     0.17%     0.17%             2  gtk4-demo        libc.so.6                    [.] 0x0000000000065145
     0.17%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f874148
     0.17%     0.17%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000a0197e
     0.17%     0.00%             0  gtk4-demo        libc.so.6                    [.] pthread_mutex_unlock
     0.16%     0.16%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000909c2
     0.16%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89fa30
     0.15%     0.15%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000a01010
     0.15%     0.00%             0  gtk4-demo        [unknown]                    [.] 0x0000000100000c87
     0.15%     0.00%             0  gtk4-demo        [unknown]                    [.] 0x0000000000000001
     0.15%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01012
     0.15%     0.15%             1  gtk4-demo        [vdso]                       [.] __vdso_gettimeofday
     0.15%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01936
     0.15%     0.15%             2  gtk4-demo        libc.so.6                    [.] 0x0000000000090340
     0.15%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89f344
     0.13%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01c53
     0.13%     0.13%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000092f49
     0.13%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8a1f4d
     0.13%     0.13%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000c294c0
     0.13%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912c294c7
     0.12%     0.12%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000e72441
     0.12%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912e7244a
     0.12%     0.12%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000090359
     0.12%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89f35f
     0.12%     0.12%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000902e5
     0.12%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89f2e9
     0.12%     0.12%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000673f9
     0.12%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f875973
     0.11%     0.11%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000669c1
     0.11%     0.00%             0  gtk4-demo        libc.so.6                    [.] __strtoll_internal
     0.11%     0.11%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000090a33
     0.11%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89f9d2
     0.10%     0.10%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000065e5e
     0.10%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f874e65
     0.10%     0.10%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000698a4
     0.10%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8788ab
     0.10%     0.10%             1  gtk4-demo        libc.so.6                    [.] 0x000000000006513a
     0.10%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f87413e
     0.09%     0.09%             1  gtk4-demo        libc.so.6                    [.] 0x000000000008dcc0
     0.09%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89ccc4
     0.09%     0.09%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x00000000009fdd90
     0.09%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x00007419129fdd94
     0.09%     0.09%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000066fca
     0.09%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f875fd1
     0.09%     0.09%             1  gtk4-demo        libc.so.6                    [.] 0x000000000004da99
     0.09%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f85caa0
     0.09%     0.09%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000065e4e
     0.09%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f874e55
     0.09%     0.09%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000d3b118
     0.09%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912d3b11d
     0.09%     0.09%             1  gtk4-demo        libc.so.6                    [.] 0x000000000008f050
     0.09%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89e054
     0.09%     0.09%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000673da
     0.09%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8763e1
     0.08%     0.08%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000d3b143
     0.08%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912d3b147
     0.08%     0.08%             1  gtk4-demo        libc.so.6                    [.] 0x000000000004db09
     0.08%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f85cab8
     0.08%     0.08%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000066fc0
     0.08%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f875fca
     0.08%     0.08%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] nanosleep@plt
     0.08%     0.08%             1  gtk4-demo        libc.so.6                    [.] _IO_sputbackc
     0.08%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f874ea7
     0.08%     0.08%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000d3b18e
     0.08%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912d3b195
     0.08%     0.08%             5  gtk4-demo        [unknown]                    [k] 0xffffffffb0e001c8
     0.08%     0.08%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000000000a01d80
     0.08%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01d83
     0.08%     0.08%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000066724
     0.08%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f875728
     0.08%     0.08%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000065eca
     0.08%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f874ece
     0.08%     0.08%             1  gtk4-demo        libc.so.6                    [.] 0x000000000006a308
     0.08%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f875724
     0.07%     0.07%             1  gtk4-demo        [vdso]                       [.] __vdso_clock_gettime
     0.07%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x00007419129fdda1
     0.07%     0.07%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] open64@plt
     0.07%     0.07%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000651c1
     0.07%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f8741c5
     0.07%     0.07%             1  gtk4-demo        libc.so.6                    [.] 0x000000000004dabb
     0.07%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f85cac2
     0.07%     0.07%             1  gtk4-demo        libnvidia-eglcore.so.565.77  [.] close@plt
     0.07%     0.07%             1  gtk4-demo        libc.so.6                    [.] 0x00000000000654fd
     0.07%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f874501
     0.07%     0.07%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000065818
     0.07%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f87481d
     0.06%     0.06%            17  gtk4-demo        [unknown]                    [k] 0xffffffffb0e01908
     0.06%     0.06%             1  gtk4-demo        libc.so.6                    [.] 0x0000000000065b91
     0.06%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f874b98
     0.06%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01c6e
     0.06%     0.06%             1  gtk4-demo        libc.so.6                    [.] 0x000000000004da12
     0.06%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f85ca17
     0.05%     0.00%             0  [vkrt] Analysis  libc.so.6                    [.] pthread_cond_timedwait
     0.05%     0.00%             0  [vkrt] Analysis  libc.so.6                    [.] 0x000074192f89fa19
     0.03%     0.03%             1  [vkrt] Analysis  libc.so.6                    [.] 0x0000000000090a19
     0.03%     0.00%             0  [vkrt] Analysis  [unknown]                    [.] 0xffffffffb0e01630
     0.02%     0.00%             0  [vkps] Update    libnvidia-eglcore.so.565.77  [.] 0x0000741912a01970
     0.02%     0.00%             0  [vkps] Update    libc.so.6                    [.] pthread_cond_timedwait
     0.02%     0.02%             1  [vkps] Update    libc.so.6                    [.] 0x0000000000090a19
     0.02%     0.00%             0  [vkps] Update    libc.so.6                    [.] 0x000074192f89fa1c
     0.01%     0.01%             9  [vkrt] Analysis  [unknown]                    [k] 0xffffffffb0e01908
     0.00%     0.00%             0  gtk4-demo        libc.so.6                    [.] 0x000074192f89fa19
     0.00%     0.00%             0  [vkps] Update    libc.so.6                    [.] 0x000074192f89fa19
     0.00%     0.00%             5  [vkps] Update    [unknown]                    [k] 0xffffffffb0e01908
     0.00%     0.00%             0  gtk4-demo        libnvidia-eglcore.so.565.77  [.] 0x0000741912a01c30
     0.00%     0.00%             2  [vkps] Update    [unknown]                    [k] 0xffffffffb0e001c8
     0.00%     0.00%             2  [vkrt] Analysis  [unknown]                    [k] 0xffffffffb0e001c8


#
# (Tip: To add Node.js USDT(User-Level Statically Defined Tracing): perf buildid-cache --add `which node`)
#

Perf report snippet:

# Children      Self       Samples  Command    Shared Object                Symbol                
# ........  ........  ............  .........  ...........................  ......................
#
    99.27%    99.27%             1  gtk4-demo  libc.so.6                    [.] read
            |
            ---0x741912a01c6e
               read

    99.27%     0.00%             0  gtk4-demo  libnvidia-eglcore.so.565.77  [.] 0x0000741912a01c6e
            |
            ---0x741912a01c6e
               read

Offending thread (3201) consuming CPU:

Flamegraph of main thread

Flamegraph of problem thread

Current stack:

  • Arch Linux | Kernel 6.12.8
  • Gtk4 4.16.7
  • Mesa 24.3.1
  • nVidia 565.77
  • vulkan-icd-loader 1.4.303

Hi @Tekstryder
Thanks for reporting issue, could you please confirm the last passing driver, if any.

1 Like

Thank you for taking note of this issue!

It is unknown if there was a previous driver version which did not exhibit this problem

The behavior was noticed only as of when the Vulkan backend became default in GTK4 4.16.x release, and the 560.35.03 driver was in use at the time.

This has been consistently reproducible with subsequent nVidia driver releases: 565.57.01 and 565.77.

Hi @amrits

I see that the 550.142 nVidia driver is available in the Arch AUR.

Would there be any value in my testing that branch for this issue, assuming it builds against the 6.12.x kernel series?

I believe that’s pre-explicit sync, but I’m not sure how well-supported Vulkan is with the Production Branch.

Unfortunately this issue persists with the 570.86.16 Beta driver.

Please let me know if I can provide any further information beyond the above perf reports and flamegraphs.

Still stuck using the NGL renderer, which has its own never-resolved nVidia-driver-specific-issues.

With GTK 4.18.x release coming right around the corner next month, it would be great to be able to use the default Vulkan renderer once this issue is addressed.

To demonstrate the impact of this issue, I enabled the default Vulkan GTK4 backend and launched gnome-console (kgx)

After 3 days of uptime with kgx running in the background, it has consumed 23+ hours of CPU time while sitting “idle”: