Index: media/gpu/dxva_video_decode_accelerator_win.cc |
diff --git a/media/gpu/dxva_video_decode_accelerator_win.cc b/media/gpu/dxva_video_decode_accelerator_win.cc |
index e154b7e2b75fc94759fbbfd61dbf84f87a50b942..e88880665c019c0fb2237531baadb630c7095de0 100644 |
--- a/media/gpu/dxva_video_decode_accelerator_win.cc |
+++ b/media/gpu/dxva_video_decode_accelerator_win.cc |
@@ -503,7 +503,9 @@ DXVAVideoDecodeAccelerator::DXVAVideoDecodeAccelerator( |
dx11_video_format_converter_media_type_needs_init_(true), |
using_angle_device_(false), |
enable_accelerated_vpx_decode_( |
- gpu_preferences.enable_accelerated_vpx_decode), |
+ workarounds.disable_accelerated_vpx_decode |
+ ? gpu::GpuPreferences::VpxDecodeVendors::VPX_VENDOR_NONE |
+ : gpu_preferences.enable_accelerated_vpx_decode), |
processing_config_changed_(false), |
weak_this_factory_(this) { |
weak_ptr_ = weak_this_factory_.GetWeakPtr(); |
@@ -1184,7 +1186,8 @@ GLenum DXVAVideoDecodeAccelerator::GetSurfaceInternalFormat() const { |
// static |
VideoDecodeAccelerator::SupportedProfiles |
DXVAVideoDecodeAccelerator::GetSupportedProfiles( |
- const gpu::GpuPreferences& preferences) { |
+ const gpu::GpuPreferences& preferences, |
+ const gpu::GpuDriverBugWorkarounds& workarounds) { |
TRACE_EVENT0("gpu,startup", |
"DXVAVideoDecodeAccelerator::GetSupportedProfiles"); |
@@ -1200,7 +1203,8 @@ DXVAVideoDecodeAccelerator::GetSupportedProfiles( |
} |
} |
for (const auto& supported_profile : kSupportedProfiles) { |
- if (!preferences.enable_accelerated_vpx_decode && |
+ if ((!preferences.enable_accelerated_vpx_decode || |
+ workarounds.disable_accelerated_vpx_decode) && |
(supported_profile >= VP8PROFILE_MIN) && |
(supported_profile <= VP9PROFILE_MAX)) { |
continue; |