"Use hardware acceleration when available" in about:preferences has no effect on Linux

NEW
Unassigned

Status

()

defect
P3
normal
3 years ago
2 years ago

People

(Reporter: botond, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [gfx-noted])

Reporter

Description

3 years ago
In about:preferences, there is a checkbox "Use hardware acceleration when available" under Advanced -> General. 

On Linux, checking this does not enable hardware acceleration; you have to enable the pref "layers.acceleration.force-enabled" to do so.

Here's how this works in the code. All the logic is in gfxPlatform::InitCompositorAccelerationPrefs().

  - First, we start with the default value as returned by
    gfxPlatform::AccelerateLayersByDefault(). For Linux,
    this is false, which is reasonable (turning it on by
    default is tracked by bug 594876).

  - The value of the checkbox in about:preferences is
    reflected in a pref, "layers.acceleration.disabled".
    We check if that's true, and if it is override the
    default to be not accelerated (which on Linux is
    a no-op as the default is already not accelerated).

    However, if the pref is false (i.e. the checkbox is
    checked), we don't override the default to become 
    accelerated.

  - Finally, if "layers.acceleration.force-enabled" is
    true, we override the default to become accelerated.

I find the resulting effect - that checking the checkbox does nothing - quite counterintuitive.

I would suggest doing one of the following:

  (1) If the checkbox is checked, honour it (i.e. override 
      the default to become accelerated.)

  (2) Hide the checkbox in about:preferences.

If we choose to do (2), we may still want to consider switching to (1) sooner than flipping the default (bug 594876).

Thoughts?
Yeah, "when available" covers it - it isn't available.  It will be.
Whiteboard: [gfx-noted]
Reporter

Comment 2

3 years ago
Might there be sense in making it "available", but not on by default just yet? 

The motivation would be to make it easier for people to turn it on if they wish (about:preferences rather than about:config).
See Also: → 1289134
(In reply to Botond Ballo [:botond] from comment #2)
> Might there be sense in making it "available", but not on by default just
> yet? 
> 
> The motivation would be to make it easier for people to turn it on if they
> wish (about:preferences rather than about:config).

It would mean getting a list of bugs that absolutely have to be resolved before we would do it, and changing the default preference to false, but at that point, it sounds reasonable.

Comment 4

2 years ago
> It would mean getting a list of bugs that absolutely have to be resolved before we would do it

Are there any that you know of?

I've tested "layers.acceleration.force-enabled" in the last months on multiple machines and it improved rendering performance on every single one of them (in one case it actually made YouTube video playback usable at all!). Also I haven't run into any issue at all.

So in my experience this should *definitely* be available via the preference toggle, if not even enabled by default.
You need to log in before you can comment on or make changes to this bug.