Bug 426641 - Converting RGB->CMYK while CMYK soft-proofing is enabled shows garbage on screen
Summary: Converting RGB->CMYK while CMYK soft-proofing is enabled shows garbage on screen
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: 4.3.0
Platform: Other Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-17 14:44 UTC by Dmitry Kazakov
Modified: 2021-12-01 10:23 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Scrrenshot of the problem (107.93 KB, image/png)
2020-09-17 14:44 UTC, Dmitry Kazakov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry Kazakov 2020-09-17 14:44:05 UTC
Created attachment 131722 [details]
Scrrenshot of the problem

Tested on the current krita/4.3 branch 7013fef0227028316c8788e828e28a66f026c08d


STEPS TO REPRODUCE
1. Create an RGB image
2. Configure CMYK soft-proofing
3. Activate soft-proofing with Ctrl+Y
4. Image->Convert Image Color Space and select any CMYK color space

The canvas becomes garbaged, see attached screenshot. Pressing Ctrl+Y twice makes the canvas look great again.
Comment 1 Ahab Greybeard 2020-09-17 22:01:05 UTC
I can reproduce this for the 4.2.8 appimage and the 4.3.0 appimage.

If you start with a CMYK or an RGB image and apply CMYK or RGB softproofing then converting the image colour space from one to the other gives a 'garbaged' result that can be recovered by pressing Ctrl+Y but I find that it only needs to be pressed once to remove the garbage effect.
Comment 2 Dmitry Kazakov 2021-12-01 10:13:53 UTC
Git commit d05ba9448eda7464ba5a6b0a06c8a8a7e87c9c0d by Dmitry Kazakov, on behalf of Mathias Wein.
Committed on 01/12/2021 at 10:06.
Pushed by dkazakov into branch 'master'.

Fix issues when soft proofing is active during colorspace conversion

The color transform needs to be reset before updating the canvas.
Also, there was an odd workaround to set new channel flags for the root
layer, but this was an async signal that caused an update in the middle
of invalidating the image data during conversion.
Instead, simply fetch the (after the previous fix valid) new channel flags
when the canvas gets notified about the color space change.
Related: bug 441165, bug 329336

M  +6    -0    libs/ui/canvas/kis_canvas2.cpp
M  +2    -0    libs/ui/opengl/KisOpenGLUpdateInfoBuilder.cpp
M  +0    -1    plugins/dockers/channeldocker/channeldocker_dock.cpp

https://invent.kde.org/graphics/krita/commit/d05ba9448eda7464ba5a6b0a06c8a8a7e87c9c0d
Comment 3 Dmitry Kazakov 2021-12-01 10:23:34 UTC
Git commit 413376726265eda75864eca9899c110ee7d5354e by Dmitry Kazakov, on behalf of Mathias Wein.
Committed on 01/12/2021 at 10:16.
Pushed by dkazakov into branch 'krita/5.0'.

Fix issues when soft proofing is active during colorspace conversion

The color transform needs to be reset before updating the canvas.
Also, there was an odd workaround to set new channel flags for the root
layer, but this was an async signal that caused an update in the middle
of invalidating the image data during conversion.
Instead, simply fetch the (after the previous fix valid) new channel flags
when the canvas gets notified about the color space change.
Related: bug 441165, bug 329336
(cherry picked from commit d05ba9448eda7464ba5a6b0a06c8a8a7e87c9c0d)

M  +6    -0    libs/ui/canvas/kis_canvas2.cpp
M  +2    -0    libs/ui/opengl/KisOpenGLUpdateInfoBuilder.cpp
M  +0    -1    plugins/dockers/channeldocker/channeldocker_dock.cpp

https://invent.kde.org/graphics/krita/commit/413376726265eda75864eca9899c110ee7d5354e