Looking for testers to reproduce a bug with nvidia drivers

Andriy

Developer
I am experiencing periodic plasmashell crashes and I think that I have a reproducer for the bug (not without some help ;)).
The reproducer should not crash your Plasma (and it is not required), your DE, your OS, etc.
If it reproduces the bug, it crashes itself, if it doesn't then it keeps running until you kill it.
I think that 5-10 minutes should be sufficient.
The program creates a window off-screen, the window does not take focus, so it should not interfere with whatever you are doing, at least, directly.
It takes away some performance and adds some latency, so do not run it while doing anything critical (like gaming :)).

The source is a single file, attached.
Please remove .txt extra extension from the file name. It's there only because of the forum requirements.

It can be compiled with
c++ -std=c++17 -O1 -g -fPIC -o glxrepro-min repro-main.cpp $(pkg-config --cflags --libs Qt6Quick Qt6Qml gl x11)

As I said, Plasma/KDE are not required.
But Qt6 is required.
NVIDIA hardware and drivers are also, obviously, required.
Also, X is required. Perhaps Wayland is affected too, but the reproducer is target for X.

What I'd like to hear from you:
  • GPU hardware model;
  • driver version;
  • whether the reproducer crashed;
  • if it did, the stack trace from gdb or lldb.
The reason I am asking for your help is that I want to understand whether the problem specific to my environment or if it's more general.
And what drivers, etc are affected.
The problem is that the crash happens in NVIDIA libraries which are impossible to debug.
So, I want to submit detailed information to NVIDIA.

P.S.
Please scrutinize the code if you are concerned that it could do something wrong.
 

Attachments

Qt6, x11, plasma6, kde, FreeBSD 15.1-RELEASE-p6 releng/15.1-n283643-95719d8a895b GENERIC amd64

(lldb) bt all
thread #1, name = 'glxrepro-min'
frame #0: 0x000000083d084f8a libsys.so.7`__sys_getpid + 10
frame #1: 0x000000082e9fcb8c libGLX.so.0`___lldb_unnamed_symbol176 + 12
frame #2: 0x000000082e9fa3a9 libGLX.so.0`___lldb_unnamed_symbol164 + 9
frame #3: 0x000000082e9fff17 libGLX.so.0`___lldb_unnamed_symbol197 + 23
frame #4: 0x000000082e9f9f11 libGLX.so.0`___lldb_unnamed_symbol161 + 65
frame #5: 0x000000082e9fb891 libGLX.so.0`glXGetFBConfigAttrib + 33
frame #6: 0x000000082560d6ba libQt6Gui.so.6`qglx_surfaceFormatFromGLXFBConfig(QSurfaceFormat*, _XDisplay*, __GLXFBConfigRec*, int) + 138
frame #7: 0x0000000870de4b2a libqxcb-glx-integration.so`___lldb_unnamed_symbol465 + 314
frame #8: 0x0000000870de5b90 libqxcb-glx-integration.so`___lldb_unnamed_symbol486 + 48
frame #9: 0x0000000825168670 libQt6Gui.so.6`QOffscreenSurface::create() + 96
frame #10: 0x00000008254f8b70 libQt6Gui.so.6`QRhiGles2InitParams::newFallbackSurface(QSurfaceFormat const&) + 192
frame #11: 0x000000082333abc7 libQt6Quick.so.6`QSGRhiSupport::maybeCreateOffscreenSurface(QWindow*) + 71
frame #12: 0x000000082349242a libQt6Quick.so.6`___lldb_unnamed_symbol26590 + 1306
frame #13: 0x0000000823491eaf libQt6Quick.so.6`___lldb_unnamed_symbol26589 + 447
frame #14: 0x00000008251afca1 libQt6Gui.so.6`QWindow::event(QEvent*) + 257
frame #15: 0x000000082327a1da libQt6Quick.so.6`QQuickWindow::event(QEvent*) + 5434
frame #16: 0x000000082328b492 libQt6Quick.so.6`QQuickWindowQmlImpl::event(QEvent*) + 482
frame #17: 0x00000008281383c8 libQt6Core.so.6`QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) + 488
frame #18: 0x0000000828138af9 libQt6Core.so.6`QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) + 153
frame #19: 0x000000082514baa8 libQt6Gui.so.6`QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) + 600
frame #20: 0x00000008251b7e2b libQt6Gui.so.6`QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 347
frame #21: 0x00000008475f8df3 libQt6XcbQpa.so.6`___lldb_unnamed_symbol2748 + 35
frame #22: 0x00000008307333c5 libglib-2.0.so.0`___lldb_unnamed_symbol2569 + 373
frame #23: 0x0000000830733856 libglib-2.0.so.0`___lldb_unnamed_symbol2570 + 774
frame #24: 0x00000008307338f6 libglib-2.0.so.0`g_main_context_iteration + 102
frame #25: 0x00000008283fcce2 libQt6Core.so.6`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 114
frame #26: 0x0000000828142a26 libQt6Core.so.6`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 550
frame #27: 0x000000082813867f libQt6Core.so.6`QCoreApplication::exec() + 175
frame #28: 0x0000000000206528 glxrepro-min`main(argc=1, argv=<unavailable>) at main.cpp:319:12
frame #29: 0x000000082c2d828f libc.so.7`__libc_start1 + 303
frame #30: 0x0000000000205184 glxrepro-min`_start at crt1_s.S:80
thread #2, name = 'QDBusConnectionM'
frame #0: 0x000000083d08822a libsys.so.7`__sys_ppoll + 10
frame #1: 0x000000082fae5a7c libthr.so.3`___lldb_unnamed_symbol747 + 60
frame #2: 0x00000008307337ed libglib-2.0.so.0`___lldb_unnamed_symbol2570 + 669
frame #3: 0x00000008307338f6 libglib-2.0.so.0`g_main_context_iteration + 102
frame #4: 0x00000008283fcce2 libQt6Core.so.6`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 114
frame #5: 0x0000000828142a26 libQt6Core.so.6`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 550
frame #6: 0x000000082824b27f libQt6Core.so.6`QThread::exec() + 319
frame #7: 0x0000000830eb05ea libQt6DBus.so.6`___lldb_unnamed_symbol1999 + 26
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #3, name = 'QXcbEventQueue'
frame #0: 0x000000083d08820a libsys.so.7`__sys_poll + 10
frame #1: 0x000000082fae5481 libthr.so.3`___lldb_unnamed_symbol733 + 49
frame #2: 0x000000083d042232 libxcb.so.1`___lldb_unnamed_symbol819 + 258
frame #3: 0x000000083d0445e9 libxcb.so.1`xcb_wait_for_event + 89
frame #4: 0x00000008475f9cd8 libQt6XcbQpa.so.6`___lldb_unnamed_symbol2776 + 72
frame #5: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #6: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #4, name = 'Thread (pooled)'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8bef libthr.so.3`___lldb_unnamed_symbol575 + 415
frame #3: 0x00000008282fe5ca libQt6Core.so.6`___lldb_unnamed_symbol15265 + 218
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082824d4ae libQt6Core.so.6`___lldb_unnamed_symbol14249 + 1054
frame #6: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #7: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #5, name = 'Thread (pooled)'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8bef libthr.so.3`___lldb_unnamed_symbol575 + 415
frame #3: 0x00000008282fe5ca libQt6Core.so.6`___lldb_unnamed_symbol15265 + 218
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082824d4ae libQt6Core.so.6`___lldb_unnamed_symbol14249 + 1054
frame #6: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #7: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #6, name = 'QQmlThread'
frame #0: 0x000000083d08822a libsys.so.7`__sys_ppoll + 10
frame #1: 0x000000082fae5a7c libthr.so.3`___lldb_unnamed_symbol747 + 60
frame #2: 0x00000008307337ed libglib-2.0.so.0`___lldb_unnamed_symbol2570 + 669
frame #3: 0x00000008307338f6 libglib-2.0.so.0`g_main_context_iteration + 102
frame #4: 0x00000008283fcce2 libQt6Core.so.6`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 114
frame #5: 0x0000000828142a26 libQt6Core.so.6`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 550
frame #6: 0x000000082824b27f libQt6Core.so.6`QThread::exec() + 319
frame #7: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #8: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
* thread #7, name = 'QSGRenderThread', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0x98)
* frame #0: 0x0000000876a2abc0 libnvidia-glcore.so.1`___lldb_unnamed_symbol38021 + 48
frame #1: 0x0000000876a31232 libnvidia-glcore.so.1`___lldb_unnamed_symbol38073 + 1026
frame #2: 0x0000000876a32d51 libnvidia-glcore.so.1`___lldb_unnamed_symbol38080 + 65
frame #3: 0x0000000876723cc7 libnvidia-glcore.so.1`___lldb_unnamed_symbol25360 + 199
frame #4: 0x0000000876729f8b libnvidia-glcore.so.1`___lldb_unnamed_symbol25414 + 107
frame #5: 0x00000008232b4a79 libQt6Quick.so.6`QSGBatchRenderer::Renderer::unmap(QSGBatchRenderer::Buffer*, bool) + 473
frame #6: 0x00000008232b98cf libQt6Quick.so.6`QSGBatchRenderer::Renderer::uploadBatch(QSGBatchRenderer::Batch*) + 2687
frame #7: 0x00000008232c0463 libQt6Quick.so.6`QSGBatchRenderer::Renderer::prepareRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) + 1139
frame #8: 0x00000008232bff6b libQt6Quick.so.6`QSGBatchRenderer::Renderer::render() + 43
frame #9: 0x00000008232daaf1 libQt6Quick.so.6`QSGRenderer::renderScene() + 209
frame #10: 0x0000000823276986 libQt6Quick.so.6`QQuickWindowPrivate::renderSceneGraph() + 1334
frame #11: 0x000000082348f4dd libQt6Quick.so.6`___lldb_unnamed_symbol26566 + 1565
frame #12: 0x0000000823490691 libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 273
frame #13: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #14: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #27, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #28, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #29, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #30, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #31, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #32, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #33, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #34, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #35, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #36, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #37, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #38, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #39, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #40, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #41, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #42, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #43, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #44, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
thread #45, name = 'QSGRenderThread'
frame #0: 0x000000083d0884ec libsys.so.7`_umtx_op_err + 12
frame #1: 0x000000082fae6b32 libthr.so.3`___lldb_unnamed_symbol765 + 82
frame #2: 0x000000082fad8c91 libthr.so.3`___lldb_unnamed_symbol575 + 577
frame #3: 0x00000008282fe53b libQt6Core.so.6`___lldb_unnamed_symbol15265 + 75
frame #4: 0x00000008282fe1bd libQt6Core.so.6`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 77
frame #5: 0x000000082349422d libQt6Quick.so.6`___lldb_unnamed_symbol26611 + 109
frame #6: 0x00000008234900b6 libQt6Quick.so.6`___lldb_unnamed_symbol26569 + 150
frame #7: 0x000000082349066c libQt6Quick.so.6`___lldb_unnamed_symbol26571 + 236
frame #8: 0x00000008282f583f libQt6Core.so.6`___lldb_unnamed_symbol15202 + 399
frame #9: 0x000000082fad9e41 libthr.so.3`___lldb_unnamed_symbol578 + 337
(lldb)

pkg info | grep nvidia
linux-nvidia-libs-595.104.02 NVIDIA graphics libraries and programs (Linux)
nvidia-driver-595.104.02 NVIDIA graphics driver userland
nvidia-drm-612-kmod-595.104.02.1501000 NVIDIA DRM Kernel Module
nvidia-drm-kmod-595.104.02 NVIDIA DRM kernel module
nvidia-kmod-595.104.02.1501000 NVIDIA graphics driver kernel module


Gainward Geforce Ghost RTX 3060

/grandpa
 
loop=threaded TILES=40 COLUMNS=11 TRIGGER_MS=300 BURST_PCT=60 BURST_N=6 BURST_GAP_MS=200 POPUP_LIFE_MS=5000 popups=1 POPUP_MODE=window
layer=0 TILE_OPACITY=0.50 offscreen=1
[ 10s] flips 37, popups 37, frames 402
Process 9148 stopped
* thread #7, name = 'QSGRenderThread', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0x98)
frame #0: 0x0000000876a2abc0 libnvidia-glcore.so.1`___lldb_unnamed_symbol38021 + 48
libnvidia-glcore.so.1`___lldb_unnamed_symbol38021:
-> 0x876a2abc0 <+48>: movq 0x98(%rsi), %rax
0x876a2abc7 <+55>: movl 0x1060(%rdi), %edx
0x876a2abcd <+61>: movq 0x1078(%rdi), %rbx
0x876a2abd4 <+68>: cmpq %rbx, (%rax,%rdx,8)
(lldb) bt all


/grandpa
 
Oh, I didn't time it and this is my llm test bed machine - maybe 30 seconds to some minute?

I hope you get nvidias attention. Tell them we would like native cuda support so we can stop hacking it to work anyway.

/grandpa
 
Code:
[   160s] flips 365, popups 365, frames 1682                                                                                    
[New LWP 114681 of process 4600]                                                                                                
[LWP 114656 of process 4600 exited]                                                                                             
[New LWP 114683 of process 4600]
[New LWP 114685 of process 4600]
[New LWP 114687 of process 4600]
[New LWP 114692 of process 4600]
[New LWP 114696 of process 4600]
[LWP 114659 of process 4600 exited]
[LWP 114661 of process 4600 exited]
[New LWP 114698 of process 4600]
[LWP 114663 of process 4600 exited]
[LWP 114665 of process 4600 exited]
[LWP 114667 of process 4600 exited]
[LWP 114669 of process 4600 exited]
[New LWP 114700 of process 4600]
[New LWP 114703 of process 4600]
[New LWP 114705 of process 4600]
[New LWP 114707 of process 4600]
[LWP 114671 of process 4600 exited]
[LWP 114673 of process 4600 exited]

Thread 7 "QSGRenderThread" received signal SIGSEGV, Segmentation fault.
Address not mapped to object.
[Switching to LWP 113892 of process 4600]
0x000000004bc2fee0 in ?? () from /usr/local/lib/libnvidia-glcore.so.1
(gdb) backtrace
#0  0x000000004bc2fee0 in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#1  0x000000004bc36572 in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#2  0x000000004bc38091 in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#3  0x000000004b9254e7 in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#4  0x000000004b92b7ab in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#5  0x00000000408b4a79 in QSGBatchRenderer::Renderer::unmap(QSGBatchRenderer::Buffer*, bool) ()
    at /usr/local/lib/qt6/libQt6Quick.so.6
#6  0x00000000408b98cf in QSGBatchRenderer::Renderer::uploadBatch(QSGBatchRenderer::Batch*) ()
    at /usr/local/lib/qt6/libQt6Quick.so.6
#7  0x00000000408c0463 in QSGBatchRenderer::Renderer::prepareRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) () at /usr/local/lib/qt6/libQt6Quick.so.6
#8  0x00000000408bff6b in QSGBatchRenderer::Renderer::render() ()
    at /usr/local/lib/qt6/libQt6Quick.so.6
#9  0x00000000408daaf1 in QSGRenderer::renderScene() () at /usr/local/lib/qt6/libQt6Quick.so.6
#10 0x0000000040876986 in QQuickWindowPrivate::renderSceneGraph() ()
    at /usr/local/lib/qt6/libQt6Quick.so.6
#11 0x0000000040a8f4dd in ??? () at /usr/local/lib/qt6/libQt6Quick.so.6

1793120617328.png


1793120647544.png
 
I dont have a BSD instance running that has an NVIDIA card attached so I ran your test on Debian13 Linux

* 05:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 3GB] (rev a1)
* driver 570.207
* xorg running in xaphod configuration
* openbox window manager
* gcc version 14.2.0 (Debian 14.2.0-19)

* pgm output
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
loop=threaded TILES=40 COLUMNS=11 TRIGGER_MS=300 BURST_PCT=60 BURST_N=6 BURST_GAP_MS=200 POPUP_LIFE_MS=5000 popups=1 POPUP_MODE=window layer=0 TILE_OPACITY=0.50 offscreen=1
[ 10s] flips 38, popups 38, frames 447
Segmentation fault (core dumped)
files:~/Downloads$ gdb ./glxrepro-min core.95819
GNU gdb (Debian 16.3-1) 16.3
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./glxrepro-min...

warning: Can't open file /memfd:JITCode:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:/.glXXXXXX (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:unknown-usage:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:/.nvidia_drv.XXXXXX (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing
[New LWP 95826]
[New LWP 95819]
[New LWP 95828]
[New LWP 95949]
[New LWP 95821]
[New LWP 95945]
[New LWP 95940]
[New LWP 95936]
[New LWP 95951]
[New LWP 95943]
[New LWP 95971]
[New LWP 95938]
[New LWP 95824]
[New LWP 95963]
[New LWP 95961]
[New LWP 95822]
[New LWP 95820]
[New LWP 95953]
[New LWP 95967]
[New LWP 95957]
[New LWP 95947]
[New LWP 95823]
[New LWP 95965]
--Type <RET> for more, q to quit, c to continue without paging--
[New LWP 95955]
[New LWP 95959]
[New LWP 95969]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./glxrepro-min'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fef2e63bc91 in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
[Current thread is 1 (Thread 0x7fef29dff6c0 (LWP 95826))]
(gdb) bt
#0 0x00007fef2e63bc91 in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#1 0x00007fef2e63c147 in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#2 0x00007fef2e63fc8a in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#3 0x00007fef2e2fd3f2 in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#4 0x00007fef2e2fd580 in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#5 0x00007fef4eefe3b9 in QSGBatchRenderer::Renderer::unmap(QSGBatchRenderer::Buffer*, bool) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#6 0x00007fef4ef092dd in QSGBatchRenderer::Renderer::uploadBatch(QSGBatchRenderer::Batch*) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#7 0x00007fef4ef0fb57 in QSGBatchRenderer::Renderer::prepareRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) ()
at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#8 0x00007fef4ef11bd6 in QSGBatchRenderer::Renderer::render() () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#9 0x00007fef4ef24e63 in QSGRenderer::renderScene() () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#10 0x00007fef4eecbd67 in QQuickWindowPrivate::renderSceneGraph() () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#11 0x00007fef4f09de2e in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#12 0x00007fef4d8e122a in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#13 0x00007fef4d09e8bb in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:448
#14 0x00007fef4d11c538 in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb)
 
nvidia drivers are not display servers
No, but they are mostly used for display servers. And I've been moving display driver issues to "Display servers" for a few years now, just like network card driver issues are moved to networking. Keeps everything nicely together.
 
System:
Code:
root@kg-core2:~ # freebsd-version -ku
14.4-RELEASE-p11
14.4-RELEASE-p12
root@kg-core2:~ # uname -a
FreeBSD kg-core2.kg4.no 14.4-RELEASE-p11 FreeBSD 14.4-RELEASE-p11 releng/14.4-n273789-5dd0f224606b GENERIC amd64
hardware MSI GeForce RTX 3060 Ventus 2X 12G OC
Code:
root@kg-core2:~ # pciconf -lv | grep -B 4 VGA
vgapci0@pci0:7:0:0:    class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de device=0x2504 subvendor=0x1462 subdevice=0x397d
    vendor     = 'NVIDIA Corporation'
    device     = 'GA106 [GeForce RTX 3060 Lite Hash Rate]'
    class      = display
    subclass   = VGA
drivers
Code:
root@kg-core2:~ # pkg info nvidia\*
nvidia-driver-595.104.02
nvidia-drm-61-kmod-595.104.02.1404000
nvidia-kmod-595.104.02.1404000
nvidia-settings-595.104.02
run
Code:
tingo@kg-core2:~/work/999_temp $ ./glxrepro-min 
loop=threaded TILES=40 COLUMNS=11 TRIGGER_MS=300 BURST_PCT=60 BURST_N=6 BURST_GAP_MS=200 POPUP_LIFE_MS=5000 popups=1 POPUP_MODE=window layer=0 TILE_OPACITY=0.50 offscreen=1
qt.qpa.theme.gnome: dbus reply error: [ "org.freedesktop.DBus.Error.ServiceUnknown" ] "The name org.freedesktop.portal.Desktop was not provided by any .service files"
qt.qpa.theme.gnome: dbus reply error: [ "org.freedesktop.DBus.Error.ServiceUnknown" ] "The name org.freedesktop.portal.Desktop was not provided by any .service files"
[    10s] flips 34, popups 34, frames 180
[    21s] flips 66, popups 66, frames 350
[    30s] flips 98, popups 98, frames 513
[    40s] flips 124, popups 124, frames 714
[    52s] flips 143, popups 143, frames 844
[    62s] flips 158, popups 158, frames 910
[    71s] flips 171, popups 171, frames 995
[    82s] flips 185, popups 185, frames 1096
[    90s] flips 206, popups 206, frames 1225
[   100s] flips 239, popups 239, frames 1395
[   110s] flips 269, popups 269, frames 1578
[   121s] flips 301, popups 301, frames 1762
[   130s] flips 328, popups 328, frames 1949
[   140s] flips 359, popups 359, frames 2141
[   150s] flips 388, popups 388, frames 2328
[   160s] flips 418, popups 418, frames 2528
Segmentation fault (core dumped)
gdb output
Code:
tingo@kg-core2:~/work/999_temp $ gdb ./glxrepro-min ./glxrepro-min.core
GNU gdb (GDB) 15.1 [GDB v15.1 for FreeBSD]
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-portbld-freebsd14.4".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./glxrepro-min...
[New LWP 711041]
[New LWP 178677]
[New LWP 711000]
[New LWP 711001]
[New LWP 711002]
[New LWP 711003]
[New LWP 711004]
[New LWP 711005]
[New LWP 711038]
[New LWP 713179]
[New LWP 713182]
[New LWP 713185]
[New LWP 713188]
[New LWP 713190]
[New LWP 713193]
[New LWP 713195]
[New LWP 713197]
--Type <RET> for more, q to quit, c to continue without paging--
[New LWP 713199]
[New LWP 713201]
[New LWP 713235]
[New LWP 713237]
[New LWP 713240]
[New LWP 713242]
[New LWP 713245]
[New LWP 713247]
Core was generated by `./glxrepro-min'.
Program terminated with signal SIGSEGV, Segmentation fault.
Address not mapped to object.
#0  0x000000087cc2abc0 in ?? () from /usr/local/lib/libnvidia-glcore.so.1
[Current thread is 1 (LWP 711041)]
(gdb) bt
#0  0x000000087cc2abc0 in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#1  0x000000087cc31232 in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#2  0x000000087cc32d51 in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#3  0x000000087c923cc7 in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#4  0x000000087c929f8b in ??? () at /usr/local/lib/libnvidia-glcore.so.1
#5  0x0000000824ab4b59 in QSGBatchRenderer::Renderer::unmap(QSGBatchRenderer::Buffer*, bool) () at /usr/local/lib/qt6/libQt6Quick.so.6
#6  0x0000000824ab99af in QSGBatchRenderer::Renderer::uploadBatch(QSGBatchRenderer::Batch*) () at /usr/local/lib/qt6/libQt6Quick.so.6
#7  0x0000000824ac0543 in QSGBatchRenderer::Renderer::prepareRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) () at /usr/local/lib/qt6/libQt6Quick.so.6
#8  0x0000000824ac004b in QSGBatchRenderer::Renderer::render() () at /usr/local/lib/qt6/libQt6Quick.so.6
#9  0x0000000824adabd1 in QSGRenderer::renderScene() () at /usr/local/lib/qt6/libQt6Quick.so.6
#10 0x0000000824a76a66 in QQuickWindowPrivate::renderSceneGraph() () at /usr/local/lib/qt6/libQt6Quick.so.6
#11 0x0000000824c8f5bd in ??? () at /usr/local/lib/qt6/libQt6Quick.so.6
#12 0x0000000824c90771 in ??? () at /usr/local/lib/qt6/libQt6Quick.so.6
#13 0x0000000827af546f in ??? () at /usr/local/lib/qt6/libQt6Core.so.6
#14 0x000000082e663e22 in ??? () at /lib/libthr.so.3
#15 0x0000000000000000 in ??? ()
 
Hardware

Code:
nvidia0: <Quadro P620> on vgapci0
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: child nvidia0 requested pci_enable_io
nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  580.173.02  Tue Jun 23 07:55:43 UTC 2026

Code:
loop=threaded TILES=40 COLUMNS=11 TRIGGER_MS=300 BURST_PCT=60 BURST_N=6 BURST_GAP_MS=200 POPUP_LIFE_MS=5000 popups=1 POPUP_MODE=window layer=0 TILE_OPACITY=0.50 offscreen=1
qt.qpa.theme.gnome: dbus reply error: [ "org.freedesktop.DBus.Error.UnknownMethod" ] "No such interface “org.freedesktop.portal.Settings” on object at path /org/freedesktop/portal/desktop"
qt.qpa.theme.gnome: dbus reply error: [ "org.freedesktop.DBus.Error.UnknownMethod" ] "No such interface “org.freedesktop.portal.Settings” on object at path /org/freedesktop/portal/desktop"
[    10s] flips 33, popups 33, frames 186
[    20s] flips 61, popups 61, frames 372
[    30s] flips 91, popups 91, frames 525
[    40s] flips 120, popups 120, frames 716
[    50s] flips 148, popups 148, frames 876
Process 29203 stopped
* thread #11, name = 'QSGRenderThread', stop reason = signal SIGSEGV: address not mapped to object (fault address=0x98)
    frame #0: 0x000000087fa54540 libnvidia-glcore.so.1`___lldb_unnamed_symbol_a54510 + 48
libnvidia-glcore.so.1`___lldb_unnamed_symbol_a54510:
->  0x87fa54540 <+48>: movq   0x98(%rsi), %rax
    0x87fa54547 <+55>: movl   0x1060(%rdi), %edx
    0x87fa5454d <+61>: movq   0x1078(%rdi), %rbx
    0x87fa54554 <+68>: cmpq   %rbx, (%rax,%rdx,8)
(lldb)
 
Got a crash here.

RTX 5090

nvidia-driver-595.112.07

Code:
~(wings)2457% DISPLAY=:0 ./glxrepro-min
Detected locale "C" with character encoding "US-ASCII", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
loop=threaded TILES=40 COLUMNS=11 TRIGGER_MS=300 BURST_PCT=60 BURST_N=6 BURST_GAP_MS=200 POPUP_LIFE_MS=5000 popups=1 POPUP_MODE=window layer=0 TILE_OPACITY=0.50 offscreen=1
[     9s] flips 37, popups 37, frames 445
[    19s] flips 74, popups 74, frames 915
[    29s] flips 114, popups 114, frames 1399
Segmentation fault         (core dumped) DISPLAY=:0 ./glxrepro-min

(gdb) bt
#0  0x0000000856c2abc0 in _nv009glcore ()
   from /usr/local/lib/libnvidia-glcore.so.1
#1  0x00002eae5793c140 in ?? ()
#2  0x0000000000000001 in ?? ()
#3  0x0000000856c31232 in _nv009glcore ()
   from /usr/local/lib/libnvidia-glcore.so.1
#4  0x0000000000000002 in ?? ()
#5  0x00002eae556c4000 in ?? ()
#6  0x0000000023aaedb4 in ?? ()
#7  0x0000000000000000 in ?? ()
 
The problem is that the crash happens in NVIDIA libraries which are impossible to debug.
Yes, libraries are binary only, unlike OS-specific kmod parts.
  • stable/15 at commit ae99c82c76f2
  • GPU hardware model; RTX A400
  • driver version; 615.78.08
  • whether the reproducer crashed; reproduced (SIGSEGV)
  • if it did, the stack trace from gdb or lldb.
Code:
% ./glxrepro-min
loop=threaded TILES=40 COLUMNS=11 TRIGGER_MS=300 BURST_PCT=60 BURST_N=6 BURST_GAP_MS=200 POPUP_LIFE_MS=5000 popups=1 POPUP_MODE=window layer=0 TILE_OPACITY=0.50 offscreen=1
[    10s] flips 39, popups 39, frames 439
[    20s] flips 74, popups 74, frames 835
zsh: segmentation fault (core dumped)  ./glxrepro-min
% lldb --core ./glxrepro-min.core --file ./glxrepro-min
(lldb) target create "./glxrepro-min" --core "./glxrepro-min.core"
Core file 'glxrepro-min.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'QSGRenderThread', stop reason = signal SIGSEGV
  * frame #0: 0x00000008c6c2fee0 libnvidia-glcore.so.1`___lldb_unnamed_symbol_a2feb0 + 48
    frame #1: 0x00000008c6c36572 libnvidia-glcore.so.1`___lldb_unnamed_symbol_a36170 + 1026
    frame #2: 0x00000008c6c38091 libnvidia-glcore.so.1`___lldb_unnamed_symbol_a38050 + 65
    frame #3: 0x00000008c69254e7 libnvidia-glcore.so.1`___lldb_unnamed_symbol_725420 + 199
    frame #4: 0x00000008c692b7ab libnvidia-glcore.so.1`___lldb_unnamed_symbol_72b740 + 107
    frame #5: 0x00000008228b31eb libQt6Quick.so.6`QSGBatchRenderer::Renderer::unmap(QSGBatchRenderer::Buffer*, bool) + 475
    frame #6: 0x00000008228b83a7 libQt6Quick.so.6`QSGBatchRenderer::Renderer::uploadBatch(QSGBatchRenderer::Batch*) + 2647
    frame #7: 0x00000008228bee63 libQt6Quick.so.6`QSGBatchRenderer::Renderer::prepareRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) + 1123
    frame #8: 0x00000008228be97b libQt6Quick.so.6`QSGBatchRenderer::Renderer::render() + 43
    frame #9: 0x00000008228d9e59 libQt6Quick.so.6`QSGRenderer::renderScene() + 217
    frame #10: 0x0000000822875d23 libQt6Quick.so.6`QQuickWindowPrivate::renderSceneGraph() + 1315
    frame #11: 0x0000000822a8ead8 libQt6Quick.so.6`___lldb_unnamed_symbol_68e480 + 1624
    frame #12: 0x0000000822a8fc41 libQt6Quick.so.6`___lldb_unnamed_symbol_68fb30 + 273
    frame #13: 0x0000000826affdae libQt6Core.so.6`___lldb_unnamed_symbol_4ffc20 + 398
    frame #14: 0x000000082dcbcfc7 libthr.so.3`___lldb_unnamed_symbol_10e70 + 343
(lldb) q
 

Attachments

I dont have a BSD instance running that has an NVIDIA card attached so I ran your test on Debian13 Linux

* 05:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 3GB] (rev a1)
* driver 570.207
* xorg running in xaphod configuration
* openbox window manager
* gcc version 14.2.0 (Debian 14.2.0-19)

* pgm output
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
loop=threaded TILES=40 COLUMNS=11 TRIGGER_MS=300 BURST_PCT=60 BURST_N=6 BURST_GAP_MS=200 POPUP_LIFE_MS=5000 popups=1 POPUP_MODE=window layer=0 TILE_OPACITY=0.50 offscreen=1
[ 10s] flips 38, popups 38, frames 447
Segmentation fault (core dumped)
files:~/Downloads$ gdb ./glxrepro-min core.95819
GNU gdb (Debian 16.3-1) 16.3
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./glxrepro-min...

warning: Can't open file /memfd:JITCode:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:/.glXXXXXX (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:unknown-usage:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:/.nvidia_drv.XXXXXX (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing
[New LWP 95826]
[New LWP 95819]
[New LWP 95828]
[New LWP 95949]
[New LWP 95821]
[New LWP 95945]
[New LWP 95940]
[New LWP 95936]
[New LWP 95951]
[New LWP 95943]
[New LWP 95971]
[New LWP 95938]
[New LWP 95824]
[New LWP 95963]
[New LWP 95961]
[New LWP 95822]
[New LWP 95820]
[New LWP 95953]
[New LWP 95967]
[New LWP 95957]
[New LWP 95947]
[New LWP 95823]
[New LWP 95965]
--Type <RET> for more, q to quit, c to continue without paging--
[New LWP 95955]
[New LWP 95959]
[New LWP 95969]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./glxrepro-min'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fef2e63bc91 in ?? () from /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
[Current thread is 1 (Thread 0x7fef29dff6c0 (LWP 95826))]
(gdb) bt
#0 0x00007fef2e63bc91 in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#1 0x00007fef2e63c147 in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#2 0x00007fef2e63fc8a in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#3 0x00007fef2e2fd3f2 in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#4 0x00007fef2e2fd580 in ??? () at /lib/x86_64-linux-gnu/libnvidia-glcore.so.570.207
#5 0x00007fef4eefe3b9 in QSGBatchRenderer::Renderer::unmap(QSGBatchRenderer::Buffer*, bool) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#6 0x00007fef4ef092dd in QSGBatchRenderer::Renderer::uploadBatch(QSGBatchRenderer::Batch*) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#7 0x00007fef4ef0fb57 in QSGBatchRenderer::Renderer::prepareRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) ()
at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#8 0x00007fef4ef11bd6 in QSGBatchRenderer::Renderer::render() () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#9 0x00007fef4ef24e63 in QSGRenderer::renderScene() () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#10 0x00007fef4eecbd67 in QQuickWindowPrivate::renderSceneGraph() () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#11 0x00007fef4f09de2e in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#12 0x00007fef4d8e122a in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#13 0x00007fef4d09e8bb in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:448
#14 0x00007fef4d11c538 in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb)
So it shouldn't be FreeBSD specific, and not-so-new issue (570 series is already outdated branch).
 
Grahic Card: Palit "GeForce RTX 3050 KalmX 6GB"
NVIDIA Driver Version: 550.163.01 (no success with newer ones on FreeBSD with this special card)
up to date FreeBSD 15.1-RELEASE-p6 amd64

The test went without an issue - I stopped it at:
[ 999s] flips 3885, popups 3885, frames 53230
 
Didn't crash on ThinkPad P52, stable/15 at commit 335bee05d914 in 10 minutes.
The last output before I've terminated is:
Code:
[   620s] flips 641, popups 641, frames 1635
Possibly GPU model / generation dependent?

  • stable/15 at commit 335bee05d914
  • GPU hardware model; Quadro P1000 (notebook)
  • driver version; 580.196.07
  • whether the reproducer crashed; Not reproduced (not crashed within 10 minutes)
 
Didn't crash on ThinkPad P52, stable/15 at commit 335bee05d914 in 10 minutes.
The last output before I've terminated is:
Code:
[   620s] flips 641, popups 641, frames 1635
Possibly GPU model / generation dependent?

  • stable/15 at commit 335bee05d914
  • GPU hardware model; Quadro P1000 (notebook)
  • driver version; 580.196.07
  • whether the reproducer crashed; Not reproduced (not crashed within 10 minutes)
I think that the card may be too slow for the test.
Just 1635 frames and 641 popups in 10 minutes gives about 2.6 fps and about 1 popup/s.
I can't repro too if I limit to such rates.
 
Tested again:

-current
-quadro P620
-driver 580.196.07 (first test was 580.173.02)

Crash
Code:
[   160s] flips 456, popups 456, frames 2802
Process 4596 stopped
* thread #11, name = 'QSGRenderThread', stop reason = signal SIGSEGV: address not mapped to object (fault address=0x98)
    frame #0: 0x000000087da54540 libnvidia-glcore.so.1`___lldb_unnamed_symbol_a54510 + 48
libnvidia-glcore.so.1`___lldb_unnamed_symbol_a54510:
->  0x87da54540 <+48>: movq   0x98(%rsi), %rax
    0x87da54547 <+55>: movl   0x1060(%rdi), %edx
    0x87da5454d <+61>: movq   0x1078(%rdi), %rbx
    0x87da54554 <+68>: cmpq   %rbx, (%rax,%rdx,8)
 
My ThinkPad P52 just finished massive poudriere builds.
Tested again and the SIGSEGV is reproduced.
Exactly same enviromnent as comment #18.

Code:
% ./glxrepro-min
loop=threaded TILES=40 COLUMNS=11 TRIGGER_MS=300 BURST_PCT=60 BURST_N=6 BURST_GAP_MS=200 POPUP_LIFE_MS=5000 popups=1 POPUP_MODE=window layer=0 TILE_OPACITY=0.50 offscreen=1
[    10s] flips 40, popups 40, frames 507
zsh: segmentation fault (core dumped)  ./glxrepro-min
% lldb --core ./glxrepro-min.core --file ./glxrepro-min   
(lldb) target create "./glxrepro-min" --core "./glxrepro-min.core"
Core file 'glxrepro-min.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'QSGRenderThread', stop reason = signal SIGSEGV
  * frame #0: 0x00000008cd654540 libnvidia-glcore.so.1`___lldb_unnamed_symbol_a54510 + 48
    frame #1: 0x00000008cd65abb2 libnvidia-glcore.so.1`___lldb_unnamed_symbol_a5a7b0 + 1026
    frame #2: 0x00000008cd65c6d1 libnvidia-glcore.so.1`___lldb_unnamed_symbol_a5c690 + 65
    frame #3: 0x00000008cd314197 libnvidia-glcore.so.1`___lldb_unnamed_symbol_7140d0 + 199
    frame #4: 0x00000008cd31a45b libnvidia-glcore.so.1`___lldb_unnamed_symbol_71a3f0 + 107
    frame #5: 0x00000008228b31eb libQt6Quick.so.6`QSGBatchRenderer::Renderer::unmap(QSGBatchRenderer::Buffer*, bool) + 475
    frame #6: 0x00000008228b83a7 libQt6Quick.so.6`QSGBatchRenderer::Renderer::uploadBatch(QSGBatchRenderer::Batch*) + 2647
    frame #7: 0x00000008228bee63 libQt6Quick.so.6`QSGBatchRenderer::Renderer::prepareRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) + 1123
    frame #8: 0x00000008228be97b libQt6Quick.so.6`QSGBatchRenderer::Renderer::render() + 43
    frame #9: 0x00000008228d9e59 libQt6Quick.so.6`QSGRenderer::renderScene() + 217
    frame #10: 0x0000000822875d23 libQt6Quick.so.6`QQuickWindowPrivate::renderSceneGraph() + 1315
    frame #11: 0x0000000822a8ead8 libQt6Quick.so.6`___lldb_unnamed_symbol_68e480 + 1624
    frame #12: 0x0000000822a8fc41 libQt6Quick.so.6`___lldb_unnamed_symbol_68fb30 + 273
    frame #13: 0x00000008280ffdae libQt6Core.so.6`___lldb_unnamed_symbol_4ffc20 + 398
    frame #14: 0x0000000830802fc7 libthr.so.3`___lldb_unnamed_symbol_10e70 + 343
(lldb)
 

Attachments

I'd like to play devil's advocate and attack this thread from a different perspective. I've been an active participant on the Qt forums for many years under the similar handle that I use here so I'm very familiar with the Qt framework. Qt is very complex and it is very easy to misuse its features. In many cases their documentation just isn't adequate and you are left experimenting to figure out how it works. I've seen many so called SO bugs that were in fact triggered by bad Qt API programming: the programmer misused the feature and the framework did something behind the scenes like a double delete of a buffer. I gotta tell ya, this problem has that distinct aroma. Just consider that, and maybe test your hypothesis several different ways. I do understand though that most examples are designed to support a particular view.

I'd really like to know what that Qgl::unmap() is acting upon...segmentation error indicates to me that the buffer has already been released
 
I'd like to play devil's advocate and attack this thread from a different perspective. I've been an active participant on the Qt forums for many years under the similar handle that I use here so I'm very familiar with the Qt framework. Qt is very complex and it is very easy to misuse its features. In many cases their documentation just isn't adequate and you are left experimenting to figure out how it works. I've seen many so called SO bugs that were in fact triggered by bad Qt API programming: the programmer misused the feature and the framework did something behind the scenes like a double delete of a buffer. I gotta tell ya, this problem has that distinct aroma. Just consider that, and maybe test your hypothesis several different ways. I do understand though that most examples are designed to support a particular view.

I'd really like to know what that Qgl::unmap() is acting upon...segmentation error indicates to me that the buffer has already been released
So if anyone can reproduce the crash with non-NVIDIA GPUs (Intel, AMD, Arm, ...) using Andriy's reproducer, the original issue (crash) in plasmashell could be a bug in plasmashell (or Qt) that abusing driver functionalities?
 
Back
Top