Open Bug 1007449 Opened 8 years ago Updated 8 years ago

non-integer zooms cause severe scrolling slowdown


(Core :: Layout, defect)

29 Branch
Not set





(Reporter: adler, Unassigned)


(Keywords: perf)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 (Beta/Release)
Build ID: 20140428193813

Steps to reproduce:

In about:config, I had set layout.css.devPixelsPerPx to 1.75.

Info: Running Ubuntu GNOME 14.04 with Cinnamon and kernel 3.14. Hardware acceleration is enabled, smooth scrolling is also enabled.

I can replicate this issue just by changing the zoom level with CTRL+mouse wheel.

Actual results:

Scrolling in some websites, such as, is very slow. The same websites, with the same profile, etc, work perfectly smoothly if an integer scaling is used (i.e. layout.css.devPixelsPerPx is set to -1.0 or 2).

Expected results:

Performance should be similar with scaling 1.75 or 2.
Does it happen if hardware acceleration is disabled?
QA Whiteboard: [bugday-20140519]
Flags: needinfo?(adler)
Keywords: perf
Yes, it also happens with hardware acceleration disabled, to certain extent. Funny enough, I'd say it runs smoother with hardware acceleration disabled.

It's all difficult to quantify, as it's just myself scrolling and appreciating the effects.

Maybe there is any benchmark I can run using different configurations and get some numbers?

I've only found benchmarks about canvas. Incidentally, I've tried and got the following approximate numbers:

    layout.css.devPixelsPerPx 1.75	HW Accel disabled	8500
    layout.css.devPixelsPerPx 2 	HW Accel disabled	9000

    layout.css.devPixelsPerPx 1.75	HW Accel enabled	8200
    layout.css.devPixelsPerPx 2 	HW Accel enabled	9000

Could something like rendering a complex page, and executing a script that scrolls the page 1 pixel every time and calls itself recursively, give meaningful numbers?
Flags: needinfo?(adler)
See also bug 645900.
Component: Untriaged → Layout
Product: Firefox → Core
Tried Grafx Bot (, in order to see if I could get some objective numbers with zooms 1.75 and 2, but it is apparently not working, at least not in my system.
You need to log in before you can comment on or make changes to this bug.