Looking for a volunteer to check out the FSC plugin

Hey, I’m still getting these two problems:

  • that error message at startup (same as before)
  • simply running the model will hang at 99% and Krita will have to be force closed.

Is this a problem with an incorrect install? In this case I will wait for that blog update. At the moment I can’t comment on any results because it just hangs.

This time I had another issue, too. When I tried to run the plugin, I got this error:

This was caused by a stale path in my kritarc file’s model_folder entry in plugin’s config section. I think you need to add a check for whether the model path exists and fall back to the default if something is wrong.

Additional feedback so far:

  • It would be nice to add titles to the four preview windows, or maybe number them to give a hint these show consecutive stages of processing.
  • For preview panning, if we can’t show the image, maybe replace it with checkers or anything else that would hint that the move is happening? (unless it’s pain in the back to implement, but I’d at least prototype it to see if it looks better).
  • Regarding HyperThreading, I tested it and you’re right. At least based on how long the CPU is occupied, it gives zero benefit, or even has a slight negative scaling. I agree in this case it’s best to not expose this option at all. Unexpected, but it is what it is. Sorry for the fuss :slight_smile: (I was able to verify it, because it hangs at 99% for me :stuck_out_tongue: )

I assume you downloaded the Windows version, unpacked it and ran it? Then there is no incorrect install, it should all work…

Could you try to download this build: Artifacts · windows-build (#3048233) · Jobs · Graphics / Krita · GitLab . I added a bunch of debug output to hopefully figure out at which point it hangs. There is a manual how to get the text output of the plugin here: Getting Krita logs — Krita Manual 5.2.0 documentation - DebugView is probably the easiest option.

Could you please try this build? _packaging · Artifacts · linux-build (#3048230) · Jobs · Graphics / Krita · GitLab It’s an Asan build, so it’s even more sensitive than normal debug, but hopefully won’t crash immediately… and it does have debug symbols afaik.

As soon as I got time this afternoon.

Hi @tiar, sorry, but no luck again. I tried on a new system this time (this one is a bit older, Ryzen 5 5600X). Still Windows 11 24H2.

I’m just running the model with the defaults:

Here are some observations:

  • I tried small (256x256) and large resolutions (2048x2048), still hangs, small image processes faster.
  • the progress bar sometimes get stuck sooner (around 30%), but eventually jumps to 99%
  • when the processing is done, the app becomes unresponsive. I let it sit like that for good few minutes, but it stays stuck forever.

In DebugView, there’s a suspicious spam related to the timers, probably this could be the reason for the hang (mixing up the threads):

QObject::startTimer: Timers cannot be started from another thread

Full DebugView log
00000001	0.00000000	[6788] No "haiku" available.	
00000002	0.00002600	[6788] No "macintosh" available.	
00000003	0.00004770	[6788] No "breeze" available.	
00000004	0.00011330	[6788] Set style "fusion"	
00000005	1.55145156	[6788] QObject::startTimer: Timers cannot have negative intervals	
00000006	2.96358299	[5384] No "haiku" available.	
00000007	2.96360445	[5384] No "macintosh" available.	
00000008	2.96362591	[5384] No "breeze" available.	
00000009	2.96369004	[5384] Set style "fusion"	
00000010	4.36250782	[6788] Warning: requested data for unknown action "path-break-at-selection"	
00000011	25.99798584	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000012	124.18965912	[13052] qt.qpa.mime: Retrying to obtain clipboard.	
00000013	124.24171448	[13052] qt.qpa.mime: Retrying to obtain clipboard.	
00000014	124.29344177	[13052] qt.qpa.mime: Unable to obtain clipboard.	
00000015	140.77555847	[4120] Suspending	
00000016	308.57980347	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000017	308.57983398	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000018	308.57986450	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000019	308.57989502	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000020	308.57989502	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000021	308.57992554	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000022	308.57995605	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000023	308.57995605	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000024	308.57998657	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000025	308.58001709	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000026	308.58001709	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000027	308.58004761	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000028	308.58007813	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000029	308.58010864	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000030	308.58010864	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000031	308.58010864	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000032	308.58013916	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000033	308.58016968	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000034	308.58016968	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000035	308.58020020	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000036	308.58023071	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000037	308.58026123	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000038	308.58026123	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000039	308.58026123	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000040	308.58029175	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000041	308.58032227	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000042	308.58032227	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000043	308.58035278	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000044	308.58038330	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000045	308.58041382	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000046	308.58041382	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000047	308.58041382	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000048	308.58044434	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000049	308.58047485	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000050	308.58047485	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000051	308.58053589	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000052	308.58053589	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000053	308.58056641	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000054	308.58059692	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000055	308.58059692	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000056	308.58062744	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000057	308.58062744	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000058	308.58065796	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000059	308.58068848	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000060	308.58071899	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000061	308.58071899	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000062	308.58074951	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000063	308.58074951	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000064	308.58078003	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000065	308.58078003	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000066	308.58081055	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000067	308.58084106	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000068	308.58087158	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000069	308.58090210	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000070	308.58090210	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000071	308.58093262	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000072	308.58096313	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000073	308.58099365	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000074	308.58102417	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000075	308.58102417	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000076	308.58105469	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000077	308.58105469	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000078	308.58108521	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000079	308.58111572	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000080	308.58111572	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000081	308.58114624	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000082	308.58117676	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000083	308.58117676	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000084	308.58120728	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000085	308.58120728	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000086	308.58123779	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000087	308.58126831	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000088	308.58126831	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000089	308.58129883	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000090	308.58132935	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000091	308.58139038	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000092	308.58139038	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000093	308.58139038	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000094	308.58142090	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000095	308.58145142	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000096	308.58145142	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000097	308.58148193	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000098	308.58151245	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000099	308.58154297	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000100	308.58154297	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000101	308.58154297	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000102	308.58157349	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000103	308.58160400	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000104	308.58163452	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000105	308.58166504	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000106	308.58166504	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000107	308.58169556	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000108	308.58169556	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000109	308.58172607	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000110	308.58172607	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000111	308.58175659	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000112	308.58178711	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000113	308.58181763	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000114	308.58181763	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000115	308.58184814	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000116	308.58184814	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000117	308.58187866	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000118	308.58187866	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000119	308.58190918	[6788] QObject::killTimer: Timers cannot be stopped from another thread	
00000120	308.58193970	[6788] QObject::startTimer: Timers cannot be started from another thread	
00000121	371.53219604	[12892] ????,???????. RetCode:404	

I am sorry, but krita crashed again.

(gdb) bt
#0  0x00007ffff52daeb2 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) ()
   from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libQt5Core.so.5
#1  0x00007ffff616bd32 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libQt5Widgets.so.5
#2  0x00007ffff7ae864e in KisApplication::notify(QObject*, QEvent*) ()
   from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libkritaui.so.20
#3  0x00007ffff52db198 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libQt5Core.so.5
#4  0x00007ffff5336289 in QTimerInfoList::activateTimers() ()
   from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libQt5Core.so.5
#5  0x00007ffff5336b8c in ?? ()
   from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libQt5Core.so.5
#6  0x00007ffff2b0dd3b in g_main_dispatch (context=0x555555e92910)
    at ../../../glib/gmain.c:3419
#7  g_main_context_dispatch (context=0x555555e92910)
    at ../../../glib/gmain.c:4137
#8  0x00007ffff2b632b8 in g_main_context_iterate.constprop.0 (
    context=context@entry=0x555555e92910, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../glib/gmain.c:4213
#9  0x00007ffff2b0b3e3 in g_main_context_iteration (context=0x555555e92910, 
    may_block=1) at ../../../glib/gmain.c:4278
--Type <RET> for more, q to quit, c to continue without paging--
#10 0x00007ffff5336f0a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libQt5Core.so.5
#11 0x00007ffff52d9b3b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libQt5Core.so.5
#12 0x00007ffff52e22f4 in QCoreApplication::exec() () from /tmp/.mount_krita.PMaKal/usr/bin/../lib/libQt5Core.so.5
#13 0x000055555555dab3 in main ()

Hey, I also tested the Linux build linked above. This was on Ubuntu 24.04 running XOrg.

As far as I can tell it works OK. I didn’t get any crashes. The UI is responsive, I can even move the window while it’s processing, it does not hang like on Windows. It’s much faster too, like by a mile faster!

I’m still seeing the same “wrong thread” log messages in gdb, so I think the same problem exists, it just doesn’t crash the UI like on Windows.

Another pain point for me is the UI. I’m on a 4K monitor, and even though it’s 32 inch, it’s not comfortable to use at 100% scale. Which means I’m forced to use it at 200% scale. Krita does not support fractional scaling (and neither does the OS to be honest). This means the UI is as if on 1080p screen and when I open a few collapsed sections, they get pushed outside the screen. I think you need to add a top level scrollbar in the window to deal with this problem. I happen to have a vertical monitor as well, so I was able to move the window there and use it no problem, but people on laptops or otherwise using 1080p resolution will be cooked.