Commit e1e0b33b authored by kylechar's avatar kylechar Committed by Commit Bot

Use Skia for GL readback on Windows

When using SkiaRenderer on Windows use the Skia readback APIs instead of
GLRendererCopier by default.

The Skia readback API doesn't support RGBA_TEXTURE readback format. This
is only used on Chrome OS in production but some cc_unittests exercise
it. Don't run those tests on Windows with SkiaRenderer. We still
exercise the same test with RGBA_BITMAP which is supported.

Bug: 1042646, 1046788
Change-Id: Ida4a1a921c838ee7a2d628da4535d9367140ff04
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2019466
Commit-Queue: kylechar <kylechar@chromium.org>
Reviewed-by: default avatarJonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736578}
parent 2d7e9e25
......@@ -420,7 +420,12 @@ ReadbackTestConfig const kTestConfigs[] = {
ReadbackTestConfig{LayerTreeTest::RENDERER_SOFTWARE, READBACK_BITMAP},
ReadbackTestConfig{LayerTreeTest::RENDERER_GL, READBACK_TEXTURE},
ReadbackTestConfig{LayerTreeTest::RENDERER_GL, READBACK_BITMAP},
#if !defined(OS_WIN)
// TODO(crbug.com/1046788): The skia readback path doesn't support
// RGBA_TEXTURE readback requests yet. Don't run these tests on platforms
// that have UseSkiaForGLReadback enabled by default.
ReadbackTestConfig{LayerTreeTest::RENDERER_SKIA_GL, READBACK_TEXTURE},
#endif
ReadbackTestConfig{LayerTreeTest::RENDERER_SKIA_GL, READBACK_BITMAP},
#if defined(ENABLE_CC_VULKAN_TESTS)
ReadbackTestConfig{LayerTreeTest::RENDERER_SKIA_VK, READBACK_BITMAP},
......@@ -437,7 +442,12 @@ ReadbackTestConfig const kMaybeVulkanTestConfigs[] = {
ReadbackTestConfig{LayerTreeTest::RENDERER_SOFTWARE, READBACK_BITMAP},
ReadbackTestConfig{LayerTreeTest::RENDERER_GL, READBACK_TEXTURE},
ReadbackTestConfig{LayerTreeTest::RENDERER_GL, READBACK_BITMAP},
#if !defined(OS_WIN)
// TODO(crbug.com/1046788): The skia readback path doesn't support
// RGBA_TEXTURE readback requests yet. Don't run these tests on platforms
// that have UseSkiaForGLReadback enabled by default.
ReadbackTestConfig{LayerTreeTest::RENDERER_SKIA_GL, READBACK_TEXTURE},
#endif
ReadbackTestConfig{LayerTreeTest::RENDERER_SKIA_GL, READBACK_BITMAP},
#if defined(ENABLE_CC_VULKAN_TESTS) && !defined(THREAD_SANITIZER) && \
!defined(MEMORY_SANITIZER)
......
......@@ -17,8 +17,13 @@
namespace features {
// Use Skia's readback API instead of GLRendererCopier.
#if defined(OS_WIN)
const base::Feature kUseSkiaForGLReadback{"UseSkiaForGLReadback",
base::FEATURE_ENABLED_BY_DEFAULT};
#else
const base::Feature kUseSkiaForGLReadback{"UseSkiaForGLReadback",
base::FEATURE_DISABLED_BY_DEFAULT};
#endif
// Use the SkiaRenderer.
#if defined(OS_LINUX) && !(defined(OS_CHROMEOS) || BUILDFLAG(IS_CHROMECAST))
......
......@@ -188,9 +188,9 @@ TEST_P(SkiaOutputSurfaceImplTest, SubmitPaint) {
request->set_result_task_runner(
gpu_service_holder_->gpu_thread_task_runner());
copy_output::RenderPassGeometry geometry;
geometry.result_bounds = kSurfaceRect;
geometry.result_bounds = output_rect;
geometry.result_selection = output_rect;
geometry.sampling_bounds = kSurfaceRect;
geometry.sampling_bounds = output_rect;
geometry.readback_offset = gfx::Vector2d(0, 0);
output_surface_->CopyOutput(0, geometry, color_space, std::move(request));
......
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