After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 596322 - gnome-canvas slows down when y scroll amount = 0
gnome-canvas slows down when y scroll amount = 0
Status: RESOLVED WONTFIX
Product: libgnomecanvas
Classification: Deprecated
Component: core
2.26.x
Other Linux
: Normal normal
: ---
Assigned To: libgnomecanvas maintainers
libgnomecanvas maintainers
gnome[unmaintained]
Depends on:
Blocks:
 
 
Reported: 2009-09-25 15:44 UTC by Denis Auroux
Modified: 2014-08-02 12:52 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Denis Auroux 2009-09-25 15:44:51 UTC
In recent versions of libgnomecanvas (2.26.0 affected; 2.20.0 not affected), the refresh upon adding items to the canvas slows down considerably when the canvas is not scrolled down at all (the top edge of the canvas is visible on-screen). This is because large unnecessary parts of the display get refreshed when the vertical scroll amount is 0 (or less, i.e. canvas is smaller than height of window). Adding an item causes the entire rectangle from the top-left corner of the canvas (or of the group?) to the lower-right corner of the item to be refreshed in that case, while if the vertical scroll is >0 then only a small rectangle bounding the item created is refreshed (as should be the case).

To reproduce the problem: start e.g. xournal (note: if you have trouble drawing, disable Options -> Use XInput), and draw very quickly (any kind of circles, squiggles, whatever) near the lower-right corner of the screen while "top" is running. If the vertical scrollbar is at the very top (or there's no vertical scrollbar), top will show that Xorg uses a very large amount of CPU compared to xournal itself, and the drawing is somewhat jagged. If the view is scrolled down even a little bit, Xorg and xournal use comparable amounts of CPU and the drawing is smoother.

What xournal does when you draw is just add a lot of GnomeCanvasLines to the canvas, all sitting within a GnomeCanvasClipGroup for the page. The bug does not seem to be specific to GnomeCanvasLines, since adding text items also generates the same extra refreshes when the vertical offset is 0.

Running xournal in Xephyr in debug mode (which shows red rectangles for the areas of display being refreshed) suggests that, normally, adding a GnomeCanvasLine only causes the refresh of a small rectangular region that encloses it; while, when the vertical scroll offset is zero, the entire rectangle from the top-left of the page to the lower-right corner of the item being added gets refreshed.

Denis
Comment 1 André Klapper 2014-08-02 12:52:10 UTC
The last libgnomecanvas code changes took place in January 2011:
https://git.gnome.org/browse/archive/libgnomecanvas/log/

This project is not under active development anymore.

This project got recently archived in GNOME Git.

It is currently unlikely that there will be any further active development.

Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect reality. Please feel free to reopen this bug report in the future if anyone takes the responsibility for active development again. If you are interested in maintainership, inform https://mail.gnome.org/mailman/listinfo/desktop-devel-list