diff --git a/dom/media/platforms/wmf/WMFDecoderModule.cpp b/dom/media/platforms/wmf/WMFDecoderModule.cpp index 5d1f532dc391..e9cad72d23c1 100644 --- a/dom/media/platforms/wmf/WMFDecoderModule.cpp +++ b/dom/media/platforms/wmf/WMFDecoderModule.cpp @@ -272,7 +272,8 @@ bool WMFDecoderModule::HasH264() { /* static */ bool WMFDecoderModule::HasVP8() { - return sUsableVPXMFT && + // Some Intel HW MFTs would crash on VP8 decoding. + return sUsableVPXMFT && gfx::gfxVars::UseVP8HwDecode() && CanCreateWMFDecoder(); } diff --git a/widget/GfxDriverInfo.cpp b/widget/GfxDriverInfo.cpp index b394cd35843e..eed7d716623d 100644 --- a/widget/GfxDriverInfo.cpp +++ b/widget/GfxDriverInfo.cpp @@ -433,6 +433,10 @@ const GfxDeviceFamily* GfxDriverInfo::GetDeviceFamily(DeviceFamily id) { APPEND_DEVICE(0xa011); APPEND_DEVICE(0xa012); break; + case DeviceFamily::Bug1760464: + APPEND_DEVICE(0x0a16); // Intel HD Graphics Family on Haswell Ultrabooks + APPEND_DEVICE(0x041e); // Intel HD Graphics 4400 + break; case DeviceFamily::AmdR600: // AMD R600 generation GPUs // R600 @@ -950,6 +954,7 @@ const nsAString& GfxDriverInfo::GetDeviceVendor(DeviceFamily id) { case DeviceFamily::Bug1116812: case DeviceFamily::Bug1155608: case DeviceFamily::Bug1207665: + case DeviceFamily::Bug1760464: vendor = DeviceVendor::Intel; break; case DeviceFamily::NvidiaAll: diff --git a/widget/GfxDriverInfo.h b/widget/GfxDriverInfo.h index 9b41a7ec150e..02b3704467c0 100644 --- a/widget/GfxDriverInfo.h +++ b/widget/GfxDriverInfo.h @@ -197,6 +197,7 @@ enum class DeviceFamily : uint8_t { Bug1155608, Bug1207665, Bug1447141, + Bug1760464, AmdR600, NvidiaRolloutWebRender, IntelRolloutWebRender, diff --git a/widget/windows/GfxInfo.cpp b/widget/windows/GfxInfo.cpp index e1faaab86ecb..ad6ebd397c6e 100644 --- a/widget/windows/GfxInfo.cpp +++ b/widget/windows/GfxInfo.cpp @@ -1555,6 +1555,15 @@ const nsTArray& GfxInfo::GetGfxDriverInfo() { nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION, DRIVER_BUILD_ID_LESS_THAN_OR_EQUAL, 4578, "FEATURE_FAILURE_BUG_1432610"); + /** + * Disable VP8 HW decoding on Windows 8.1 on Intel Haswel for some devices. + * See bug 1760464 comment 6. + */ + APPEND_TO_DRIVER_BLOCKLIST2( + OperatingSystem::Windows8_1, DeviceFamily::Bug1760464, + nsIGfxInfo::FEATURE_VP8_HW_DECODE, nsIGfxInfo::FEATURE_BLOCKED_DEVICE, + DRIVER_LESS_THAN, GfxDriverInfo::allDriverVersions, + "FEATURE_FAILURE_BUG_1760464"); /* Disable D2D on Win7 on Intel HD Graphics on driver <= 8.15.10.2302 * See bug 806786