Seriously consider where to enable/disable HW acceleration

RESOLVED DUPLICATE of bug 623338

Status

()

Core
Graphics
RESOLVED DUPLICATE of bug 623338
8 years ago
7 years ago

People

(Reporter: bjacob, Unassigned)

Tracking

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

One issue that we should address seriously is: making sure that HW acceleration isn't actually slowing things down for some users, namely for those who:
 * have slow hardware
 * have slow drivers
 * are hitting slowness issues that we didn't hit yet.

Of course there are 3 different directions that one can consider:
 * blacklisting
 * whitelisting
 * automatically measuring performance


*** BLACKLISTING ***

Currently the only thing that we do at all is blacklisting (AFAIK). But we're only blacklisting to guard against crashes, not about slowness. I think that if a GPU is known to be too slow for a certain feature (e.g. for D3D layers), or if we know that at least we do have a major performance issue with it, then we should at least blacklist it.

*** WHITELISTING ***

Whitelisting is safer, of course. Beltzner expressed preference for it earlier today on #developers (CC'ing him). There are downsides too, for example with a whitelist, newer GPUs aren't supported until we update the whitelist. Which could play tricks on us in benchmarks. If we can know the device IDs early enough, and are OK to do this maintainance in a timely manner, this can be sensible

*** AUTOMATIC PERFORMANCE MEASUREMENT ***

There are many approaches to this. The advantage is that it's theoretically future-proof, reliable, and low-maintainance. The disadvantage is that it's presumably hard to get right.

One thing we could do is:
 - when running firefox the first time, run a series of benchmarks. Enable/disable features (prefs) based on it.
 - on subsequent runs, compare the current system info (e.g. device ID/vendor ID/driver version on windows) with the one for which we stored benchmark results. If it matches, use current settings (prefs). If it doesn't, rerun benchmarks.

Benchmarks should consist of a real-world workload, except that we don't want to measure network performance. So probably just render a local HTML page and time it.

Initially I considered measuring performance on-the-fly but there is a major difficulty with it: we'd need to call e.g. glFinish() before we stop timing, and what would kill performance. Also, it would make code more complex and would still not result in as good a user experience as if we know beforehand whether to accelerate.

Comment 1

7 years ago
I have a fairly old PC, with a geforce 8500gt card (latest nvidia drivers installed). While using latest beta with hw acceleration turned on (by default), i'm experiencing serious hangups and lags. If i disable hw acceleration, things get much better.
If this happens to a large number of users, besides myself, i think this issue should be high up there in the list of things to fix..
(In reply to comment #1)
> I have a fairly old PC, with a geforce 8500gt card (latest nvidia drivers
> installed). While using latest beta with hw acceleration turned on (by
> default), i'm experiencing serious hangups and lags. If i disable hw
> acceleration, things get much better.
> If this happens to a large number of users, besides myself, i think this issue
> should be high up there in the list of things to fix..

This is a very hard problem, we're already having complaints from people we're blacklisting too aggressively, could you see how things work for you with the IE9 RC?

Comment 3

7 years ago
The AMO blocklist described in bug 628793 is something that can be used in order to live update graphics driver blocklist (D2D, D3D9, D3D10, OpenGL features).

Currently, here is the graphics driver blocklist (a public website like https://www.mozilla.com/en-US/blocklist/ would be better):
https://wiki.mozilla.org/Blocklisting/Blocked_Graphics_Drivers

Crashes are tracked with crash stats. A priori, bug 623338 has fixed all driver crashes.
Hangs and lags could be tracked in from https://support.mozilla.com/en-US/questions?tagged=beta in order to anticipate complains from future users.
Depends on: 623338, 628793

Comment 4

7 years ago
(In reply to comment #2)
> (In reply to comment #1)
> > I have a fairly old PC, with a geforce 8500gt card (latest nvidia drivers
> > installed). While using latest beta with hw acceleration turned on (by
> > default), i'm experiencing serious hangups and lags. If i disable hw
> > acceleration, things get much better.
> > If this happens to a large number of users, besides myself, i think this issue
> > should be high up there in the list of things to fix..
> 
> This is a very hard problem, we're already having complaints from people we're
> blacklisting too aggressively, could you see how things work for you with the
> IE9 RC?

Tried using the IE release candidate, experienced same hangups and general unresponsiveness that i had with FF. After disabling HW acceleration in IE - things return to normal.
We already decided to go with blacklisting. This is just a discussion bug. Is there anything you still want to investigate/discuss bjacob? If not please close this bug.
(Reporter)

Updated

7 years ago
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 623338
You need to log in before you can comment on or make changes to this bug.