Bug 373481

Summary: OCIO: all drop down menus reverting to the top item when movie krita to your second monitor
Product: [Applications] krita Reporter: Jean-Francois Bouchard <jfbouchard>
Component: DockersAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: halla
Priority: NOR    
Version: 3.0.1.1   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jean-Francois Bouchard 2016-12-09 22:54:15 UTC
Hi,

I encountered this issue while using krita w/ ocio implementation:
If I change the info in any of the OCIO drop down menus:
- input color space
- display device
- view
- look
- components

And then move the krita window from one of my monitors, to my secondary monitor (per se), all the values of thoses drop down menus will revert to the first item of the menu.

Thanks,
JF
Comment 1 Halla Rempt 2016-12-23 09:56:22 UTC
Hi Jean-Francois,

Thanks for your report. I can confirm the issue.
Comment 2 Halla Rempt 2016-12-23 11:15:43 UTC
Git commit 0ae842d8bc7dd0750b4789860158f11784b0ec62 by Boudewijn Rempt.
Committed on 23/12/2016 at 11:15.
Pushed by rempt into branch 'master'.

M  +8    -0    plugins/dockers/lut/lutdocker_dock.cpp

https://commits.kde.org/krita/0ae842d8bc7dd0750b4789860158f11784b0ec62
Comment 3 Halla Rempt 2016-12-23 12:09:11 UTC
Git commit 317438eb2460ec0da2a309811c0b3009553aa957 by Boudewijn Rempt.
Committed on 23/12/2016 at 12:08.
Pushed by rempt into branch 'krita/3.1'.

M  +8    -0    plugins/dockers/lut/lutdocker_dock.cpp

https://commits.kde.org/krita/317438eb2460ec0da2a309811c0b3009553aa957
Comment 4 Halla Rempt 2017-08-15 13:51:03 UTC
Have to reopen since this broke the lut docker completely.
Comment 5 Dmitry Kazakov 2017-08-16 09:56:17 UTC
Git commit ff43d055f07e84331e4f3f1f0a5d21feac49d022 by Dmitry Kazakov.
Committed on 16/08/2017 at 09:45.
Pushed by dkazakov into branch 'kazakov/async-animation-rendering'.

Fix a set of OCIO-related bugs

1) Don't reset LUT docker when moving the window over screens. We should
   actually check if the combo boxes contents is going to change or not in
   resetOcioConfiguration() and keep them intact if possible for not
   resetting the user's settings.

2) The display shader should be recompiled not when setDisplayFilter() is
   called, but when filter->updateShader() is called. The point is that
   quite a lot of filter updates happen without(!) recompiling the shader.
   And, obviously, the order of calls to updateShader() and
   setDisplayFilter() is generally undefined, so if we try to recompile it
   in setDisplayFilter() there might be still outdated version of it.

3) Removed explicit initialization of the display filter in
   LutDockerDock::setCanvas(). The point is that the correct filter will
   be correctly initialized later in updateDisplaySettings(). And this
   extra call made Krita recompute the image 6(!) times when loading any
   image. That can take ages on complex images like miloor_turntable_002.kra

M  +4    -1    libs/ui/canvas/kis_display_filter.h
M  +38   -25   libs/ui/opengl/kis_opengl_canvas2.cpp
M  +3    -1    libs/ui/opengl/kis_opengl_canvas2.h
M  +14   -0    libs/ui/widgets/squeezedcombobox.cpp
M  +11   -0    libs/ui/widgets/squeezedcombobox.h
M  +42   -36   plugins/dockers/lut/lutdocker_dock.cpp
M  +16   -8    plugins/dockers/lut/ocio_display_filter.cpp
M  +2    -2    plugins/dockers/lut/ocio_display_filter.h

https://commits.kde.org/krita/ff43d055f07e84331e4f3f1f0a5d21feac49d022
Comment 6 Dmitry Kazakov 2017-08-16 10:50:24 UTC
Git commit 4e340351ddc02cdc0a50b34a925d8402a35c28e3 by Dmitry Kazakov.
Committed on 16/08/2017 at 10:13.
Pushed by dkazakov into branch 'master'.

Fix a set of OCIO-related bugs

1) Don't reset LUT docker when moving the window over screens. We should
   actually check if the combo boxes contents is going to change or not in
   resetOcioConfiguration() and keep them intact if possible for not
   resetting the user's settings.

2) The display shader should be recompiled not when setDisplayFilter() is
   called, but when filter->updateShader() is called. The point is that
   quite a lot of filter updates happen without(!) recompiling the shader.
   And, obviously, the order of calls to updateShader() and
   setDisplayFilter() is generally undefined, so if we try to recompile it
   in setDisplayFilter() there might be still outdated version of it.

3) Removed explicit initialization of the display filter in
   LutDockerDock::setCanvas(). The point is that the correct filter will
   be correctly initialized later in updateDisplaySettings(). And this
   extra call made Krita recompute the image 6(!) times when loading any
   image. That can take ages on complex images like miloor_turntable_002.kra

# Conflicts:
#	plugins/dockers/lut/lutdocker_dock.cpp

M  +4    -1    libs/ui/canvas/kis_display_filter.h
M  +38   -25   libs/ui/opengl/kis_opengl_canvas2.cpp
M  +3    -1    libs/ui/opengl/kis_opengl_canvas2.h
M  +14   -0    libs/ui/widgets/squeezedcombobox.cpp
M  +11   -0    libs/ui/widgets/squeezedcombobox.h
M  +42   -28   plugins/dockers/lut/lutdocker_dock.cpp
M  +16   -8    plugins/dockers/lut/ocio_display_filter.cpp
M  +2    -2    plugins/dockers/lut/ocio_display_filter.h

https://commits.kde.org/krita/4e340351ddc02cdc0a50b34a925d8402a35c28e3
Comment 7 Dmitry Kazakov 2017-08-16 11:06:29 UTC
Git commit 55d85b3a8a52a7d07d284284e602057e4778f46b by Dmitry Kazakov.
Committed on 16/08/2017 at 11:00.
Pushed by dkazakov into branch 'krita/3.2'.

Fix a set of OCIO-related bugs

1) Don't reset LUT docker when moving the window over screens. We should
   actually check if the combo boxes contents is going to change or not in
   resetOcioConfiguration() and keep them intact if possible for not
   resetting the user's settings.

2) The display shader should be recompiled not when setDisplayFilter() is
   called, but when filter->updateShader() is called. The point is that
   quite a lot of filter updates happen without(!) recompiling the shader.
   And, obviously, the order of calls to updateShader() and
   setDisplayFilter() is generally undefined, so if we try to recompile it
   in setDisplayFilter() there might be still outdated version of it.

3) Removed explicit initialization of the display filter in
   LutDockerDock::setCanvas(). The point is that the correct filter will
   be correctly initialized later in updateDisplaySettings(). And this
   extra call made Krita recompute the image 6(!) times when loading any
   image. That can take ages on complex images like miloor_turntable_002.kra

# Conflicts:
#	plugins/dockers/lut/lutdocker_dock.cpp

# Conflicts:
#	libs/ui/opengl/kis_opengl_canvas2.cpp
#	plugins/dockers/lut/ocio_display_filter.cpp

M  +4    -1    libs/ui/canvas/kis_display_filter.h
M  +38   -25   libs/ui/opengl/kis_opengl_canvas2.cpp
M  +3    -1    libs/ui/opengl/kis_opengl_canvas2.h
M  +14   -0    libs/ui/widgets/squeezedcombobox.cpp
M  +11   -0    libs/ui/widgets/squeezedcombobox.h
M  +42   -28   plugins/dockers/lut/lutdocker_dock.cpp
M  +16   -8    plugins/dockers/lut/ocio_display_filter.cpp
M  +2    -2    plugins/dockers/lut/ocio_display_filter.h

https://commits.kde.org/krita/55d85b3a8a52a7d07d284284e602057e4778f46b