Musings of an open source hacker

Main menu

Post navigation

Firefox’s graphics performance on X11

It’s been long known that a vocal minority (or perhaps even majority) of Firefox users have had issues with rendering performance on X11, but nobody has quite pinpointed what the issue is.

Recently Nicolas Silva landed a change in mozilla-central to add a preference to allow for disabling the use of the RENDER extension when drawing using Cairo on X11. I’d like to call on any Firefox/Linux users who have been experiencing speed issues to download the latest nightly and go to about:config and set “gfx.xrender.enabled” to “false”. If you could also let me know what hardware and drivers you’re running that’d also be great.

Same here, running with xrender disabled and layers force-enabled; no glitches at all (woohoo!), WebGL super fast, but general browser performance took a severe hit — I basically lost smooth scrolling.

Can you try adding a boolean pref in about:config that is “gfx.textures.poweroftwo.force-enabled” and set it to true? Let me know if that makes GL layers work fine. If that doesn’t work, try adding “gfx.work-around-driver-bugs” and set that to true.

FWIW I have plenty of glitches when using layers.force-enabled=true on Intel/Mesa-git.
With xrender disabled, I can’t seem to notice any glitch AND I cannot sense a perf regression either in scrolling or otherwise.

First I can’t use layers force-enabled with xrender disabled it’s full of glitches, in the past a mozilla developer said glitches were caused by bad interaction with xrender but now that it’s disabled there must be an alternative cause.

There is however a somewhat positive point, canvas performance was so bad with xrender that its actually better now (but still bad):
With xrender enabled PsychedelicBrowsing does 2 revolutions per minute, disabled it’s up to 3 (6 with azure canvas enabled).
FishIETank (20 fish): 13fps with xrender enabled, 14fps with xrender disabled (16 with azure canvas enabled).

For those that are experiencing decent rendering (ie – no corruption) but slower canvas performance please concentrate on testing content rendering? I’m primarily concerned with things like scrolling performance and general day-to-day use.

Whilst these synthetic benchmarks are useful for optimising specific parts of the graphics stack, they don’t translate too well into real world scenarios.

Rendering was fine before, it’s fine now, scrolling large web pages is equally smooth. I think all my other graphics settings are at their default, so layers.acceleration.force-enabled is false.

Before, in a fullscreen 1280×844 window, Psychedelic browsing ranged from 222 to 502 and the FishIETank with default 20 fish was 9-10 fps (). With gfx.xrender.enabled false, Psychedelic browsing dropped to 5-8. FishIEtank claims 20 fps, but its rendering is extremely choppy or the fish don’t display, and firefox is at 95% of CPU (before with gfx.xrender.enabled true, Xorg took about 65% of CPU and Firefox 6%). If I reduce the window size to half-screen it jumps to 40fps and looks smoother, maybe the fullsize window is hitting some texture limit.

can’t see much of a difference in webgl performance (6ish fps for fish tank with 1 fish!)

There’s long standing performance issues with firefox and the NVIDIA driver, i just wish i knew where to look; launchpad is using CSS sprites, and more and more sites seem to be moving that way, and for some reason firefox and NVIDIA drivers don’t like them.

Seems to be the fastest for day to day browsing. Also, I’m not getting any corruption in rendering like some people seem to have had. The only problem is canvases are black before content is rendered in them.

While developing a javascript-based astronomical image display application using Kinetic.js, we ran into a problem with FF seemingly not firing mousemove events on a number of machines using various operating systems (Debian, Ubuntu, CentOS, Mac). An initial bug report was made on the Kinetic.js site (to rule out Kinetic and get some advice):

Thanks to your page, we found that all of the Linux problems were resolved by setting “gfx.xrender.enabled” to “false”. (The Mac problems were resolved by upgrading to FF18.) You might want to glance at the discussion on the Kinetic site, as well as the test page at:

with the nvidia (not nv or nouveau, they dont work) driver for the nvidia card (its one card with two gpus) and fbdev for the intel (there are compatibility issues between nvidia and intel drivers). two monitors on each nvidia gpu, three on the intel, thats together 7 monitors. need to use xinerama (twinview doesnt work here), which means no compositing, which I think is the main problem here. disabling the gfx stuff makes scrolling in FF21 now usable again (mostly the issue occurs in about:addons).

Man, Thank You for this tip! I was using my old Firefox 10esr because at some point (v13->v14, smooth scrolling disabled), Firefox started to be so slow on scrolling pages on my old machine (AMD Athlon 2500+ and Nvidia Geforce4MX 440 AGPx8 with Nouveau kernel 3.2 driver in Debian Stable 7.0 Wheezy, Mesa DRI nv18 x86/MMX+/3DNow!+/SSE, 1.2 Mesa 8.0.5), that I couldn’t use it anymore. With only this one switch (gfx.xrender.enabled->false) I am getting exactly the same speed on scrolling as with 10esr (which is desired for me behavior, I mean FAST). Now I’m on Firefox -> Mozilla/5.0 (X11; Linux i686; rv:23.0) Gecko/20130531 Firefox/23.0, so it’s newest nightly build, and I’m happy as I only can be I knew that there must be some option to get back old behavior on scrolling, and was looking for it for some time (from 10esr Firefox version EOL).

FishIE gives me 27fps, it doesn’t matter what setting I have with layers, webgl, and xrender, nothing changes, only pages scrolling is faster….

Ahh, maybe I should say that, I’m using Full Page Zoom at 150% all the time, on all pages, so it slows down things a little, I mean clean profile gives me nice scrolling speeds even with xrender enabled.