Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.36 scrolling suddenly laggy - precision touchpads #76594

Closed
frevds opened this issue Jul 4, 2019 · 71 comments
Closed

1.36 scrolling suddenly laggy - precision touchpads #76594

frevds opened this issue Jul 4, 2019 · 71 comments
Assignees
Labels
chromium Issues and items related to Chromium trackpad/scroll Trackpad device issues upstream Issue identified as 'upstream' component related (exists outside of VS Code)
Projects

Comments

@frevds
Copy link

frevds commented Jul 4, 2019

Since updating to 1.36 the scrolling experience got bad.
I increased the multiplier to have the same speed, but it still feels "heavy" to scroll, not the same as before - what change could be the cause for this?

Same in the explorer view (with or without the new guides).
Here it looks like the renderer skips frames, jumpy and not calm (also the scroll multiplier does not seem to have an effect here, merely Alt).

I'm using a precision touchpad device (Dell) but this is not the old problem and cannot be solved by resizing the window.

It is especially annoying in the explorer tree, bordering close to the unusable level.
After trying for a while I will now downgrade to 1.35.x. This seamingly little handicap somehow greatly impacts productivity, at least for me, feels like having a slow computer.

Update: Yes, 1.35.1 is definitely faster and lighter to scroll (did you add some animation? my setting for 'smooth scrolling' is deactivated). I will have to stay on this version until this is fixed.

Cannot find anything in the release notes except "This is a major Electron release and comes with Chrome 69 and Node.js 10.11.0 (a major leap forward from our current version with Chrome 66 and Node.js 10.2.0)". I guess it won't be easy to locate the issue. However, the new version is not usable, for me (Windows 10, precision touchpad).

@bpasero bpasero added electron Issues and items related to Electron electron-4.0.x-update trackpad/scroll Trackpad device issues upstream Issue identified as 'upstream' component related (exists outside of VS Code) labels Jul 4, 2019
@bpasero bpasero mentioned this issue Jul 4, 2019
@yo-raff
Copy link

yo-raff commented Jul 5, 2019

I have the exact same problem!
It was fine before i update it to 1.36

@aloeugene
Copy link

I've started experiencing the same issue after the latest update.

I have always had editor.smoothScrolling: false, but after the update yesterday it doesn't really change anything... Be it true or false - no difference.

@bpasero
Copy link
Member

bpasero commented Jul 5, 2019

Wait, does anyone here have editor.smoothScrolling: true and now it is not smooth anymore or is it just not smooth anymore in general?

Is it only not smooth in the editor, or also on trees in the sidebar?

@aloeugene
Copy link

For me, it’s everywhere: editor, sidebar, settings.

@bpasero
Copy link
Member

bpasero commented Jul 5, 2019

@aloeugene what exact device and OS is that?

@yo-raff
Copy link

yo-raff commented Jul 5, 2019

@bpasero It's everywhere. I have tried toggling editor.smoothScrolling but it has same results.

Device : Surface Laptop 2 - Intel Core i5-8250U
OS : Windows 10 Home - 64bit (With Windows Precision Touchpad)

@frevds
Copy link
Author

frevds commented Jul 5, 2019

smoothScrolling also doesn't have any noticeable difference for me, neither in 1.35.1 nor 1.36.
OS: Windows 10 Pro for Workstations
CPU: Intel Xeon E3-1505M v6 3GHz, 32 GB RAM, Precision Touchpad.

I didn't try using a mouse when I had 1.36 installed and can currently not verify it without updating again. Can somebody currently running 1.36 confirm that the issue persists when using an external mouse to scroll and has thus nothing to do with the precision touchpad device?
Then it can only be the new Chrome renderer or new Electron or new Node, granted, not an easy task to find the issue. If I can help testing things in case you cannot reproduce the effects, let me know.

@frevds
Copy link
Author

frevds commented Jul 5, 2019

Hm, now I just updated to 1.36 again and it looks smoother than yesterday (no frame-skipping, although I didn't restart or change anything), but definitely at first glance it is much slower (smooth but very heavy to scroll, a full swipe gets me a few animated centimeters far, not a screen as i used to. The precision touchpad always scrolls smooth, the external mouse does not (only when switching on smooth scrolling), but i guess that's alright, given that the mouse wheel scrolls are measured in lines.

I made videos (though they cannot capture the real 60fps+ experience one clearly sees and feels that 1.35.1 is light to scroll and 1.36 is heavy).
I made three short swipes and three long swipes in both directions, in the code editor, the explorer view and the settings window, compare how 1.36 is long and animated and hard to control, and the explorer view flickers (irrespective of the tooltip):
https://www.dropbox.com/s/zttomzencx8oz8m/vsc-precision-touchpad-v1.35.1.mp4?dl=1
https://www.dropbox.com/s/o3teeqtbcjwago2/vsc-precision-touchpad-v1.36.mp4?dl=1

I also used an external mouse wheel, here I don't see a difference at first glance, but then I never work with an external mouse.
https://www.dropbox.com/s/384kth1podeymie/vsc-wheel-v1.35.1.mp4?dl=1
https://www.dropbox.com/s/gw8fjlh20htxf8u/vsc-wheel-v-1.36.mp4?dl=1

@frevds
Copy link
Author

frevds commented Jul 5, 2019

Alright, I guess I can live with that now as it is, if I adjust the 'Mouse Wheel Scroll Sensitivity' to about 3x.
The long animation is a little annoying, but I will get used to it, apparently something changed in Chrome with respect to precision touchpads in a newer version. The explorer view is terribly slow to scroll because it does not care for the sensitivity setting, but workable (don't know why but yesterday it was not usable at all, I wonder what's different now, since I did not restart or update or even close anything, also no difference whether on battery or charging). So from my perspective it's does no longer look like a slower rendering with frame-skipping, but just more animation and different behaviour. I don't know about @yo-raff and @aloeugene, try installing 1.35.1 and again updating to 1.36, maybe that helps.

@frevds
Copy link
Author

frevds commented Jul 5, 2019

By this old page, chrome added support for precision touchpads with v68, if I read that right:
https://www.reddit.com/r/chrome/comments/98zglr/when_is_precision_touchpad_support_coming/
So if VSC now switched from v66 to v69, this would explain why there is a sudden change in scroll experience. maybe it can be tuned (and maybe it should be tested on laptops with such a touchpad, since that's the primary input device for most users having a Dell Precision/XPS or Microsoft Surface Laptops. According to this page (https://www.howtogeek.com/286905/what-is-a-precision-touchpad-on-windows-pcs/) it soon will be every Windows machine.

@frevds frevds changed the title 1.36 scrolling suddenly laggy - what was changed? 1.36 scrolling suddenly laggy - precision touchpads Jul 5, 2019
@aloeugene
Copy link

aloeugene commented Jul 6, 2019

@bpasero, I’m currently on HP EliteBook 840 G4 with Intel core i5 7th gen, 16gb RAM. Windows 10 Enterprise.

Also, I’m always using touchpad, and it's the precision one, so I can’t say if this issue relates to mouse scrolling as well.

@deepak1556 deepak1556 added this to Unsorted Issues in Electron Jul 8, 2019
@deepak1556 deepak1556 moved this from Unsorted Issues to July 2019 Iteration in Electron Jul 8, 2019
@bpasero
Copy link
Member

bpasero commented Jul 9, 2019

@frevds @yo-raff @aloeugene We are building exploration builds that use a much newer version of our UI framework (Electron version 6.0.x). I wonder if this issue reproduces with one of these builds, could you try? Download:

@aloeugene
Copy link

aloeugene commented Jul 9, 2019

@bpasero, as for me on Windows, switching on/off smoothScrolling still doesn't change anything, scroll is always smooth.

However, it's not that laggy anymore, quite stable and is really smooth 😃

Actually, with smoothScrolling off, it's fine and cool. But when it's on, it becomes more laggy and twitchy.

@bpasero
Copy link
Member

bpasero commented Jul 9, 2019

Please do not configure the editor.smoothScrolling setting and try it outside the editor, I am only concerned about scrolling in general. Does Electron 6 improve things?

@aloeugene
Copy link

aloeugene commented Jul 9, 2019

Well, it doesn't really change things for me.
Somehow, stable VSC build is behaving the same as Exploration build.

@frevds
Copy link
Author

frevds commented Jul 9, 2019

1.37 looks identical to me with respect to the scrolling behaviour, BUT it is very smooth (no skipping, no latency, generally usable). Just it is very animated (cannot be deactivated and scrolls out very long after letting go). Without setting the scroll sensitivity multiplicator it is too slow by default.
Also, the explorer view ignores the multiplicator and scrolls way too slow to use (only holding Alt helps).

@yo-raff
Copy link

yo-raff commented Jul 9, 2019

@bpasero the new build has better animation when scrolling (smoother) than 1.36, but it's still worse than 1.35.1

the scrolling speed is too slow in 1.37 (new build) compared to 1.35.1 (both has same setting)

@aloeugene
Copy link

One more thing that happened to me couple times already, but I haven't really found steps to reproduce:
Sometimes scrolling with touchpad in editor just stops working. Scrolling with "pg up/down" buttons works, but not with two-finger scrolling. However, I still could easily scroll through sidebar menu...
Strange stuff's going on with this version.

@cybairfly
Copy link

I have just done some testing with default settings and here are my findings - it mostly comes down to extensions and one specific scroll setting: editor.mouseWheelScrollSensitivity This setting made a huge difference in the overall perception of scrolling speed and fluidity (choppiness/sluggishness) for me - scrolling was butter smooth with defaults and all extensions disabled. After re-enabling user settings and extensions it is slightly worse but still very workable after changing this setting. Also, no longer do I notice the stuttery motion now so I hope it stays that way.

@uneconomicuse
Copy link

After updating Windows to version 2004 and updating VSCode to 1.49, scrolling lags also started. On version 1.48 everything is fine. I managed to defeat them by running VSCode as administrator. If you run VSCode without administrator rights, the lags will return. Maybe this method will help someone.

@brunv
Copy link

brunv commented Oct 6, 2020

@mrtrashmind your suggestion for running as administrator worked! It's very smooth now. But it's a bit annoying to run as administrator all the time... Hope they fix this soon.

Version Details:

Version 1.49.1 (user setup)
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Windows_NT x64 10.0.19041

Dell Inspiron 7460 with Precision Touchpad
i5 7200u 16gb RAM

@frevds
Copy link
Author

frevds commented Oct 6, 2020

Well, the original issue has nothing to do with extensions and also does not vanish in administrator mode. VSC is skipping frames (scrolling less smoothly than it could) and overscrolls (pushing once on the pad just scrolls on and on, pretty useless, one mustn't let go when scrolling). This behaviour is pretty much the same as scrolling in the Chrome browser. It used to be worse so one can work with it. But prior to 1.36 is used to be better. Hard to describe. One-push scroll was more rigid and the overall refresh rate was higher so everything felt much more fluent. I posted some videos up there (which due to the fps limitations don't show the true effects but give some idea).

@daver99
Copy link

daver99 commented Oct 23, 2020

This is a truly awful user experience now. Reviewing/searching 20k line log files with long lines is a 3fps task. Someone please shoot a flare in the air and promote this to high priority. For an example of what good looks like please look at the speed of EmEditor.

@darrenswhite
Copy link

Running as administrator fixed this for me.

@DykiSA
Copy link

DykiSA commented Oct 29, 2020

Run as administrator did reduce the lag but not entirely solve the problem since it is still persist

Edit
Running without administrator mode and disabling PHP Intelephense extension did solve the issue for me just in case that I am doing a code in PHP, the issue still persist when opening js and html scripts

@joske
Copy link

joske commented Oct 29, 2020

Can not run as administrator on Linux. (Well could but that's bad practice).

@deepak1556
Copy link
Contributor

For users that are running as administrator to fix the issue, its unrelated to this issue. What you are seeing is #107016 and the current workaround is to launch with --disable-renderer-accessibility, please follow that issue for updates.

@thany
Copy link

thany commented Oct 30, 2020

--disable-renderer-accessibility

This doesn't help for me.

Can not run as administrator on Linux. (Well could but that's bad practice).

It's bad practice on every OS 😀

@cybairfly
Copy link

Issue re-appeared after my previous comment about having solved it.

--disable-renderer-accessibility

I confirm this has resolved the scrolling issue for me now as well. 🥇

Version: 1.50.1 (user setup)
Commit: d2e414d9e4239a252d1ab117bd7067f125afd80a
Date: 2020-10-13T15:06:15.712Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Windows_NT x64 10.0.19041

Thank you!

@ngoquoc
Copy link

ngoquoc commented Oct 31, 2020

Running as administrator on Windows helps.

@thany
Copy link

thany commented Nov 11, 2020

Both fixes are workarounds, so this still needs a proper solution. Both fixes may help (whatever that means) for some, but do jack all for someone else. Fact of the matter is that scrolling is lag-free in virtually every program, except VScode. And in those program, no such workaround is needed.

@lesmo
Copy link

lesmo commented Jan 17, 2021

For users that are running as administrator to fix the issue, its unrelated to this issue. What you are seeing is #107016 and the current workaround is to launch with --disable-renderer-accessibility, please follow that issue for updates.

People who find that flag useful might want to make it a semi-permanent fix, which I've commented here. It kinda helped me, but it's still not the experience I'd expect on high-end hardware.

My laptop has both a touchscreen and a Precision Touchpad, and I've found these interesting scenarios:

  • editor.smoothScrolling: false:
    • Touchscreen scrolling is butter smooth
    • Precision Touchpad is better, but still a bit choppy (more bereable)
    • Logitech Mouse Smooth Scrolling is choppy (although expected)
  • editor.smoothScrolling: true:
    • Touchscreen scrolling is a bit choppy (but why?)
    • Precision Touchpad is choppy
    • Logitech Mouse Smooth Scrolling is pretty smooth

I never use the touchscreen for scrolling, but do alternate a lot between touchpad and mouse. This probably has something to do with the underlying webkit engine and the way it treats inputs... I used to think it was a performance issue, and would've never noticed if I didn't have a touchscreen.

@thany
Copy link

thany commented Jan 18, 2021

@lesmo You might be confusing two very distinct features here:

  • Smooth scrolling - this is a feature to smoothly scroll from one "tick" of the scrollwheel to the next (same when clicking the scrollbar).
  • Touch scrolling - this should always be smooth, regardless of the smooth scroll setting, and is only triggered by touchpads and touchscreens and the like.

Disabling smooth scroll is a must for me, because it get motion sickness from it. But for touch scroll (be it a touchpad or touchscreen) it has to be smooth, or I'll get motion sickness. The gist is that any gesture I physically make, has to be replicated on screen. If that doesn't happen accurately, my brain makes a mismatch that I can feel.

However if you do know the difference between the two, I mean no offense by my explanation. In that case, it's a good idea to have this cleared up for anyone else who might be confused by smooth or not-smooth scrolling, and the why&when of both.

@lesmo
Copy link

lesmo commented Jan 18, 2021

@thany yeah, I'm pretty aware of that but to this day many touch inputs are translated to scroll wheel "clicks" in many apps. I'm guessing this provides compatibility to old software that didn't know how to handle touch input, and it might be hurting VSCode (I'm just speculating) somehow... thus I thought it would be a good idea to test it. Something like this used to happen on Mozilla Firefox, and it might be something similar.

However, we obviously know that Edge and many other webkit based browsers nowadays handle touch input pretty well so, it's somewhere in there. Another speculative idea is this issue that has been closed on Electron:
electron/electron#8960 (comment)

@deepak1556
Copy link
Contributor

Can users confirm if this issue is present with latest stable 1.85 ?

@deepak1556 deepak1556 added info-needed Issue requires more information from poster chromium Issues and items related to Chromium and removed windows VS Code on Windows issues electron Issues and items related to Electron confirmation-pending labels Dec 12, 2023
@frevds
Copy link
Author

frevds commented Dec 12, 2023

Can users confirm if this issue is present with latest stable 1.85 ?

After 50 versions of VS Code I honestly don't remember how it has been before.
For me it's not an issue any more. One gets used to everything.
I'm not aware of any sudden improvement though that came with an update, the behaviour stayed the same.

I think the scrolling experience improved slightly, it is now like in the Chrome browser on websites, when you use the Precision Touchpad, where when you scroll and let go, it keeps on scrolling for a longer while, but if you hold it while scrolling you have tight enough control over the otherwise smooth motion. This is in contrast to the 1.35 where you had direct and more rigid control with less smoothing motion (compare with the videos) - certainly a change in Chromium regarding these touchpads.

@deepak1556
Copy link
Contributor

Thanks for confirming, I was hoping for a change in runtime over the period to have improved the story here.

@deepak1556 deepak1556 removed the info-needed Issue requires more information from poster label Dec 12, 2023
@github-actions github-actions bot locked and limited conversation to collaborators Jan 31, 2024
@aiday-mar aiday-mar added this to the December / January 2024 milestone Feb 6, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
chromium Issues and items related to Chromium trackpad/scroll Trackpad device issues upstream Issue identified as 'upstream' component related (exists outside of VS Code)
Projects
No open projects
Electron
In Progress
Development

No branches or pull requests