Fix issue where DXGI_FORMAT_R16G16B16A16_FLOAT gets used even when unsupported by hardware
Issue backtrace: - video_device_->CreateVideoProcessorOutputView(...) in DXVAVideoDecodeAccelerator::CopyTextureOnDecoderThread() fails because DXGI_FORMAT_R16G16B16A16_FLOAT is not supported by client's hardware. - in DXVAVideoDecodeAccelerator::Initialize, use_fp16_ = true due to "Issue 592074: Add support for different VP9 profiles". - DXGI_FORMAT_R16G16B16A16_FLOAT is in fact not supported, and CheckOutputFormatSupport(DXGI_FORMAT_R16G16B16A16_FLOAT) DXVAVideoDecodeAccelerator::CreateDX11DevManager() reflects that, and use_fp16_ = false. Proposed fix: - Make use_fp16_ an enum to reflect the fact that its non-binary states. - Because intent to use fp16 is expressed in DXVAVideoDecodeAccelerator::Initialize, which can be called before or after support for fp16 is determined, let use_fp16_ be set to kUsing for all states except kUnsupported. kUsing can be reversed later when hardware support is queried. Bug: 1032438 Change-Id: I113f26b126fdc1e0131a2362cbf19629f268f3eb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1974761Reviewed-by:Frank Liberato <liberato@chromium.org> Reviewed-by:
Ted Meyer <tmathmeyer@chromium.org> Commit-Queue: Vi Nguyen <ving@microsoft.com> Cr-Commit-Position: refs/heads/master@{#730012}
Showing
Please register or sign in to comment