Bug 139385 - Scrolling document with images extremely slow (GTK3) reasonable with GEN
Summary: Scrolling document with images extremely slow (GTK3) reasonable with GEN
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
(earliest affected) rc
Hardware: All All
: medium normal
Assignee: Not Assigned
Keywords: bibisected, bisected, perf, regression
Depends on:
Reported: 2021-01-03 11:29 UTC by Telesto
Modified: 2021-03-29 08:17 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:

Bibisect log (2.75 KB, text/plain)
2021-01-03 11:30 UTC, Telesto

Note You need to log in before you can comment on or make changes to this bug.
Description Telesto 2021-01-03 11:29:00 UTC
Scrolling document with images extremely slow (GTK3)

Steps to Reproduce:
1. Open attachment 168485 [details]
2. Zoom in & scroll

Actual Results:
Doesn't even move

Expected Results:
state prior to the commit (still sub-optimal). Skia has nice optimizations

Reproducible: Always

User Profile Reset: No

Additional Info:
Build ID: e2cffcf55b04838abc7497f6c18518c7600b670b
CPU threads: 2; OS: Linux 5.3; UI render: default; VCL: gtk3
Locale: en-US (en_US.UTF-8); UI: en-US
Calc: threaded
Comment 1 Telesto 2021-01-03 11:30:16 UTC
Created attachment 168640 [details]
Bibisect log

Bisected to:
author	Mike Kaganski <mike.kaganski@collabora.com>	2020-08-13 18:12:37 +0300
committer	Mike Kaganski <mike.kaganski@collabora.com>	2020-08-14 01:00:04 +0200
commit bf021c369f2306ee507da9bd3cc4cd10ac5d234c (patch)
tree a3dc2552801cfe31cb524c6f375980eaa48e844b
parent 56d5531373cf0588e02c254ea8ffa00221c8342b (diff)
tdf#135500: always use transparent and clear content vdev in impBufferDevice
This removes the only place that hadn't used transparent impBufferDevice
yet - in VclProcessor2D::RenderMaskPrimitive2DPixel. Not clearing the vdev
made it draw on whatever garbage was left there from previous paints when
the buffer was taken from maFreeBuffers in VDevBuffer::alloc, so since this
was also the only place left that didn't clear the buffer explicitly, this
makes the clear unconditional in impBufferDevice ctor.

Also this makes sure to clear proper rectangle in VDevBuffer::alloc, and to
clear mpAlphaVDev in OutputDevice::Erase.

Comment 2 Telesto 2021-02-04 21:45:34 UTC
Some time to do a quick confirmation?
Comment 3 Buovjaga 2021-02-07 10:31:28 UTC
Confirmed the bibisect result with linux-64-7.1 repo
Comment 4 Telesto 2021-02-07 11:19:43 UTC
Adding CC: to Mike Kaganski
Note: bug 138068 makes the more prominent; that one needs to go first.. maybe this one gets solved too that way
Comment 5 Xisco Faulí 2021-02-15 17:09:11 UTC
Hi Telesto,
Could you please try again with a daily build from http://dev-builds.libreoffice.org/daily/master/ containing the fix for bug 138068 < https://git.libreoffice.org/core/commit/27a4aea50a9efa5c839b0ae2de1f9f14a7782f11 >
Comment 6 Telesto 2021-03-27 18:47:24 UTC
Setting to unconfirmed for now.. Buovjaga, you probably setup to test more quickly (I have to boot my VirtualBox and update everything to Master)
Comment 7 Buovjaga 2021-03-28 07:34:46 UTC
(In reply to Telesto from comment #6)
> Setting to unconfirmed for now.. Buovjaga, you probably setup to test more
> quickly (I have to boot my VirtualBox and update everything to Master)

I checked with Linux 7.2 repo and while the particular mentioned commit does not seem to be the fixing one, the performance is now fine with gtk3!

For reference, the commit in the repo is
commit 9bcda00693f9b368e2195b61ad016b92f41d3eeb
Author: Jenkins Build User <tdf@pollux.tdf>
Date:   Fri Feb 12 14:36:11 2021 +0100

    source 9d89d98d3349502b56da4bdd6ea287ac4cde9ce5
    source 9d89d98d3349502b56da4bdd6ea287ac4cde9ce5
Comment 8 Buovjaga 2021-03-29 08:17:21 UTC
WFM as we don't know the commit