Commit c9b77625 authored by Kenneth Russell's avatar Kenneth Russell Committed by Commit Bot

Revert "Work around where BRGA8 overlays are supported but not reported."

This reverts commit b7c98d05.

Reason for revert: assertion failures on Intel GPU bots per https://bugs.chromium.org/p/chromium/issues/detail?id=1119491#c4

Original change's description:
> Work around where BRGA8 overlays are supported but not reported.
> 
> On Intel GPUs where YUV hardware overlays are supported, BRGA8
> overlays seem to be supported, but the system fails to report
> that.
> 
> BUG=1119491
> TEST=manual, gpu_unittests
> R=​magchen@chromium.org
> 
> Change-Id: I304aef3731f142c13c945ca22ce0df81afbcd21d
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2364580
> Commit-Queue: Zhenyao Mo <zmo@chromium.org>
> Reviewed-by: Maggie Chen <magchen@chromium.org>
> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#799901}

TBR=zmo@chromium.org,sunnyps@chromium.org,magchen@chromium.org

Change-Id: If3f17c4fcab42d31a8285d55ca20c5a24808dbae
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1119491
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2367116Reviewed-by: default avatarKenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#800172}
parent ca53ea05
...@@ -3487,18 +3487,6 @@ ...@@ -3487,18 +3487,6 @@
"features": [ "features": [
"force_rgb10a2_overlay_support_flags" "force_rgb10a2_overlay_support_flags"
] ]
},
{
"id": 347,
"cr_bugs": [1119491],
"description": "Intel GPUs fail to report BGRA8 overlay support",
"os": {
"type": "win"
},
"vendor_id": "0x8086",
"features": [
"enable_bgra8_overlays_with_yuv_overlay_support"
]
} }
] ]
} }
...@@ -61,7 +61,6 @@ dont_use_eglclientwaitsync_with_timeout ...@@ -61,7 +61,6 @@ dont_use_eglclientwaitsync_with_timeout
dont_use_loops_to_initialize_variables dont_use_loops_to_initialize_variables
emulate_abs_int_function emulate_abs_int_function
emulate_isnan_on_float emulate_isnan_on_float
enable_bgra8_overlays_with_yuv_overlay_support
etc1_power_of_two_only etc1_power_of_two_only
exit_on_context_lost exit_on_context_lost
flush_on_framebuffer_change flush_on_framebuffer_change
......
...@@ -82,18 +82,13 @@ bool CollectGraphicsInfo(GPUInfo* gpu_info) { ...@@ -82,18 +82,13 @@ bool CollectGraphicsInfo(GPUInfo* gpu_info) {
return success; return success;
} }
void InitializePlatformOverlaySettings(GPUInfo* gpu_info, void InitializePlatformOverlaySettings(GPUInfo* gpu_info) {
const GpuFeatureInfo& gpu_feature_info) {
#if defined(OS_WIN) #if defined(OS_WIN)
// This has to be called after a context is created, active GPU is identified, // This has to be called after a context is created, active GPU is identified,
// and GPU driver bug workarounds are computed again. Otherwise the workaround // and GPU driver bug workarounds are computed again. Otherwise the workaround
// |disable_direct_composition| may not be correctly applied. // |disable_direct_composition| may not be correctly applied.
// Also, this has to be called after falling back to SwiftShader decision is // Also, this has to be called after falling back to SwiftShader decision is
// finalized because this function depends on GL is ANGLE's GLES or not. // finalized because this function depends on GL is ANGLE's GLES or not.
if (gpu_feature_info.IsWorkaroundEnabled(
gpu::ENABLE_BGRA8_OVERLAYS_WITH_YUV_OVERLAY_SUPPORT)) {
gl::DirectCompositionSurfaceWin::EnableBGRA8OverlaysWithYUVOverlaySupport();
}
DCHECK(gpu_info); DCHECK(gpu_info);
CollectHardwareOverlayInfo(&gpu_info->overlay_info); CollectHardwareOverlayInfo(&gpu_info->overlay_info);
#elif defined(OS_ANDROID) #elif defined(OS_ANDROID)
...@@ -488,7 +483,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, ...@@ -488,7 +483,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
} }
} }
InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_); InitializePlatformOverlaySettings(&gpu_info_);
#if defined(OS_LINUX) || defined(OS_CHROMEOS) #if defined(OS_LINUX) || defined(OS_CHROMEOS)
// Driver may create a compatibility profile context when collect graphics // Driver may create a compatibility profile context when collect graphics
...@@ -680,7 +675,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line, ...@@ -680,7 +675,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
} }
} }
InitializePlatformOverlaySettings(&gpu_info_, gpu_feature_info_); InitializePlatformOverlaySettings(&gpu_info_);
#if defined(OS_LINUX) || defined(OS_CHROMEOS) #if defined(OS_LINUX) || defined(OS_CHROMEOS)
// Driver may create a compatibility profile context when collect graphics // Driver may create a compatibility profile context when collect graphics
......
...@@ -102,10 +102,6 @@ UINT g_yuy2_overlay_support_flags = 0; ...@@ -102,10 +102,6 @@ UINT g_yuy2_overlay_support_flags = 0;
UINT g_bgra8_overlay_support_flags = 0; UINT g_bgra8_overlay_support_flags = 0;
UINT g_rgb10a2_overlay_support_flags = 0; UINT g_rgb10a2_overlay_support_flags = 0;
// When this is set, if NV12 or YUY2 overlays are supported, set BGRA8 overlays
// as supported as well.
bool g_enable_bgra8_overlays_with_yuv_overlay_support = false;
void SetOverlaySupportFlagsForFormats(UINT nv12_flags, void SetOverlaySupportFlagsForFormats(UINT nv12_flags,
UINT yuy2_flags, UINT yuy2_flags,
UINT bgra8_flags, UINT bgra8_flags,
...@@ -223,13 +219,6 @@ void GetGpuDriverOverlayInfo(bool* supports_overlays, ...@@ -223,13 +219,6 @@ void GetGpuDriverOverlayInfo(bool* supports_overlays,
*overlay_format_used = DXGI_FORMAT_YUY2; *overlay_format_used = DXGI_FORMAT_YUY2;
*supports_overlays = true; *supports_overlays = true;
} }
if (g_enable_bgra8_overlays_with_yuv_overlay_support) {
if (FlagsSupportsOverlays(*nv12_overlay_support_flags))
*bgra8_overlay_support_flags = *nv12_overlay_support_flags;
else if (FlagsSupportsOverlays(*yuy2_overlay_support_flags))
*bgra8_overlay_support_flags = *yuy2_overlay_support_flags;
}
if (*supports_overlays) { if (*supports_overlays) {
DXGI_OUTPUT_DESC monitor_desc = {}; DXGI_OUTPUT_DESC monitor_desc = {};
if (SUCCEEDED(output3->GetDesc(&monitor_desc))) { if (SUCCEEDED(output3->GetDesc(&monitor_desc))) {
...@@ -665,13 +654,6 @@ void DirectCompositionSurfaceWin::SetOverlayHDRGpuInfoUpdateCallback( ...@@ -665,13 +654,6 @@ void DirectCompositionSurfaceWin::SetOverlayHDRGpuInfoUpdateCallback(
g_overlay_hdr_gpu_info_callback = std::move(callback); g_overlay_hdr_gpu_info_callback = std::move(callback);
} }
// static
void DirectCompositionSurfaceWin::EnableBGRA8OverlaysWithYUVOverlaySupport() {
// This has to be set before initializing overlay caps.
DCHECK(!OverlayCapsValid());
g_enable_bgra8_overlays_with_yuv_overlay_support = true;
}
bool DirectCompositionSurfaceWin::Initialize(GLSurfaceFormat format) { bool DirectCompositionSurfaceWin::Initialize(GLSurfaceFormat format) {
d3d11_device_ = QueryD3D11DeviceObjectFromANGLE(); d3d11_device_ = QueryD3D11DeviceObjectFromANGLE();
if (!d3d11_device_) { if (!d3d11_device_) {
......
...@@ -99,11 +99,6 @@ class GL_EXPORT DirectCompositionSurfaceWin : public GLSurfaceEGL, ...@@ -99,11 +99,6 @@ class GL_EXPORT DirectCompositionSurfaceWin : public GLSurfaceEGL,
static void SetOverlayHDRGpuInfoUpdateCallback( static void SetOverlayHDRGpuInfoUpdateCallback(
OverlayHDRInfoUpdateCallback callback); OverlayHDRInfoUpdateCallback callback);
// On Intel GPUs where YUV overlays are supported, BGRA8 overlays are
// supported as well but IDXGIOutput3::CheckOverlaySupport() returns
// unsupported. So allow manually enabling BGRA8 overlay support.
static void EnableBGRA8OverlaysWithYUVOverlaySupport();
// GLSurfaceEGL implementation. // GLSurfaceEGL implementation.
bool Initialize(GLSurfaceFormat format) override; bool Initialize(GLSurfaceFormat format) override;
void Destroy() override; void Destroy() override;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment