Bug 139917 - Writer SmoothScroll (in sw viewsh)
Summary: Writer SmoothScroll (in sw viewsh)
Status: RESOLVED NOTOURBUG
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
7.0.4.2 release
Hardware: All Windows (All)
: medium minor
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Smooth-Scroll Skia
  Show dependency treegraph
 
Reported: 2021-01-26 00:47 UTC by Bob
Modified: 2021-04-21 08:28 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bob 2021-01-26 00:47:35 UTC
Description:
When you put the cursor at the bottom (or top) of the vertical scroll bar in a long document and L-click to rapidly scroll down (or up) to quickly get roughly where you want to in the document, the result is a very slow, herky-jerky motion and is definitely NOT smooth. Ironically, the way to smooth the scrolling is to deselect the smooth scroll function in: Tools>Options>LO Writer>View. So, with Smooth scroll deselected, the scrolling in the manner described becomes nice and smooth. 

Is there a reason anyone would want anything but smooth scrolling? 

Steps to Reproduce:
1. Choose long document
2. L-click at the bottom of the vertical scroll bar

Actual Results:
Does not immediately start to scroll. Then jerks to a new location before stalling for an eternity before taking about big step down the scroll bar.

Expected Results:
Smooth scrolling all the way down to the bottom of the document.


Reproducible: Always


User Profile Reset: No



Additional Info:
Need to ironically deselect the Smooth scroll function to get Writer to scroll smoothly through the document.

As far as OpenGL is concerned, if I select that checkbox, it does not stay checked and indicates that it is not used? Apparently, one has to download it separately, but there are no instructions that I could find on how to do so (what folder to put it in, what to name it, etc. for it to work with LO).
Comment 1 V Stuart Foote 2021-01-26 16:48:22 UTC
Can not confirm. The Scroll bar responds correctly to the smooth scroll toggle (Tools -> Options -> LO Writer -> View)

The buffering needed to pass from page to page is completed correctly. Rendering is smooth, and position on the scroll bar will control the speed. Click and hold of the Up or Down buttons at the ends of the scroll bar being the slowest movement. Click and hold on the scroll bar above or below the thumb moves about twice as fast. Grabbing the tuhmb will slide to position the view. 

Without Smooth scroll toggled the movement is not buffered and so appears to jerk as the content scrolls up or down.

=-testing-=
Version: 7.2.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: 8df14a82cee4fe0c4ca6f994c7c3f92373b411a3
CPU threads: 4; OS: Windows 10.0 Build 19042; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: threaded
Comment 2 V Stuart Foote 2021-01-26 20:46:53 UTC
So, seems the smooth scroll buffering may not behave well with Skia Vulkan rendering, depending on GPU and driver.

It performs fine on an Intel HD Graphics 620 GPU with Skia Vulkan rendering, but is not very smooth with nVidia Quatro K2000 with Skia Vulkan.

The buffering and smooth scrolling with Raster rendering is good with both GPUs.

@Luboš, does this make sense?

=-ref-=

Version: 7.2.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: 6c8a6b6aa2f962bd2fadbdf27405bfcd7d167fec
CPU threads: 8; OS: Windows 10.0 Build 18363; UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: CL

skia driver.logs with Vulcan:
Problems with smooth scroll buffering
RenderMethod: vulkan
Vendor: 0x10de
Device: 0xffe
API: 1.2.142
Driver: 457.36.0
DeviceType: discrete
DeviceName: Quadro K2000
Denylisted: no

No issues with smooth scroll
RenderMethod: vulkan
Vendor: 0x8086
Device: 0x5916
API: 1.2.151
Driver: 0.402.591
DeviceType: integrated
DeviceName: Intel(R) HD Graphics 620
Denylisted: no
Comment 3 Bob 2021-01-26 21:34:59 UTC
Attn:  V Stuart Foote. I just sent you a reply, but no sooner than I pressed Save Changes, you apparently posted a comment at the same time, so mine has not posted. Strange.

The gist of what I wrote was that I played around with this for an hour after your first reply. It was much better than I originally found it to be, but I had since disabled Skia rendering to help with the text scrolling issue I reported earlier. I did learn two things, one is that although the smooth scrolling is better with the checkbox selected now (with hardware acceleration used), there is a bizarre thing with the scroll bar handle. It will make an initial jump up/down the scroll bar in the appropriate direction before stopping, all the while the document is still scrolling. The scroll bar handle does not move or "catch up" until after you release the L-mouse button. Very strange. I have never seen that happen before, and I have ever using word processors and other software since 1983. 

The other thing I noticed is that if you use the scroll bar arrows to slowly and smoothly scroll through a long document, it almost always causes the aforementioned text tearing issue to occur at some point while scrolling, so that is a way for you to more consistently replicate that issue (I would still suggest a lengthy document of at least a dozen pages of formatted text, including tables).
Comment 4 V Stuart Foote 2021-01-26 21:44:13 UTC
The see also bug 123181 is Linux where Skia is not an issue.
Comment 6 Luboš Luňák 2021-04-21 08:28:53 UTC
So, there are two things here:
- smooth scrolling possibly being slow, not related to Skia - that's a Writer problem, so -> bug 123181
- slow scrolling with Skia/Vulkan with some specific drivers - that's most likely not a problem of LO but of the drivers; given that the feature needs to be explicitly enabled and Skia/Raster reportedly works fine, and even the worst problem with the bad Skia/Vulkan case is "not very smooth", I don't think this warrants a workaround, especially given that there are two UI options that already serve as such -> closing this one