Bug 442796 - Wraparound mode not updating other rows in real time
Summary: Wraparound mode not updating other rows in real time
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: OpenGL Canvas (show other bugs)
Version: nightly build (please specify the git hash!)
Platform: unspecified Unspecified
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords: regression, release_blocker
Depends on:
Blocks:
 
Reported: 2021-09-22 09:53 UTC by Alvin Wong
Modified: 2021-10-01 10:40 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alvin Wong 2021-09-22 09:53:04 UTC
When painting in the main canvas, the WA mode copies on the same row updates in real time, but not those on the other rows -- they are delayed and only updated in intervals, sometimes becoming outdated until the next mouse move.

Probably a regression from https://invent.kde.org/graphics/krita/-/commit/6a5e83d1f4985998b33a059245dcafe5d5b98160

Tested with commit 5f8eb59328
Comment 1 Dmitry Kazakov 2021-09-22 12:32:49 UTC
Git commit f5255d4e73d0a92e5e48f823a89e17436d286394 by Dmitry Kazakov.
Committed on 22/09/2021 at 12:32.
Pushed by dkazakov into branch 'master'.

Fix artifacts on the canvas when the display scaling is set to 110%

The problem is that we do "cropping" of the painted area twice during
one frame. Firstly, we enable stencil test to avoid too much pixels
to be rendered. And secondly, we limit the number of tiles that
are rendered on screen. And these two limit must agree in how they
do rounding.

M  +26   -6    libs/ui/opengl/kis_opengl_canvas2.cpp
M  +3    -2    libs/ui/opengl/kis_opengl_canvas2.h

https://invent.kde.org/graphics/krita/commit/f5255d4e73d0a92e5e48f823a89e17436d286394
Comment 2 Dmitry Kazakov 2021-09-28 08:59:24 UTC
Git commit c2957b2d0822afeef27d165713757fdf8bced2c8 by Dmitry Kazakov.
Committed on 28/09/2021 at 06:42.
Pushed by dkazakov into branch 'krita/5.0'.

Fix artifacts on the canvas when the display scaling is set to 110%

The problem is that we do "cropping" of the painted area twice during
one frame. Firstly, we enable stencil test to avoid too much pixels
to be rendered. And secondly, we limit the number of tiles that
are rendered on screen. And these two limit must agree in how they
do rounding.

M  +26   -6    libs/ui/opengl/kis_opengl_canvas2.cpp
M  +3    -2    libs/ui/opengl/kis_opengl_canvas2.h

https://invent.kde.org/graphics/krita/commit/c2957b2d0822afeef27d165713757fdf8bced2c8
Comment 3 Dmitry Kazakov 2021-10-01 10:24:55 UTC
Git commit 21e737e9311ad8605c39cd133bbc29f17288c0db by Dmitry Kazakov.
Committed on 01/10/2021 at 10:24.
Pushed by dkazakov into branch 'master'.

Fix updates in wraparound mode

The previos algorithm was just incorrect, it rewritten the central line
multiple times (due to the shared value in lambda) :(

M  +34   -1    libs/image/kis_wrapped_rect.h
M  +168  -0    libs/image/tests/kis_algebra_2d_test.cpp
M  +3    -0    libs/image/tests/kis_algebra_2d_test.h
M  +11   -26   libs/ui/canvas/kis_canvas2.cpp

https://invent.kde.org/graphics/krita/commit/21e737e9311ad8605c39cd133bbc29f17288c0db
Comment 4 Dmitry Kazakov 2021-10-01 10:40:20 UTC
Git commit ce3fc08b904bb8b4417997dad832bf645e89ee7e by Dmitry Kazakov.
Committed on 01/10/2021 at 10:40.
Pushed by dkazakov into branch 'krita/5.0'.

Fix updates in wraparound mode

The previos algorithm was just incorrect, it rewritten the central line
multiple times (due to the shared value in lambda) :(

M  +34   -1    libs/image/kis_wrapped_rect.h
M  +168  -0    libs/image/tests/kis_algebra_2d_test.cpp
M  +3    -0    libs/image/tests/kis_algebra_2d_test.h
M  +11   -26   libs/ui/canvas/kis_canvas2.cpp

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