Skip to content

Conversation

@TurboGit
Copy link
Member

  • Rename all routines from darktable_ prefix to dt_ to conform to style.
  • Never force the splash screen. We are then loosing the crawler messages but this could create a race condition. We create the splash in a different threads than the main one. This is wrong as the creation of the splash screen is not protected against concurrent access.

Possibly fixes #19992 #20111

@TurboGit TurboGit added this to the 5.4.1 milestone Jan 14, 2026
@TurboGit TurboGit added bugfix pull request fixing a bug priority: high core features are broken and not usable at all, software crashes scope: UI user interface and interactions release notes: pending labels Jan 14, 2026
@jenshannoschwalm
Copy link
Collaborator

Yes, not starting in another thread is for sure good!

@gi-man
Copy link
Contributor

gi-man commented Jan 14, 2026

I built this PR on Windows 11. Dt crashes when I disable the splash screen.

- Rename all routines from darktable_ prefix to dt_ to conform to style.
- Never force the splash screen. We are then loosing the crawler messages
  but this could create a race condition. We create the splash in a
  different threads than the main one. This is wrong as the creation
  of the splash screen is not protected against concurrent access.

Possibly fixes #19992 #20111
@TurboGit
Copy link
Member Author

@gi-man : And you do not see very briefly the splash screen anymore, right?

Are you willing to debug this with me? If I instrument the code, would you be able to compile, run and report what you see?

@dterrahe
Copy link
Member

  • We create the splash in a different threads than the main one.

Where? I only see it in dt_init which is in the main/gui thread, no? The crawler is also run there, so all the progress percentage updates should be gui thread too?

@TurboGit
Copy link
Member Author

Where? I only see it in dt_init which is in the main/gui thread, no? The crawler is also run there, so all the progress percentage updates should be gui thread too?

It is removed from this PR. The creation was done on the main treads (my message was incorrect on this) but then multiple threads (if you include the crawler) where updating the splash with messages.

@dterrahe
Copy link
Member

Like I said, dt_control_crawler_run is also called from dt_init so it is running in the gui thread (which is waiting for its completion). So again, which other threads are updating the splash with messages? Simply asking because that would also be a problem when the splash screen is not disabled.

@TurboGit
Copy link
Member Author

@dterrahe : Indeed, missed that, I really thought that the crawler was in an independent thread. That explain why this PR did not fix the issue. Back to debug...

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

@gi-man : And you do not see very briefly the splash screen anymore, right?

Are you willing to debug this with me? If I instrument the code, would you be able to compile, run and report what you see?

The screen showing up is on Fedora KDE current master. On Windows it initially just has the terminal, then dt window shows up with the tittle bar (the one with the X to close or minimize) with a white background. It will remain like this until I close/stop the process.

I'm willing to debug. I am 6hrs behind you so there will be a delay. Yes, I can compile and run it on Windows.

@TurboGit
Copy link
Member Author

@gi-man : Perfect ! I have just push a new version I had prepared.

The goal is to run darktable from command line with SPLASH_DEBUG set to some value and report if it work or not and the output in the console.

  1. First, set SPLASH_DEBUG=15 and test (this makes the splash screen a no-op), it should pass, if not we can stop here.
  2. set SPLASH_DEBUG=2
  3. set SPLASH_DEBUG=4
  4. set SPLASH_DEBUG=1
  5. set SPLASH=DEBUG=8

And we'll advise for the next step. Thanks for your help!

@TurboGit
Copy link
Member Author

Last but not least, do you have Lua scripts? If so, can you disable Lua completely (remove the luarc file).

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

version: darktable 5.5.0+97~g53f7316e96
start: 2026-01-15 09:09:52

     0.0001 [dt starting]
 darktable.exe SPLASH_DEBUG=15 --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test
[dt_splash_screen_create] (force:0) (0)
   no create (conf)
[dt_splash_screen_set_progress] (opening image library)
   not initialized
[dt_splash_screen_set_progress] (preparing database)
   not initialized
[dt_splash_screen_set_progress] (setting up tags table)
   not initialized
[dt_splash_screen_set_progress] (initializing signals and control)
   not initialized
[dt_splash_screen_set_progress] (importing default styles)
   not initialized
[dt_splash_screen_set_progress] (initializing GraphicsMagick)
   not initialized
[dt_splash_screen_set_progress] (initializing libheif)
   not initialized
[dt_splash_screen_set_progress] (starting OpenCL)
   not initialized
[dt_splash_screen_set_progress] (loading noise profiles)
   not initialized
[dt_splash_screen_set_progress] (synchronizing local copies)
   not initialized
[dt_splash_screen_set_progress] (initializing camera control)
   not initialized
[dt_splash_screen_set_progress] (initializing GUI)
   not initialized
[dt_splash_screen_set_progress] (loading processing modules)
   not initialized
[dt_splash_screen_set_progress] (loading utility modules)
   not initialized
[dt_splash_screen_set_progress] (loading views)
   not initialized
[dt_splash_screen_set_progress] (initializing Lua)
   not initialized
[dt_splash_screen_destroy] (0)
   not initialized

I have to drive into work today. I will continue to test in the evening.

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

For clarity it did crash. I just did another run using -d all to see if it provides more insights.

[dt_splash_screen_set_progress] (loading views)
   not initialized
[dt_splash_screen_set_progress] (initializing Lua)
   not initialized
     2.5586 [undo] clear list for 2047 (length 0)
     2.5586 [undo] clear list for 2047 (length 0)
     2.5751 [add_job]	00  generate mipmaps | queue: DT_JOB_QUEUE_SYSTEM_BG | priority: 0
     2.5752 [run_job+]	06  generate mipmaps | queue: DT_JOB_QUEUE_SYSTEM_BG | priority: 0
     2.5752 [undo] clear list for 2041 (length 0)
     2.5752 [undo] clear list for 2041 (length 0)
     2.5752 [thumb crawler] closing due to preferences setting
     2.5752 [sql] C:/msys64/home/gman/darktable/src/common/collection.c:907, function dt_collection_get_selected_count(): prepare "SELECT COUNT(*) FROM main.selected_images"
     2.5752 [run_job-]	06  generate mipmaps | queue: DT_JOB_QUEUE_SYSTEM_BG | priority: 0
     2.5754 [sql] C:/msys64/home/gman/darktable/src/common/collection.c:941, function dt_collection_get(): prepare "SELECT mi.imgid FROM main.selected_images AS s JOIN memory.collected_images AS mi WHERE mi.imgid = s.imgid LIMIT -1, ?1"
     2.5755 [sql] C:/msys64/home/gman/darktable/src/common/collection.c:2797, function dt_collection_image_offset_with_collection(): prepare "SELECT imgid FROM memory.collected_images"
     2.5779 [add_job]	00  synchronize sidecars | queue: DT_JOB_QUEUE_SYSTEM_FG | priority: 0
     2.5779 [run_job+]	09  synchronize sidecars | queue: DT_JOB_QUEUE_SYSTEM_FG | priority: 4
     2.8340 [dt_get_system_gui_ppd] system ppd is 1.000000
     2.8340 [screen resolution] setting the screen resolution to 120.000000 dpi 
[dt_splash_screen_destroy] (0)
   not initialized
     2.8495 [dt_init] startup took 2.849481 seconds
     2.8495 [memory] after successful startup
            max address space (vmpeak):       449796 kB
            cur address space (vmsize):       449796 kB
            max used memory   (vmhwm ):       273248 kB
            cur used memory   (vmrss ):       273248 Kb
     4.3826 [camera_control] loaded 0 port drivers
     4.3827 [camera_control] 0 cameras connected

@TurboGit
Copy link
Member Author

TurboGit commented Jan 15, 2026

To run it should be on a standard Windows console:

c> set SPLASH_DEBUG=15
c> darktable ...

Sorry for not having been clear.

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

To run it should be on a standard Windows console:

c> set SPLASH_DEBUG=15
c> darktable ...

Sorry for not having been clear.

version: darktable 5.5.0+97~g53f7316e96
start: 2026-01-15 16:23:34

 0.0001 [dt starting]

darktable.exe --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test
[dt_splash_screen_create] (force:0) (0)
reset
[dt_splash_screen_set_progress] (opening image library)
[dt_splash_screen_set_progress] (preparing database)
[dt_splash_screen_set_progress] (setting up tags table)
[dt_splash_screen_set_progress] (initializing signals and control)
[dt_splash_screen_set_progress] (importing default styles)
[dt_splash_screen_set_progress] (initializing GraphicsMagick)
[dt_splash_screen_set_progress] (initializing libheif)
[dt_splash_screen_set_progress] (starting OpenCL)
[dt_splash_screen_set_progress] (loading noise profiles)
[dt_splash_screen_set_progress] (synchronizing local copies)
[dt_splash_screen_set_progress] (initializing camera control)
[dt_splash_screen_set_progress] (initializing GUI)
[dt_splash_screen_set_progress] (loading processing modules)
[dt_splash_screen_set_progress] (loading utility modules)
[dt_splash_screen_set_progress] (loading views)
[dt_splash_screen_set_progress] (initializing Lua)
[dt_splash_screen_destroy] (0)

@TurboGit
Copy link
Member Author

So not crash here, right?

@TurboGit
Copy link
Member Author

If no crash, now let's set SPLASH_DEBUG to other values and report if it crashes or not and the actual log. TIA.

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

So not crash here, right?

It did crash with SPLASH_DEBUG=15

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

As an experiment I tried, even with the show_splash_screen=TRUE, it crashes with any value in SPLASH_DEBUG!=0.

If I set SPLASH_DEBUG=0 and show_splash_screen=TRUE, then no crash.

@TurboGit
Copy link
Member Author

TurboGit commented Jan 15, 2026

It did crash with SPLASH_DEBUG=15

This means that the issue is not really the splash screen as with value 15 the splash screen is a no-op. Only a printf to display some information and that's all. No dialog created, no widget created, no manual handling of events...

If I set SPLASH_DEBUG=0 and show_splash_screen=TRUE, then no crash.

Ok, that's then basically the current code on master.

As an experiment I tried, even with the show_splash_screen=TRUE, it crashes with any value in SPLASH_DEBUG!=0.

Even for value 2? as this only reset to NULL a widget that should be null anyway.

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

show_splash_screen, SPLASH_DEBUG, Crash?
1, 0, No crash
0, 0, Crash
1, 15, Crash
0, 15, Crash
0, 8, Crash
1, 8, No crash and splash screen shows when closing dt
1, 1, Crash
1, 4, No crash
1, 2, No crash
1, 1, Crash (I repeated to confirm)

@TurboGit
Copy link
Member Author

What about 0,2 ?

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

0, 2, Crash
0, 4, Crash
0, 8, Crash

@TurboGit
Copy link
Member Author

Ok, all this seems to indicate a memory corruption, but not something directly related to the splash screen.

Are you able to use the gdb debugger?

@TurboGit
Copy link
Member Author

If yes, you can run darktable with:

gdb -- args darktable.exe --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test

and when it crashes, enter the command bt on the (gdb) prompt:

(gdb) bt

And report the output.

@TurboGit
Copy link
Member Author

What would help, is for all 0, n combo to report the output from the console. You've reported only the output for value 15.

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

I can try gdb, but this is Windows. I tried last night via the URTC terminal but it did not work. I need to google for more info.

I can send you the 0,n terminal. It looks to be the same, but I will confirm.

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

0, 2, Crash

========================================
version: darktable 5.5.0+97~g53f7316e96
start: 2026-01-15 17:18:42

     0.0001 [dt starting]
 darktable.exe --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test
[dt_splash_screen_create] (force:0) (0)
   reset
   no create (conf)
[dt_splash_screen_set_progress] (opening image library)
   not initialized
[dt_splash_screen_set_progress] (preparing database)
   not initialized
[dt_splash_screen_set_progress] (setting up tags table)
   not initialized
[dt_splash_screen_set_progress] (initializing signals and control)
   not initialized
[dt_splash_screen_set_progress] (importing default styles)
   not initialized
[dt_splash_screen_set_progress] (initializing GraphicsMagick)
   not initialized
[dt_splash_screen_set_progress] (initializing libheif)
   not initialized
[dt_splash_screen_set_progress] (starting OpenCL)
   not initialized
[dt_splash_screen_set_progress] (loading noise profiles)
   not initialized
[dt_splash_screen_set_progress] (synchronizing local copies)
   not initialized
[dt_splash_screen_set_progress] (initializing camera control)
   not initialized
[dt_splash_screen_set_progress] (initializing GUI)
   not initialized
[dt_splash_screen_set_progress] (loading processing modules)
   not initialized
[dt_splash_screen_set_progress] (loading utility modules)
   not initialized
[dt_splash_screen_set_progress] (loading views)
   not initialized
[dt_splash_screen_set_progress] (initializing Lua)
   not initialized
[dt_splash_screen_destroy] (0)
   not initialized

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

0, 8, Crash

========================================
version: darktable 5.5.0+97~g53f7316e96
start: 2026-01-15 17:20:07

     0.0001 [dt starting]
 darktable.exe --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test
[dt_splash_screen_create] (force:0) (0)
   no create (conf)
[dt_splash_screen_set_progress] (opening image library)
   not initialized
[dt_splash_screen_set_progress] (preparing database)
   not initialized
[dt_splash_screen_set_progress] (setting up tags table)
   not initialized
[dt_splash_screen_set_progress] (initializing signals and control)
   not initialized
[dt_splash_screen_set_progress] (importing default styles)
   not initialized
[dt_splash_screen_set_progress] (initializing GraphicsMagick)
   not initialized
[dt_splash_screen_set_progress] (initializing libheif)
   not initialized
[dt_splash_screen_set_progress] (starting OpenCL)
   not initialized
[dt_splash_screen_set_progress] (loading noise profiles)
   not initialized
[dt_splash_screen_set_progress] (synchronizing local copies)
   not initialized
[dt_splash_screen_set_progress] (initializing camera control)
   not initialized
[dt_splash_screen_set_progress] (initializing GUI)
   not initialized
[dt_splash_screen_set_progress] (loading processing modules)
   not initialized
[dt_splash_screen_set_progress] (loading utility modules)
   not initialized
[dt_splash_screen_set_progress] (loading views)
   not initialized
[dt_splash_screen_set_progress] (initializing Lua)
   not initialized
[dt_splash_screen_destroy] (0)

@TurboGit
Copy link
Member Author

Can you edit src/iop/scalepixels.c and in gui_init remove the call to:

IOP_GUI_ALLOC(scalepixels);

(delete the line).

@TurboGit
Copy link
Member Author

Ok, 0,2 & 0,8 just confirms that all is ok and that the splash screen is not the culprit (I'm confident at 99%).

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

0, 4, Crash This one is different

========================================
version: darktable 5.5.0+97~g53f7316e96
start: 2026-01-15 17:24:46

     0.0001 [dt starting]
 darktable.exe --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test
[dt_splash_screen_create] (force:0) (0)
   no create (conf)
[dt_splash_screen_set_progress] (opening image library)
[dt_splash_screen_set_progress] (preparing database)
[dt_splash_screen_set_progress] (setting up tags table)
[dt_splash_screen_set_progress] (initializing signals and control)
[dt_splash_screen_set_progress] (importing default styles)
[dt_splash_screen_set_progress] (initializing GraphicsMagick)
[dt_splash_screen_set_progress] (initializing libheif)
[dt_splash_screen_set_progress] (starting OpenCL)
[dt_splash_screen_set_progress] (loading noise profiles)
[dt_splash_screen_set_progress] (synchronizing local copies)
[dt_splash_screen_set_progress] (initializing camera control)
[dt_splash_screen_set_progress] (initializing GUI)
[dt_splash_screen_set_progress] (loading processing modules)
[dt_splash_screen_set_progress] (loading utility modules)
[dt_splash_screen_set_progress] (loading views)
[dt_splash_screen_set_progress] (initializing Lua)
[dt_splash_screen_destroy] (0)
   not initialized

@victoryforce
Copy link
Collaborator

I can try gdb, but this is Windows. I tried last night via the URTC terminal but it did not work. I need to google for more info.

@gi-man Maybe you installed the wrong gdb package. A while back I also had a problem with gdb which was installed in /usr/bin from the gdb package. I removed that package and installed mingw-w64-ucrt-x86_64-gdb which had gdb.exe in /ucrt64/bin. This binary worked without any problems.

Backtraces are an invaluable source of information in case of crashes, so it would be very helpful if you could run darktable under gdb.

@gi-man
Copy link
Contributor

gi-man commented Jan 15, 2026

Can you edit src/iop/scalepixels.c and in gui_init remove the call to:

IOP_GUI_ALLOC(scalepixels);

(delete the line).

With this change on top of your PR.

0, 15, Crash

========================================
version: darktable 5.5.0+97~g53f7316e96-dirty
start: 2026-01-15 17:39:57

     0.0001 [dt starting]
 darktable.exe --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test
[dt_splash_screen_create] (force:0) (0)
   reset
[dt_splash_screen_set_progress] (opening image library)
[dt_splash_screen_set_progress] (preparing database)
[dt_splash_screen_set_progress] (setting up tags table)
[dt_splash_screen_set_progress] (initializing signals and control)
[dt_splash_screen_set_progress] (importing default styles)
[dt_splash_screen_set_progress] (initializing GraphicsMagick)
[dt_splash_screen_set_progress] (initializing libheif)
[dt_splash_screen_set_progress] (starting OpenCL)
[dt_splash_screen_set_progress] (loading noise profiles)
[dt_splash_screen_set_progress] (synchronizing local copies)
[dt_splash_screen_set_progress] (initializing camera control)
[dt_splash_screen_set_progress] (initializing GUI)
[dt_splash_screen_set_progress] (loading processing modules)
[dt_splash_screen_set_progress] (loading utility modules)
[dt_splash_screen_set_progress] (loading views)
[dt_splash_screen_set_progress] (initializing Lua)
[dt_splash_screen_destroy] (0)

0, 1, Crash

========================================
version: darktable 5.5.0+97~g53f7316e96-dirty
start: 2026-01-15 17:40:28

     0.0001 [dt starting]
 darktable.exe --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test
[dt_splash_screen_create] (force:0) (0)
   no create (conf)
[dt_splash_screen_set_progress] (opening image library)
   not initialized
[dt_splash_screen_set_progress] (preparing database)
   not initialized
[dt_splash_screen_set_progress] (setting up tags table)
   not initialized
[dt_splash_screen_set_progress] (initializing signals and control)
   not initialized
[dt_splash_screen_set_progress] (importing default styles)
   not initialized
[dt_splash_screen_set_progress] (initializing GraphicsMagick)
   not initialized
[dt_splash_screen_set_progress] (initializing libheif)
   not initialized
[dt_splash_screen_set_progress] (starting OpenCL)
   not initialized
[dt_splash_screen_set_progress] (loading noise profiles)
   not initialized
[dt_splash_screen_set_progress] (synchronizing local copies)
   not initialized
[dt_splash_screen_set_progress] (initializing camera control)
   not initialized
[dt_splash_screen_set_progress] (initializing GUI)
   not initialized
[dt_splash_screen_set_progress] (loading processing modules)
   not initialized
[dt_splash_screen_set_progress] (loading utility modules)
   not initialized
[dt_splash_screen_set_progress] (loading views)
   not initialized
[dt_splash_screen_set_progress] (initializing Lua)
   not initialized
[dt_splash_screen_destroy] (0)
   not initialized

0, 8, Crash

========================================
version: darktable 5.5.0+97~g53f7316e96-dirty
start: 2026-01-15 17:42:42

     0.0001 [dt starting]
 darktable.exe --configdir C:\msys64\opt\test --cachedir C:\msys64\opt\test
[dt_splash_screen_create] (force:0) (0)
   no create (conf)
[dt_splash_screen_set_progress] (opening image library)
[dt_splash_screen_set_progress] (preparing database)
[dt_splash_screen_set_progress] (setting up tags table)
[dt_splash_screen_set_progress] (initializing signals and control)
[dt_splash_screen_set_progress] (importing default styles)
[dt_splash_screen_set_progress] (initializing GraphicsMagick)
[dt_splash_screen_set_progress] (initializing libheif)
[dt_splash_screen_set_progress] (starting OpenCL)
[dt_splash_screen_set_progress] (loading noise profiles)
[dt_splash_screen_set_progress] (synchronizing local copies)
[dt_splash_screen_set_progress] (initializing camera control)
[dt_splash_screen_set_progress] (initializing GUI)
[dt_splash_screen_set_progress] (loading processing modules)
[dt_splash_screen_set_progress] (loading utility modules)
[dt_splash_screen_set_progress] (loading views)
[dt_splash_screen_set_progress] (initializing Lua)
[dt_splash_screen_destroy] (0)
   not initialized

1, 0, No crash (just to confirm the build was good after the edits)

I need to step away for a while. I will try gdb later tonight.

@gi-man
Copy link
Contributor

gi-man commented Jan 16, 2026

I managed to get it to run in gdb. It does not crash. It is very slow. I tried it multiple times with and without the splash screen active. With the splash screen set to FALSE, the splash screen does show very briefly like on Fedora. I took a video with the cellphone. The bottom of the splash screen says: checking for updated sidecar files (2 %).

This is the only info in gdb:

warning: onecore\base\appmodel\runtime\src\identity.cpp(471)\kernelbase.dll!00007FF9AAA1AECE: (caller: 00007FF9AAA1ACE3) ReturnHr(1) tid(3dd8) 80071130 Fast Cache data not found.
warning: onecore\base\appmodel\runtime\src\identity.cpp(478)\kernelbase.dll!00007FF9AAA1AD02: (caller: 00007FF982466737) LogHr(1) tid(3dd8) 80071130 Fast Cache data not found.
warning: onecore\base\appmodel\runtime\src\identity.cpp(471)\kernelbase.dll!00007FF9AAA1AECE: (caller: 00007FF9AAA1ACE3) ReturnHr(2) tid(3dd8) 80071130 Fast Cache data not found.
warning: onecore\base\appmodel\runtime\src\identity.cpp(478)\kernelbase.dll!00007FF9AAA1AD02: (caller: 00007FF982466737) LogHr(2) tid(3dd8) 80071130 Fast Cache data not found.
[Thread 6268.0x6a98 exited with code 0]
(darktable.exe:6268): Gdk-CRITICAL **: 20:05:44.615: gdk_window_set_cursor: assertion 'GDK_IS_WINDOW (window)' failed
[Thread 6268.0x4578 exited with code 0]

@gi-man
Copy link
Contributor

gi-man commented Jan 16, 2026

I wanted to rule out the UCRT packages updates, therefore I compiled 5.2.1 using the current UCRT. 5.2.1 does not crash with the splash screen off.

@TurboGit
Copy link
Member Author

@gi-man : Not sure what you call a crash. But if it crashes under gdb what we need is the backtrace. That is when you're back into gdb (you should have the prompt (gdb) ) then enter the command bt.

@TurboGit
Copy link
Member Author

I managed to get it to run in gdb. It does not crash.

I see, if you could find a combination where it crashes and get a backtrace it would be nice.

Again, the fact that it does not crashes on gdb but crash on the same condition without gdb really favor a memory corruption or possibly a race condition.

@TurboGit
Copy link
Member Author

Something else to test is to build without Lua. I have found some comments in the code saying that we had issues...

Be sure to clean completely the build directory:

> rm -fr build

And build without Lua:

> ./build.sh --disable-lua

I let you adapt the command for Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix pull request fixing a bug priority: high core features are broken and not usable at all, software crashes release notes: pending scope: UI user interface and interactions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

darktable 5.4.0 fails to start fully on unknown condition

6 participants