Bug 1352016 - P5. Also check AMD cards with 0x1002 device id. r?mattwoodrow draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Sun, 10 Sep 2017 18:17:14 +0200
changeset 663997 31bdc6d1dbcd9404133d21517c8e91e556465f2a
parent 663996 517aadb4a6ebf32c4c574389cc3fb1c5e8b3c679
child 731339 3feaa016d27cb4bffefc87b79d4612bcad3ffcec
push id79585
push userbmo:jyavenard@mozilla.com
push dateWed, 13 Sep 2017 15:54:16 +0000
reviewersmattwoodrow
bugs1352016
milestone57.0a1
Bug 1352016 - P5. Also check AMD cards with 0x1002 device id. r?mattwoodrow MozReview-Commit-ID: DjCMDNfsfXe
dom/media/platforms/wmf/DXVA2Manager.cpp
--- a/dom/media/platforms/wmf/DXVA2Manager.cpp
+++ b/dom/media/platforms/wmf/DXVA2Manager.cpp
@@ -424,17 +424,18 @@ D3D9DXVA2Manager::Init(layers::KnowsComp
   D3DADAPTER_IDENTIFIER9 adapter;
   hr = d3d9Ex->GetAdapterIdentifier(D3DADAPTER_DEFAULT, 0, &adapter);
   if (!SUCCEEDED(hr)) {
     aFailureReason = nsPrintfCString(
       "IDirect3D9Ex::GetAdapterIdentifier failed with error %X", hr);
     return hr;
   }
 
-  if (adapter.VendorId == 0x1022 && !gfxPrefs::PDMWMFSkipBlacklist()) {
+  if ((adapter.VendorId == 0x1022  || adapter.VendorId == 0x1002) &&
+      !gfxPrefs::PDMWMFSkipBlacklist()) {
     for (const auto& model : sAMDPreUVD4) {
       if (adapter.DeviceId == model) {
         mIsAMDPreUVD4 = true;
         break;
       }
     }
   }
 
@@ -903,17 +904,18 @@ D3D11DXVA2Manager::InitInternal(layers::
   DXGI_ADAPTER_DESC adapterDesc;
   hr = adapter->GetDesc(&adapterDesc);
   if (!SUCCEEDED(hr)) {
     aFailureReason =
       nsPrintfCString("IDXGIAdapter::GetDesc failed with code %X", hr);
     return hr;
   }
 
-  if (adapterDesc.VendorId == 0x1022 && !gfxPrefs::PDMWMFSkipBlacklist()) {
+  if ((adapterDesc.VendorId == 0x1022 || adapterDesc.VendorId == 0x1002) &&
+      !gfxPrefs::PDMWMFSkipBlacklist()) {
     for (const auto& model : sAMDPreUVD4) {
       if (adapterDesc.DeviceId == model) {
         mIsAMDPreUVD4 = true;
         break;
       }
     }
   }
 
@@ -1302,17 +1304,17 @@ DXVA2Manager::IsUnsupportedResolution(co
          aFramerate > 45;
 }
 
 /* static */ bool
 DXVA2Manager::IsNV12Supported(uint32_t aVendorID,
                               uint32_t aDeviceID,
                               const nsAString& aDriverVersionString)
 {
-  if (aVendorID == 0x1022) {
+  if (aVendorID == 0x1022 || aVendorID == 0x1002) {
     // AMD
     // Block old cards regardless of driver version.
     for (const auto& model : sAMDPreUVD4) {
       if (aDeviceID == model) {
         return false;
       }
     }
     // AMD driver earlier than 21.19.411.0 have bugs in their handling of NV12