Bug 1360006: Whitelist VP9 decoder to intel GPU only. r=mattwoodrow

We enable by default the VP9 hardware decoder on intel GPU.

MozReview-Commit-ID: FzMzbpZErjQ

--HG--
extra : rebase_source : f34c969f7dda1ef24224e982f31d5e43cfae7cc0
This commit is contained in:
Jean-Yves Avenard 2017-06-01 22:17:56 +02:00
Родитель 30ad12db3a
Коммит a9142498ec
5 изменённых файлов: 18 добавлений и 4 удалений

Просмотреть файл

@ -111,6 +111,7 @@ public:
bool CreateDXVA2Decoder(const VideoInfo& aVideoInfo,
nsACString& aFailureReason) override;
uint32_t GetVendorId() const override { return mVendorId; }
private:
bool CanCreateDecoder(const DXVA2_VideoDesc& aDesc,
const float aFramerate) const;
@ -128,6 +129,7 @@ private:
GUID mDecoderGUID;
UINT32 mResetToken = 0;
bool mFirstFrame = true;
uint32_t mVendorId = 0;
};
void GetDXVA2ExtendedFormatFromMFMediaType(IMFMediaType *pType,
@ -394,7 +396,8 @@ D3D9DXVA2Manager::Init(layers::KnowsCompositor* aKnowsCompositor,
return hr;
}
if (adapter.VendorId == 0x1022 && !gfxPrefs::PDMWMFSkipBlacklist()) {
mVendorId = adapter.VendorId;
if (mVendorId == 0x1022 && !gfxPrefs::PDMWMFSkipBlacklist()) {
for (const auto& model : sAMDPreUVD4) {
if (adapter.DeviceId == model) {
mIsAMDPreUVD4 = true;
@ -625,6 +628,7 @@ public:
bool CreateDXVA2Decoder(const VideoInfo& aVideoInfo,
nsACString& aFailureReason) override;
uint32_t GetVendorId() const override { return mVendorId; }
private:
HRESULT CreateFormatConverter();
@ -648,6 +652,7 @@ private:
uint32_t mWidth = 0;
uint32_t mHeight = 0;
UINT mDeviceManagerToken = 0;
uint32_t mVendorId = 0;
};
bool
@ -852,7 +857,8 @@ D3D11DXVA2Manager::InitInternal(layers::KnowsCompositor* aKnowsCompositor,
return hr;
}
if (adapterDesc.VendorId == 0x1022 && !gfxPrefs::PDMWMFSkipBlacklist()) {
mVendorId = adapterDesc.VendorId;
if (mVendorId == 0x1022 && !gfxPrefs::PDMWMFSkipBlacklist()) {
for (const auto& model : sAMDPreUVD4) {
if (adapterDesc.DeviceId == model) {
mIsAMDPreUVD4 = true;

Просмотреть файл

@ -70,6 +70,7 @@ public:
virtual bool CreateDXVA2Decoder(const VideoInfo& aVideoInfo,
nsACString& aFailureReason) = 0;
virtual uint32_t GetVendorId() const = 0;
protected:
Mutex mLock;
DXVA2Manager();

Просмотреть файл

@ -569,6 +569,11 @@ WMFVideoMFTManager::InitInternal()
Telemetry::Accumulate(Telemetry::MEDIA_DECODER_BACKEND_USED,
uint32_t(media::MediaDecoderBackend::WMFSoftware));
}
// We only allow intel VP9 decoder at this stage.
if ((mStreamType == VP9 || mStreamType == VP8) &&
(mDXVA2Manager->GetVendorId() != 0x8086 && !gfxPrefs::PDMWMFForceVP9())) {
return false;
}
mDecoder = decoder;
hr = SetDecoderMediaTypes();

Просмотреть файл

@ -625,6 +625,7 @@ private:
DECL_GFX_PREF(Once, "media.windows-media-foundation.use-sync-texture", PDMWMFUseSyncTexture, bool, true);
DECL_GFX_PREF(Live, "media.wmf.low-latency.enabled", PDMWMFLowLatencyEnabled, bool, false);
DECL_GFX_PREF(Live, "media.wmf.skip-blacklist", PDMWMFSkipBlacklist, bool, false);
DECL_GFX_PREF(Live, "media.wmf.vp9.force.enabled", PDMWMFForceVP9, bool, false);
#endif
// These affect how line scrolls from wheel events will be accelerated.

Просмотреть файл

@ -357,10 +357,11 @@ pref("media.wmf.decoder.thread-count", -1);
pref("media.wmf.low-latency.enabled", false);
pref("media.wmf.skip-blacklist", false);
#ifdef NIGHTLY_BUILD
pref("media.wmf.vp9.enabled", true);
pref("media.wmf.vp9.force.enabled", true);
#else
pref("media.wmf.vp9.enabled", false);
pref("media.wmf.vp9.force.enabled", false);
#endif
pref("media.wmf.vp9.enabled", true);
pref("media.wmf.allow-unsupported-resolutions", false);
pref("media.windows-media-foundation.allow-d3d11-dxva", true);
pref("media.wmf.disable-d3d11-for-dlls", "igd11dxva64.dll: 20.19.15.4463, 20.19.15.4454, 20.19.15.4444, 20.19.15.4416, 20.19.15.4404, 20.19.15.4390, 20.19.15.4380, 20.19.15.4377, 20.19.15.4364, 20.19.15.4360, 20.19.15.4352, 20.19.15.4331, 20.19.15.4326, 20.19.15.4300; igd10iumd32.dll: 20.19.15.4444, 20.19.15.4424, 20.19.15.4409, 20.19.15.4390, 20.19.15.4380, 20.19.15.4360, 10.18.10.4358, 20.19.15.4331, 20.19.15.4312, 20.19.15.4300, 10.18.15.4281, 10.18.15.4279, 10.18.10.4276, 10.18.15.4268, 10.18.15.4256, 10.18.10.4252, 10.18.15.4248, 10.18.14.4112, 10.18.10.3958, 10.18.10.3496, 10.18.10.3431, 10.18.10.3412, 10.18.10.3355, 9.18.10.3234, 9.18.10.3071, 9.18.10.3055, 9.18.10.3006; igd10umd32.dll: 9.17.10.4229, 9.17.10.3040, 9.17.10.2857, 8.15.10.2274, 8.15.10.2272, 8.15.10.2246, 8.15.10.1840, 8.15.10.1808; igd10umd64.dll: 9.17.10.4229, 9.17.10.2857, 10.18.10.3496; isonyvideoprocessor.dll: 4.1.2247.8090, 4.1.2153.6200; tosqep.dll: 1.2.15.526, 1.1.12.201, 1.0.11.318, 1.0.11.215, 1.0.10.1224; tosqep64.dll: 1.1.12.201, 1.0.11.215; nvwgf2um.dll: 10.18.13.6510, 10.18.13.5891, 10.18.13.5887, 10.18.13.5582, 10.18.13.5382, 9.18.13.4195, 9.18.13.3165; atidxx32.dll: 21.19.151.3, 21.19.142.257, 21.19.137.514, 21.19.137.1, 21.19.134.1, 21.19.128.7, 21.19.128.4, 20.19.0.32837, 20.19.0.32832, 8.17.10.682, 8.17.10.671, 8.17.10.661, 8.17.10.648, 8.17.10.644, 8.17.10.625, 8.17.10.605, 8.17.10.581, 8.17.10.569, 8.17.10.560, 8.17.10.545, 8.17.10.539, 8.17.10.531, 8.17.10.525, 8.17.10.520, 8.17.10.519, 8.17.10.514, 8.17.10.511, 8.17.10.494, 8.17.10.489, 8.17.10.483, 8.17.10.453, 8.17.10.451, 8.17.10.441, 8.17.10.436, 8.17.10.432, 8.17.10.425, 8.17.10.418, 8.17.10.414, 8.17.10.401, 8.17.10.395, 8.17.10.385, 8.17.10.378, 8.17.10.362, 8.17.10.355, 8.17.10.342, 8.17.10.331, 8.17.10.318, 8.17.10.310, 8.17.10.286, 8.17.10.269, 8.17.10.261, 8.17.10.247, 8.17.10.240, 8.15.10.212; atidxx64.dll: 21.19.151.3, 21.19.142.257, 21.19.137.514, 21.19.137.1, 21.19.134.1, 21.19.128.7, 21.19.128.4, 20.19.0.32832, 8.17.10.682, 8.17.10.661, 8.17.10.644, 8.17.10.625; nvumdshim.dll: 10.18.13.6822");