MacBook Pro Retina 13" 2015: Graphic card blacklisted on mac

RESOLVED FIXED in Firefox 49

Status

()

Core
Graphics
RESOLVED FIXED
a year ago
a year ago

People

(Reporter: jya, Assigned: milan)

Tracking

Trunk
mozilla49
x86_64
Mac OS X
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox49 fixed)

Details

(Whiteboard: [gfx-noted])

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(1 attachment)

(Reporter)

Description

a year ago
For some reasons, and it's now the 3rd time it has happened, the video card gets blacklisted on my laptop which has the consequence of disabling the h264 hardware decoder:

Manually resetting the preferences:
gfx.blacklist.direct2d;3
gfx.blacklist.direct2d.failureid;FEATURE_FAILURE_DL_BLACKLIST_g984
gfx.blacklist.hardwarevideodecoding;3
gfx.blacklist.hardwarevideodecoding.failureid;FEATURE_FAILURE_DL_BLACKLIST_g1208

and restarting, allows HW decoder to work again.


about:support
{
  "application": {
    "name": "Firefox",
    "osVersion": "Darwin 15.4.0",
    "version": "49.0a1",
    "buildID": "20160516113508",
    "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0",
    "safeMode": false,
    "updateChannel": "default",
    "supportURL": "https://support.mozilla.org/1/firefox/49.0a1/Darwin/en-US/",
    "numTotalWindows": 1,
    "numRemoteWindows": 0,
    "remoteAutoStart": false,
    "autoStartStatus": 2
  },
  "modifiedPreferences": {
    "accessibility.typeaheadfind.flashBar": 0,
    "browser.cache.frecency_experiment": 1,
    "browser.cache.disk.smart_size.first_run": false,
    "browser.cache.disk.smart_size_cached_value": 358400,
    "browser.cache.disk.smart_size.use_old_max": false,
    "browser.cache.disk.capacity": 358400,
    "browser.cache.disk.filesystem_reported": 1,
    "browser.download.importedFromSqlite": true,
    "browser.places.importBookmarksHTML": false,
    "browser.places.smartBookmarksVersion": 8,
    "browser.sessionstore.upgradeBackup.latestBuildID": "20160315195532",
    "browser.startup.homepage_override.buildID": "20160516113508",
    "browser.startup.homepage_override.mstone": "49.0a1",
    "browser.tabs.remote.autostart.2": false,
    "browser.urlbar.maxRichResults": 12,
    "browser.urlbar.userMadeSearchSuggestionsChoice": true,
    "dom.push.userAgentID": "45464314df0a4cb2af5b75c08123e576",
    "dom.mozApps.maxLocalId": 1001,
    "dom.apps.reset-permissions": true,
    "dom.mozApps.used": true,
    "extensions.lastAppVersion": "49.0a1",
    "font.internaluseonly.changed": false,
    "general.useragent.override": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0",
    "gfx.crash-guard.status.glcontext": 3,
    "gfx.crash-guard.glcontext.deviceID": "0x0a26",
    "gfx.crash-guard.glcontext.appVersion": "43.0a1",
    "gfx.blacklist.direct2d.failureid": "FEATURE_FAILURE_DL_BLACKLIST_g984",
    "gfx.blacklist.direct2d": 3,
    "gfx.blacklist.hardwarevideodecoding": 3,
    "gfx.blacklist.hardwarevideodecoding.failureid": "FEATURE_FAILURE_DL_BLACKLIST_g1208",
    "media.mediasource.decoder-per-segment": false,
    "media.gmp.storage.version.observed": 1,
    "media.mediasource.eviction_threshold.audio": 20971520,
    "media.gmp-manager.buildID": "20160516113508",
    "media.benchmark.vp9.versioncheck": 1,
    "media.gmp-widevinecdm.lastUpdate": 1461409200,
    "media.gmp-gmpopenh264.version": "1.5.3",
    "media.gmp-gmpopenh264.lastUpdate": 1452727165,
    "media.apple.poolsize": 5,
    "media.benchmark.vp9.fps": 120,
    "media.prefer-gstreamer": true,
    "media.mediasource.ignore_codecs": true,
    "media.gmp-gmpopenh264.abi": "x86_64-gcc3",
    "media.video-decode-ahead": 10,
    "media.gmp-gmpopenh264.path": "/Users/jyavenard/Library/Application Support/Firefox/Profiles/gllre4ox.Development/gmp-gmpopenh264",
    "media.decoder.fuzzing.enabled": false,
    "media.apple.mp3.enabled": false,
    "media.gmp-manager.lastCheck": 1463630706,
    "media.mediasource.eviction_threshold": 100000000,
    "media.gmp-widevinecdm.abi": "x86_64-gcc3",
    "media.apple.forcevda": false,
    "media.gmp-widevinecdm.version": "1.4.8.866",
    "media.decoder.heuristic.dormant.timeout": 10000,
    "network.cookie.prefsMigrated": true,
    "network.predictor.cleaned-up": true,
    "places.database.lastMaintenance": 1461409976,
    "places.history.expiration.transient_current_max_pages": 104858,
    "plugin.importedState": true,
    "plugin.disable_full_page_plugin_for_types": "application/pdf",
    "privacy.sanitize.migrateFx3Prefs": true,
    "privacy.sanitize.migrateClearSavedPwdsOnExit": true,
    "services.sync.declinedEngines": "",
    "services.sync.lastPing": 1463630693,
    "services.sync.lastSync": "Thu May 19 2016 13:55:20 GMT+0800 (SGT)",
    "services.sync.numClients": 3,
    "services.sync.engine.prefs.modified": false,
    "storage.vacuum.last.places.sqlite": 1460249191,
    "storage.vacuum.last.index": 0
  },
  "lockedPreferences": {},
  "javaScript": {
    "incrementalGCEnabled": true
  },
  "accessibility": {
    "isActive": false,
    "forceDisabled": 0
  },
  "libraryVersions": {
    "NSPR": {
      "minVersion": "4.12",
      "version": "4.12"
    },
    "NSS": {
      "minVersion": "3.24 Basic ECC",
      "version": "3.24 Basic ECC"
    },
    "NSSUTIL": {
      "minVersion": "3.24",
      "version": "3.24"
    },
    "NSSSSL": {
      "minVersion": "3.24 Basic ECC",
      "version": "3.24 Basic ECC"
    },
    "NSSSMIME": {
      "minVersion": "3.24 Basic ECC",
      "version": "3.24 Basic ECC"
    }
  },
  "userJS": {
    "exists": false
  },
  "crashes": {
    "submitted": [],
    "pending": 1
  },
  "extensions": [
    {
      "name": "about:media",
      "version": "2.3",
      "isActive": true,
      "id": "aboutmedia@gavinsharp.com"
    },
    {
      "name": "Firefox Hello",
      "version": "1.3.2",
      "isActive": true,
      "id": "loop@mozilla.org"
    },
    {
      "name": "Multi-process staged rollout",
      "version": "1.0",
      "isActive": true,
      "id": "e10srollout@mozilla.org"
    },
    {
      "name": "Pocket",
      "version": "1.0.3b1",
      "isActive": true,
      "id": "firefox@getpocket.com"
    },
    {
      "name": "User-Agent Switcher",
      "version": "0.1.6",
      "isActive": true,
      "id": "jid1-kyxEAcWua7BEKq@jetpack"
    },
    {
      "name": "Web Compat",
      "version": "1.0",
      "isActive": true,
      "id": "webcompat@mozilla.org"
    },
    {
      "name": "ADB Helper",
      "version": "0.8.7",
      "isActive": false,
      "id": "adbhelper@mozilla.org"
    },
    {
      "name": "Firefox OS 1.3 Simulator",
      "version": "7.0pre9.20140401.1-signed",
      "isActive": false,
      "id": "fxos_1_3_simulator@mozilla.org"
    }
  ],
  "experiments": [],
  "graphics": {
    "numTotalWindows": 1,
    "numAcceleratedWindows": 1,
    "windowLayerManagerType": "OpenGL",
    "windowLayerManagerRemote": true,
    "supportsHardwareH264": "No",
    "adapterDescription": "",
    "adapterVendorID": "0x8086",
    "adapterDeviceID": "0x162b",
    "adapterRAM": "",
    "adapterDrivers": "",
    "driverVersion": "",
    "driverDate": "",
    "webglRenderer": "Intel Inc. -- Intel(R) Iris(TM) Graphics 6100",
    "info": {
      "AzureCanvasBackend": "skia",
      "AzureCanvasAccelerated": 1,
      "AzureFallbackCanvasBackend": "none",
      "AzureContentBackend": "skia"
    },
    "featureLog": {
      "features": [
        {
          "name": "HW_COMPOSITING",
          "description": "Compositing",
          "status": "available",
          "log": [
            {
              "type": "default",
              "status": "available"
            }
          ]
        }
      ],
      "fallbacks": []
    },
    "crashGuards": []
  }
}
Milan, how do we find which entry in the downloadable blacklist this is, and find out which bug added it?

I don't remember us intentionally blacklisting drivers for OSX, but it's possible that we did.
Flags: needinfo?(milan)
Whiteboard: [gfx-noted]
Something is clearly wrong, as I'm seeing entries about Direct2D being blocked (don't know how that showed up in there, unless the profile is shared between a Windows computer and this one), but the one listed as blocking video acceleration is an entry from bug 1266220, which does specify "all operating systems", but the driver version shouldn't be matched.  I'll check.
Assignee: nobody → milan
Jean-Yves, just to be certain - you do not share profiles somehow between a windows machine and this mac, right?
Flags: needinfo?(milan) → needinfo?(jyavenard)
Never mind, it is the entry from bug 1266220 that is blocking video acceleration here.
Flags: needinfo?(jyavenard)
Blocks: 1266220
By the way, while there is something broken, and there is a bad downloadable blocklist entry, the upside is that it looks like nothing is ever blocked on OS X, so the original issue is still a mystery - Jean-Yves, how do you "know" video is not accelerated?
OK, I see the "supportsHardwareH264": "No".  Still, a bit of a mystery.  I have
gfx.blacklist.hardwarevideodecoding.failureid;FEATURE_FAILURE_DL_BLACKLIST_g1208 set, and accelerated video, but I don't have gfx.blacklist.hardwarevideodecoding;3
(Reporter)

Comment 7

a year ago
No, I do not share this profile across OS. I did copy it from my MacPro desktop (also running 10.11)
I had cleared the preferences that were not the default.

The Apple decoder calls gfxPlatform::GetPlatform()->CanUseHardwareVideoDecoding() to find out if we can use HW decoding.

this returns false (gfxPlatform::sLayersSupportsHardwareVideoDecoding is false). So the decoder will disable hardware decoding. As HW decoding is disabled, we enable MSE with VP9 and so YouTube serves the laptop VP9. I noticed because I was getting a lot of dropped frames with 4K videos.

With H264 and hardware decoding it's perfect (so long as it's not 60fps)
This is the bug:  We use "<os>All</os>" to mean "All Windows", but it hits beyond that with the blocklist entry introduced in bug 1266220.  It is only safe to use for windows-only features, and we can sometimes get away with it because the device ID only appears on Windows.  However, this last entry is all devices, given driver, all OS, and that actually means "all drivers" in Firefox.
Depends on: 1274635
Blocks: 1274635
No longer depends on: 1274635
Created attachment 8754978 [details]
MozReview Request: Bug 1274152: All in downloadable blocklist only means All Windows. r?jrmuizel

Review commit: https://reviewboard.mozilla.org/r/54322/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/54322/
Attachment #8754978 - Flags: review?(jmuizelaar)
Comment on attachment 8754978 [details]
MozReview Request: Bug 1274152: All in downloadable blocklist only means All Windows. r?jrmuizel

https://reviewboard.mozilla.org/r/54322/#review51010

::: widget/GfxInfoBase.cpp:282
(Diff revision 1)
>    else if (os.EqualsLiteral("Android"))
>      return DRIVER_OS_ANDROID;
> +#if defined (XP_WIN)
> +  // For historical reasons, "All" in blocklist means "All Windows"
>    else if (os.EqualsLiteral("All"))
>      return DRIVER_OS_ALL;

Should we not rename the DRIVER_OS_ALL enum to be DRIVER_OS_ALL_WINDOWS and then keep this code unconditional? I think that would make help make the other parts of the code line up with the actual meaning.
Attachment #8754978 - Flags: review?(jmuizelaar)
Comment on attachment 8754978 [details]
MozReview Request: Bug 1274152: All in downloadable blocklist only means All Windows. r?jrmuizel

https://reviewboard.mozilla.org/r/54322/#review51014
Attachment #8754978 - Flags: review+
https://reviewboard.mozilla.org/r/54322/#review51016
(In reply to Jeff Muizelaar [:jrmuizel] from comment #10)
> Comment on attachment 8754978 [details]
> MozReview Request: Bug 1274152: All in downloadable blocklist only means All
> Windows. r?jrmuizel
> 
> https://reviewboard.mozilla.org/r/54322/#review51010
> 
> ::: widget/GfxInfoBase.cpp:282
> (Diff revision 1)
> >    else if (os.EqualsLiteral("Android"))
> >      return DRIVER_OS_ANDROID;
> > +#if defined (XP_WIN)
> > +  // For historical reasons, "All" in blocklist means "All Windows"
> >    else if (os.EqualsLiteral("All"))
> >      return DRIVER_OS_ALL;
> 
> Should we not rename the DRIVER_OS_ALL enum to be DRIVER_OS_ALL_WINDOWS and
> then keep this code unconditional? I think that would make help make the
> other parts of the code line up with the actual meaning.

Had an offline conversation on this topic - this will happen in bug 1274635 - keeping this one simple in case we decide to uplift.
Will need to update the tests.
Comment on attachment 8754978 [details]
MozReview Request: Bug 1274152: All in downloadable blocklist only means All Windows. r?jrmuizel

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/54322/diff/1-2/
https://treeherder.mozilla.org/#/jobs?repo=try&revision=91cf4d02002d

Comment 17

a year ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/21263fbfdcc2

Comment 18

a year ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/21263fbfdcc2
Status: NEW → RESOLVED
Last Resolved: a year ago
status-firefox49: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla49
You need to log in before you can comment on or make changes to this bug.