Bug 426234 - PressureIn sensor often bugs out when used with Color options
Summary: PressureIn sensor often bugs out when used with Color options
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Brush engines (show other bugs)
Version: 4.3.0
Platform: Appimage Linux
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-06 04:11 UTC by tomtomtomreportingin
Modified: 2020-09-22 09:14 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
PressureIn when used in combination with Hue. Notice alternating hues midstroke. (189.53 KB, image/png)
2020-09-06 04:11 UTC, tomtomtomreportingin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tomtomtomreportingin 2020-09-06 04:11:06 UTC
Created attachment 131442 [details]
PressureIn when used in combination with Hue. Notice alternating hues midstroke.

SUMMARY
When using the PressureIn sensor with brush options under the Color category, the max pressure is often bugged midstroke and will alternate with a previous max pressure.

STEPS TO REPRODUCE
1. Select Basic-2 Opacity
2. Disable Opacity
3. Enable one of the following brush options: Darken, Mix, Hue, Saturation, or Value (not sure if it happens with Rate)
4. Disable Pressure and enable PressureIn for the color option you selected
5. Make multiple long strokes as the bugged result might not always happen

OBSERVED RESULT
The max inputted pressure might revert and continuously alternate to a previous, lower pressure in the middle of a stroke. See attachment.

EXPECTED RESULT
The highest pressure inputted should stay consistent and should not move lower midstroke.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Debian sid
(available in About System)
KDE Plasma Version: 5.17.5
KDE Frameworks Version: 5.70.0
Qt Version: 5.12.8 (Appimage)

ADDITIONAL INFORMATION
TABLET: Wacom Intuos Medium
I have not noticed this happening with other options.
Comment 1 tomtomtomreportingin 2020-09-06 07:14:26 UTC
Hm, it might happen more consistently if the brush preset is set at a very large size.
Comment 2 Dmitry Kazakov 2020-09-17 22:47:04 UTC
Git commit fb017c98988028cc985017a24a43fddeac602b71 by Dmitry Kazakov.
Committed on 17/09/2020 at 22:15.
Pushed by dkazakov into branch 'master'.

Fix PressureIn sensor

PixelBrush is multithreaded, therefore sensors should not store
any internal state. We have KisDistanceInformation exactly for
this purpose.

M  +14   -0    libs/image/brushengine/kis_paint_information.cc
M  +8    -0    libs/image/brushengine/kis_paint_information.h
M  +9    -0    libs/image/kis_distance_information.cpp
M  +2    -0    libs/image/kis_distance_information.h
M  +2    -13   plugins/paintops/libpaintop/sensors/kis_dynamic_sensors.cc
M  +1    -16   plugins/paintops/libpaintop/sensors/kis_dynamic_sensors.h

https://invent.kde.org/graphics/krita/commit/fb017c98988028cc985017a24a43fddeac602b71
Comment 3 Dmitry Kazakov 2020-09-22 09:14:44 UTC
Git commit b63f52805828da6f2db6928037d3e9f9c77d9fe1 by Dmitry Kazakov.
Committed on 22/09/2020 at 09:14.
Pushed by dkazakov into branch 'krita/4.3'.

Fix PressureIn sensor

PixelBrush is multithreaded, therefore sensors should not store
any internal state. We have KisDistanceInformation exactly for
this purpose.

M  +14   -0    libs/image/brushengine/kis_paint_information.cc
M  +8    -0    libs/image/brushengine/kis_paint_information.h
M  +9    -0    libs/image/kis_distance_information.cpp
M  +2    -0    libs/image/kis_distance_information.h
M  +2    -13   plugins/paintops/libpaintop/sensors/kis_dynamic_sensors.cc
M  +1    -16   plugins/paintops/libpaintop/sensors/kis_dynamic_sensors.h

https://invent.kde.org/graphics/krita/commit/b63f52805828da6f2db6928037d3e9f9c77d9fe1