https://bugs.kde.org/show_bug.cgi?id=525139

            Bug ID: 525139
           Summary: OpenGL deadlock and corrupted canvas happen randomly
    Classification: Applications
           Product: krita
      Version First git master (please specify the git hash!)
       Reported In:
          Platform: NixOS
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: * Unknown
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

DESCRIPTION

This is a regression of GL libraries or krita introduced recently. I started
hitting this when I sync krita from 1.5 month old master to latest master
branch. I also updated my system at the same time so it could be GL driver
regression.

After updating I start seeing garbage data being rendered on canvas. When it
happens, an area about a size of single tile displays a "corruptted" tile image
taken from other area of canvas (corruptted but recognizable), it almost feel
like its data pointer is pointing to at free'd memory. And it's gone when I
refresh the canvas by hiding/unhiding the layer.

Also, krita randomly freezes. The stack trace looks like also related to canvas
update, so I think there is a high chance that the freeze issue is related to
texture corruption issue.

STEPS TO REPRODUCE
Just use krita normally, probably happen once per 1-2 hours.

OBSERVED RESULT

EXPECTED RESULT

SOFTWARE/OS VERSIONS
Linux, Hyprland (Wayland)
Qt 6.11.2
mesa 26.2.1, Zink enabled for 10bit color on Nvidia
krita master branch at 2026-09-01
Krita wayland native canvas enabled

ADDITIONAL INFORMATION

Stacktrace generated when deadlock happen
```
(gdb) bt
#0  0x00007ffff22a5a22 in __syscall_cancel_arch () from
/nix/store/n51dhmdbik1kfrsm62j5knavmigwrl1a-glibc-2.42-84/lib/libc.so.6
#1  0x00007ffff229912c in __internal_syscall_cancel () from
/nix/store/n51dhmdbik1kfrsm62j5knavmigwrl1a-glibc-2.42-84/lib/libc.so.6
#2  0x00007ffff22998ac in __futex_abstimed_wait_common () from
/nix/store/n51dhmdbik1kfrsm62j5knavmigwrl1a-glibc-2.42-84/lib/libc.so.6
#3  0x00007ffff229c30e in pthread_cond_wait@@GLIBC_2.3.2 () from
/nix/store/n51dhmdbik1kfrsm62j5knavmigwrl1a-glibc-2.42-84/lib/libc.so.6
#4  0x00007fffea350d89 in cnd_wait () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#5  0x00007fffeaba1507 in zink_batch_usage_unflushed_wait () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#6  0x00007fffeaba1577 in zink_batch_usage_wait () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#7  0x00007fffeab7864f in zink_buffer_map () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#8  0x00007fffea51b459 in tc_buffer_map () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#9  0x00007fffe9fd9576 in _mesa_bufferobj_map_range () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#10 0x00007fffea0de3ed in _mesa_validate_pbo_teximage () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#11 0x00007fffe9e8b693 in _mesa_store_texsubimage () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#12 0x00007fffe9e9ff1e in st_TexSubImage () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#13 0x00007fffe9e6e0a3 in texture_sub_image () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#14 0x00007fffe9e71876 in texsubimage_err () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#15 0x00007fffe9e78695 in _mesa_TexSubImage2D () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#16 0x00007fffe9f7c86f in _mesa_unmarshal_TexSubImage2D () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#17 0x00007fffe9e57761 in glthread_unmarshal_batch () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#18 0x00007fffe9e57e13 in _mesa_glthread_finish () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#19 0x00007fffe9f8a2fd in _mesa_marshal_FenceSync () from
/nix/store/v5c40hysv678q0yjwvdi0q97rdmxr9r4-mesa-26.2.1/lib/libgallium-26.2.1.so
#20 0x00007ffff78d10c0 in Sync::getSync() () from
/home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#21 0x00007ffff78d11a8 in KisOpenGLSync::KisOpenGLSync() () from
/home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#22 0x00007ffff78c08f5 in
KisOpenGLImageTextures::recalculateCache(KisSharedPtr<KisUpdateInfo>, bool) ()
from /home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#23 0x00007ffff78d2003 in
KisOpenGLCanvasRenderer::updateCanvasProjection(KisSharedPtr<KisUpdateInfo>) ()
from /home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#24 0x00007ffff78b9e78 in
KisOpenGLCanvas2::updateCanvasProjection(KisSharedPtr<KisUpdateInfo>) () from
/home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#25 0x00007ffff761646c in
KisCanvasWidgetBase::updateCanvasProjection(QList<KisSharedPtr<KisUpdateInfo> >
const&) () from /home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#26 0x00007ffff78bd0e4 in
KisOpenGLCanvas2::updateCanvasProjection(QList<KisSharedPtr<KisUpdateInfo> >
const&) () from /home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#27 0x00007ffff7622aa5 in
KisCanvas2::updateCanvasProjection()::{lambda(QList<KisSharedPtr<KisUpdateInfo>
> const&)#1}::operator()(QList<KisSharedPtr<KisUpdateInfo> > const&) const ()
   from /home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#28 0x00007ffff7623366 in KisCanvas2::updateCanvasProjection() () from
/home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#29 0x00007ffff2c3187f in void doActivate<false>(QObject*, int, void**) () from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Core.so.6
#30 0x00007ffff4bbcbf1 in KisSignalCompressor::tryEmitSignalSafely() () from
/home/user/sources/krita/outputs/out/lib/libkritaglobal.so.21
#31 0x00007ffff4bbccc2 in KisSignalCompressor::tryEmitOnTick(bool) () from
/home/user/sources/krita/outputs/out/lib/libkritaglobal.so.21
#32 0x00007ffff4bbcdd4 in KisSignalCompressor::start() () from
/home/user/sources/krita/outputs/out/lib/libkritaglobal.so.21
#33 0x00007ffff2c212f4 in QObject::event(QEvent*) () from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Core.so.6
#34 0x00007ffff43a9eef in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Widgets.so.6
#35 0x00007ffff7b73bf6 in KisApplication::notify(QObject*, QEvent*) () from
/home/user/sources/krita/outputs/out/lib/libkritaui.so.21
#36 0x00007ffff2bbd8d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Core.so.6
#37 0x00007ffff2bc17a9 in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) () from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Core.so.6
#38 0x00007ffff2f0b70f in postEventSourceDispatch(_GSource*, int (*)(void*),
void*) () from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Core.so.6
#39 0x00007ffff2100c0b in g_main_context_dispatch_unlocked () from
/nix/store/a3hr0l5skscvbkcr7kz3nhi4linz1p71-glib-2.88.3/lib/libglib-2.0.so.0
#40 0x00007ffff21041d8 in g_main_context_iterate_unlocked.isra () from
/nix/store/a3hr0l5skscvbkcr7kz3nhi4linz1p71-glib-2.88.3/lib/libglib-2.0.so.0
#41 0x00007ffff2104a9f in g_main_context_iteration () from
/nix/store/a3hr0l5skscvbkcr7kz3nhi4linz1p71-glib-2.88.3/lib/libglib-2.0.so.0
#42 0x00007ffff2f0abcd in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Core.so.6
#43 0x00007ffff2bcbbeb in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Core.so.6
#44 0x00007ffff2bc6e99 in QCoreApplication::exec() () from
/nix/store/avdsaqd2dw3pnc3j87q7qjli1d6ns0xp-qtbase-6.11.2/lib/libQt6Core.so.6
#45 0x000055555555dc04 in main ()
```

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to