Skip to content

[Crash] When resuming from suspend with EGL backend with PreserveVideoMemoryAllocations=0 in Nvidia 470xx driver #1515

@asyync1024

Description

@asyync1024

Hi! I hope that you are absolutely well.

I had disabled NVreg_PreserveVideoMemoryAllocations(See snapshot: ArchWiki) on my driver to reduce disk writes, but I noticed when using the EGL backend in picom, it would crash after resuming from suspend. The same does NOT happen with the GLX backend.

Having the parameter enabled makes the disappear crash on both backends.

Journalctl -b | grep picom output:

Mar 27 20:15:57 cosmos kernel: picom[2091]: segfault at 565207417b20 ip 0000565207417b20 sp 00007fff3208c898 error 15 likely on CPU 3 (core 1, socket 0)

Binary produced by buildtype=debug AND options=(!strip) in the PKGBUILD also produces random numbers like this one.
But I managed to get some output with gdb on the debug binary:

❯ gdb '/usr/sbin/picom'
... # Licensing, version etc.

Reading symbols from /usr/sbin/picom...
(gdb) run
Starting program: /usr/bin/picom

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.archlinux.org>
Enable debuginfod for this session? (y or [n])
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[ 03/27/2026 21:50:55.494 egl_init WARN ] The egl backend is still experimental, use with care.
[New Thread 0x7fffe480d6c0 (LWP 7762)]
[ 03/27/2026 21:51:08.008 gl_blit_inner ERROR ] GL error at line 477: GL_INVALID_OPERATION
[ 03/27/2026 21:51:08.009 gl_blit_inner ERROR ] GL error at line 477: GL_INVALID_OPERATION
[ 03/27/2026 21:51:08.009 gl_blit_inner ERROR ] GL error at line 477: GL_INVALID_OPERATION
[ 03/27/2026 21:51:08.020 sgi_video_sync_scheduler_callback WARN ] Duplicate vblank event found with msc 43990. Possible NVIDIA bug? Number of duplicates so far: 0

Thread 1 "picom" received signal SIGSEGV, Segmentation fault.
0x0000555000d0b984 in ?? ()
(gdb) ❌️ Quit
(gdb) bt
#0  0x0000555000d0b984 in ?? ()
#1  0x00007ffff5867323 in ?? () from /usr/lib/libnvidia-eglcore.so.470.256.02
#2  0x00007ffff579bc93 in ?? () from /usr/lib/libnvidia-eglcore.so.470.256.02
#3  0x00007ffff58c9691 in ?? () from /usr/lib/libnvidia-eglcore.so.470.256.02
#4  0x00007ffff554c245 in ?? () from /usr/lib/libnvidia-eglcore.so.470.256.02
#5  0x00007ffff552f049 in ?? () from /usr/lib/libnvidia-eglcore.so.470.256.02
#6  0x00007ffff5531463 in ?? () from /usr/lib/libnvidia-eglcore.so.470.256.02
#7  0x00007ffff5962257 in ?? () from /usr/lib/libnvidia-eglcore.so.470.256.02
#8  0x00007ffff55af960 in ?? () from /usr/lib/libnvidia-eglcore.so.470.256.02
#9  0x00005555555c5496 in gl_blit_inner (gd=gd@entry=0x555555705950, target_fbo=target_fbo@entry=1, nrects=4, coord=coord@entry=0x555555883510, indices=indices@entry=0x5555557150f0,
    vert_attribs=vert_attribs@entry=0x55555556b730 <gl_blit_vertex_attribs>, shader=0x555555705ad0, nuniforms=4, uniforms=0x7fffffffe160) at ../src/backend/gl/gl_common.c:452
#10 0x00005555555cac1e in gl_copy_area_draw (gd=0x555555705950, origin=..., target_handle=0x555555871b00, source_handle=<optimized out>, shader=0x555555705ad0, region=<optimized out>)
    at ../src/backend/gl/gl_common.c:705
#11 0x00005555555cada3 in gl_copy_area (backend_data=0x555555705950, origin=..., target=<optimized out>, source=<optimized out>, region=<optimized out>) at ../src/backend/gl/gl_common.c:718
#12 0x00005555555a90ae in backend_execute (backend=0x555555705950, target=0x555555871b00, ncmds=<optimized out>, cmds=<optimized out>) at ../src/backend/backend.c:106
#13 renderer_render (r=<optimized out>, backend=<optimized out>, root_image=<optimized out>, root_image_extent=0x55555562d458, lm=0x555555856f60, cb=<optimized out>, blur_context=0x0,
    render_start_us=<optimized out>, xsync_fence=<optimized out>, use_damage=<optimized out>, monitor_repaint=false, force_blend=<optimized out>, blur_frame=<optimized out>, inactive_dim_fixed=<optimized out>,
    max_brightness=<optimized out>, monitors=<optimized out>, root_pixmap_shader=<optimized out>, shaders=<optimized out>, after_damage_us=<synthetic pointer>) at ../src/renderer/renderer.c:534
#14 draw_callback_impl (ps=ps@entry=0x55555562d270, revents=<optimized out>, loop=0x7ffff7e79060) at ../src/picom.c:1721
#15 0x00005555555ab020 in draw_callback (loop=0x7ffff7e79060, w=0x55555562d2d0, revents=<optimized out>) at ../src/picom.c:1790
#16 0x00007ffff7e6e51b in ev_invoke_pending () from /usr/lib/libev.so.4
#17 0x00007ffff7e72002 in ev_run () from /usr/lib/libev.so.4
#18 0x00005555555b90bc in session_run (ps=<optimized out>) at ../src/picom.c:2479
#19 main (argc=<optimized out>, argv=<optimized out>) at ../src/picom.c:2595
(gdb)

System info:

GPU: GT 740 GDDR3
Driver: 470xx proprietary dkms
WM: i3
Server: X.org
OS: Arch Linux

Also this package was built with picom-git AUR package. The stable v13 release package also has this problem.

If there is any other relevant information you want, please don't hesitate to ask me.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions