Closed Bug 1096904 Opened 10 years ago Closed 1 year ago

Screen tearing and jank when smooth scrolling


(Core :: Graphics, defect)

35 Branch





(Reporter: jakub, Unassigned)



(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36

Steps to reproduce:

Open up any site (I used, it has a static, simple layout), then scroll with smooth scrolling enabled, or by dragging the scrollbar smoothly.

Actual results:

I'm not an expert on this vocabulary, but it definitely isn't vsynced properly. When scrolling down, buttons on the site seem to be jumping up&down just slightly. Also seeing screen tearing in some places.

Expected results:

Smooth scrolling should perform as on Windows, where I can't notice any such issues.
Worth noting, I'm using ArchLinux with xf86-video-ati driver and it all got better with `Option "SwapbuffersWait" "True"`, but it's still not as smooth as on Windows.
User agent is meaningless since I reported this from Chrome, the actual software on which I experienced this was Firefox Aurora/Developer - 35.0a2.
Do you observe this behavior with 33.1?
Yes, it's the same on 33.0.2
33.1 aswell, yes.
Actually, I looked on Windows again and it's the exact same tearing as with enabling SwapbuffersWait on Linux.
I see this all the time in Firefox 42 on Ubuntu 15.10 with the nvidia-355 drivers, and it does not seem curable by flipping gfx/vsync/offmainthread options in about:config.
I don't have any screen tearing issues in Firefox when running Compton with this configuration:

Note that the XFCE4 compositor (in XFCE 4.12 at least) introduces additional screen tearing and should be disabled.  (At least with nvidia-355/358).

Chrome does not seem to require a compositor to avoid tearing.
User Agent 	Mozilla/5.0 (X11; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0
Build ID 	20160105030211


Are you still experiencing the issue on latest Firefox versions (Firefox 43/Nightly 46)? I tried on Nightly 46 but I didn't manage to reproduce this issue. If you still can reproduce it, could you provide a recorded video with the issue. That would help.

Thank you.
Flags: needinfo?(jakub)
I just checked and yes it still happens on 43.0.1. Tried capturing it on video but you can only see jank/frame skips on it, not the tearing. Would seeing the skips be valuable to you?

I can provide my hardware setup, Xorg settings, just tell me what you need.
I still see this with Firefox 43 and 46 on Ubuntu 15.10, nvidia-352 drivers, no X compositor.  As far as I can tell, Firefox is not able to avoid tearing on Linux when there is no compositor.

I don't know how Firefox's internal compositing works, but the way the tearline slowly drifts across the screen suggests that Firefox is compositing at a hz very close to my monitor, but doesn't have any way to "sync to vblank".
I changed the component to Core:Graphics so people with more experience on this matter to be involved.
Component: Untriaged → Graphics
- Firefox 49
- Ubuntu 14.04 with KDE 4.13
- Fedora 24 with Gnome 3.20 with X and with Wayland

I have tearing while scrolling and it doesn't matter, if hardware acceleration is enabled or not.

I have NO problems with Chrome, so I might consider to switch to Chrome!

Sadly this bug survived so long!
To add: Without hardware acceleration tearing is less frequently, but it still happens.
My version of tearing is with Nvidia on the same machine where it works fine with Intel graphics.  And it got a bit worse with a more recent Nvidia driver, that had some fixes for g-sync.

I don't experience it anymore. I guess the graphics stack improved a lot in the past couple of years :D

The smooth scrolling experience is not stutter-free, but it's always some reflow or JS execution that causes stutter, nothing inherent to Firefox. Static pages such as bugzilla scroll well, tear-free and close to 144fps these days.

OK to close this issue on my end.

Flags: needinfo?(jakub)
Severity: normal → S3
Closed: 1 year ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.