Commit 986b5c51 authored by Eric Karl's avatar Eric Karl Committed by Commit Bot

Fix SkiaRenderer on Android

Fixes two small issues preventing SkiaRenderer from running on Android:
- Enablment flags not forwarded via RendererSettings.
- gles2::FeatureInfo not available on SkiaOutputSurfaceImplOnGpu.

Bug: 809726
Change-Id: I66de6c577eaa4d4b1eb6e6ae45c5036ae0b098f0
Reviewed-on: https://chromium-review.googlesource.com/c/1352248
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: default avatarPeng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613275}
parent 8f01fb85
...@@ -74,6 +74,11 @@ SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu( ...@@ -74,6 +74,11 @@ SkiaOutputSurfaceImplOnGpu::SkiaOutputSurfaceImplOnGpu(
gpu::CommandBufferNamespace::VIZ_OUTPUT_SURFACE, command_buffer_id_, gpu::CommandBufferNamespace::VIZ_OUTPUT_SURFACE, command_buffer_id_,
gpu_service_->skia_output_surface_sequence_id()); gpu_service_->skia_output_surface_sequence_id());
gpu::GpuChannelManager* channel_manager = gpu_service_->gpu_channel_manager();
feature_info_ = base::MakeRefCounted<gpu::gles2::FeatureInfo>(
channel_manager->gpu_driver_bug_workarounds(),
channel_manager->gpu_feature_info());
if (gpu_service_->is_using_vulkan()) if (gpu_service_->is_using_vulkan())
InitializeForVulkan(); InitializeForVulkan();
else else
...@@ -415,8 +420,7 @@ void SkiaOutputSurfaceImplOnGpu::DidSwapBuffersComplete( ...@@ -415,8 +420,7 @@ void SkiaOutputSurfaceImplOnGpu::DidSwapBuffersComplete(
const gpu::gles2::FeatureInfo* SkiaOutputSurfaceImplOnGpu::GetFeatureInfo() const gpu::gles2::FeatureInfo* SkiaOutputSurfaceImplOnGpu::GetFeatureInfo()
const { const {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
NOTIMPLEMENTED(); return feature_info_.get();
return nullptr;
} }
const gpu::GpuPreferences& SkiaOutputSurfaceImplOnGpu::GetGpuPreferences() const gpu::GpuPreferences& SkiaOutputSurfaceImplOnGpu::GetGpuPreferences()
......
...@@ -153,6 +153,7 @@ class SkiaOutputSurfaceImplOnGpu : public gpu::ImageTransportSurfaceDelegate { ...@@ -153,6 +153,7 @@ class SkiaOutputSurfaceImplOnGpu : public gpu::ImageTransportSurfaceDelegate {
OutputSurface::Capabilities capabilities_; OutputSurface::Capabilities capabilities_;
std::unique_ptr<gpu::SharedImageRepresentationFactory> std::unique_ptr<gpu::SharedImageRepresentationFactory>
shared_image_representation_factory_; shared_image_representation_factory_;
scoped_refptr<gpu::gles2::FeatureInfo> feature_info_;
#if BUILDFLAG(ENABLE_VULKAN) #if BUILDFLAG(ENABLE_VULKAN)
std::unique_ptr<gpu::VulkanSurface> vulkan_surface_; std::unique_ptr<gpu::VulkanSurface> vulkan_surface_;
......
...@@ -1377,6 +1377,9 @@ void CompositorImpl::InitializeVizLayerTreeFrameSink( ...@@ -1377,6 +1377,9 @@ void CompositorImpl::InitializeVizLayerTreeFrameSink(
display::Screen::GetScreen() display::Screen::GetScreen()
->GetDisplayNearestWindow(root_window_) ->GetDisplayNearestWindow(root_window_)
.GetSizeInPixel(); .GetSizeInPixel();
renderer_settings.use_skia_renderer = features::IsUsingSkiaRenderer();
renderer_settings.use_skia_deferred_display_list =
features::IsUsingSkiaDeferredDisplayList();
root_params->frame_sink_id = frame_sink_id_; root_params->frame_sink_id = frame_sink_id_;
root_params->widget = surface_handle_; root_params->widget = surface_handle_;
root_params->gpu_compositing = true; root_params->gpu_compositing = true;
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
// found in the LICENSE file. // found in the LICENSE file.
#include "base/android/application_status_listener.h" #include "base/android/application_status_listener.h"
#include "base/android/build_info.h"
#include "base/base_switches.h" #include "base/base_switches.h"
#include "base/test/scoped_feature_list.h" #include "base/test/scoped_feature_list.h"
#include "components/viz/common/features.h" #include "components/viz/common/features.h"
...@@ -20,6 +21,7 @@ ...@@ -20,6 +21,7 @@
#include "content/test/content_browser_test_utils_internal.h" #include "content/test/content_browser_test_utils_internal.h"
#include "content/test/gpu_browsertest_helpers.h" #include "content/test/gpu_browsertest_helpers.h"
#include "gpu/command_buffer/client/gles2_interface.h" #include "gpu/command_buffer/client/gles2_interface.h"
#include "gpu/config/gpu_finch_features.h"
#include "gpu/ipc/client/gpu_channel_host.h" #include "gpu/ipc/client/gpu_channel_host.h"
#include "net/test/embedded_test_server/embedded_test_server.h" #include "net/test/embedded_test_server/embedded_test_server.h"
#include "ui/android/window_android.h" #include "ui/android/window_android.h"
...@@ -52,7 +54,8 @@ class CompositorImplBrowserTest ...@@ -52,7 +54,8 @@ class CompositorImplBrowserTest
case CompositorImplMode::kVizSkDDL: case CompositorImplMode::kVizSkDDL:
scoped_feature_list_.InitWithFeatures( scoped_feature_list_.InitWithFeatures(
{features::kVizDisplayCompositor, {features::kVizDisplayCompositor,
features::kUseSkiaDeferredDisplayList, features::kUseSkiaRenderer}, features::kUseSkiaDeferredDisplayList, features::kUseSkiaRenderer,
features::kDefaultEnableOopRasterization},
{}); {});
break; break;
} }
...@@ -253,6 +256,13 @@ class CompositorSwapRunLoop { ...@@ -253,6 +256,13 @@ class CompositorSwapRunLoop {
IN_PROC_BROWSER_TEST_P(CompositorImplBrowserTest, IN_PROC_BROWSER_TEST_P(CompositorImplBrowserTest,
CompositorImplReceivesSwapCallbacks) { CompositorImplReceivesSwapCallbacks) {
// OOP-R is required for this test to succeed with SkDDL, but is disabled on
// Android L and lower.
if (GetParam() == CompositorImplMode::kVizSkDDL &&
base::android::BuildInfo::GetInstance()->sdk_int() <
base::android::SDK_VERSION_MARSHMALLOW) {
return;
}
CompositorSwapRunLoop(compositor_impl()).RunUntilSwap(); CompositorSwapRunLoop(compositor_impl()).RunUntilSwap();
} }
......
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