Commit da645cda authored by Peng Huang's avatar Peng Huang Committed by Commit Bot

Add features for SkiaRenderer and SkiaDDL

Bug: 644851
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: I5457797bc7166e9af193c3ff3f248c146833c58d
Reviewed-on: https://chromium-review.googlesource.com/1055615Reviewed-by: default avatarkylechar <kylechar@chromium.org>
Reviewed-by: default avatarKen Buchanan <kenrb@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarZhenyao Mo <zmo@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558357}
parent a966f756
......@@ -40,6 +40,14 @@ const base::Feature kEnableVizHitTestDrawQuad{
const base::Feature kEnableVizHitTestSurfaceLayer{
"VizHitTestSurfaceLayer", base::FEATURE_DISABLED_BY_DEFAULT};
// Use the SkiaRenderer.
const base::Feature kUseSkiaDeferredDisplayList{
"UseSkiaDeferredDisplayList", base::FEATURE_DISABLED_BY_DEFAULT};
// Use the Skia deferred display list.
const base::Feature kUseSkiaRenderer{"UseSkiaRenderer",
base::FEATURE_DISABLED_BY_DEFAULT};
bool IsSurfaceSynchronizationEnabled() {
auto* command_line = base::CommandLine::ForCurrentProcess();
return base::FeatureList::IsEnabled(kEnableSurfaceSynchronization) ||
......@@ -75,4 +83,14 @@ bool IsDrawOcclusionEnabled() {
return base::FeatureList::IsEnabled(kEnableDrawOcclusion);
}
bool IsUsingSkiaRenderer() {
return base::FeatureList::IsEnabled(kUseSkiaRenderer);
}
bool IsUsingSkiaDeferredDisplayList() {
return IsUsingSkiaRenderer() &&
base::FeatureList::IsEnabled(kUseSkiaDeferredDisplayList) &&
base::FeatureList::IsEnabled(kVizDisplayCompositor);
}
} // namespace features
......@@ -16,6 +16,8 @@ VIZ_COMMON_EXPORT extern const base::Feature kEnableSurfaceSynchronization;
VIZ_COMMON_EXPORT extern const base::Feature kEnableInvariantsViolationLogging;
VIZ_COMMON_EXPORT extern const base::Feature kEnableVizHitTestDrawQuad;
VIZ_COMMON_EXPORT extern const base::Feature kEnableVizHitTestSurfaceLayer;
VIZ_COMMON_EXPORT extern const base::Feature kUseSkiaDeferredDisplayList;
VIZ_COMMON_EXPORT extern const base::Feature kUseSkiaRenderer;
VIZ_COMMON_EXPORT extern const base::Feature kVizDisplayCompositor;
VIZ_COMMON_EXPORT bool IsDrawOcclusionEnabled();
......@@ -24,6 +26,8 @@ VIZ_COMMON_EXPORT bool IsSurfaceInvariantsViolationLoggingEnabled();
VIZ_COMMON_EXPORT bool IsVizHitTestingDrawQuadEnabled();
VIZ_COMMON_EXPORT bool IsVizHitTestingEnabled();
VIZ_COMMON_EXPORT bool IsVizHitTestingSurfaceLayerEnabled();
VIZ_COMMON_EXPORT bool IsUsingSkiaDeferredDisplayList();
VIZ_COMMON_EXPORT bool IsUsingSkiaRenderer();
} // namespace features
......
......@@ -57,10 +57,9 @@ RendererSettings CreateRendererSettings() {
renderer_settings.enable_draw_occlusion = features::IsDrawOcclusionEnabled();
renderer_settings.allow_antialiasing =
!command_line->HasSwitch(switches::kDisableCompositedAntialiasing);
renderer_settings.use_skia_renderer =
command_line->HasSwitch(switches::kUseSkiaRenderer);
renderer_settings.use_skia_renderer = features::IsUsingSkiaRenderer();
renderer_settings.use_skia_deferred_display_list =
command_line->HasSwitch(switches::kUseSkiaDeferredDisplayList);
features::IsUsingSkiaDeferredDisplayList();
#if defined(OS_MACOSX)
renderer_settings.allow_overlays =
ui::RemoteLayerAPISupported() &&
......
......@@ -180,6 +180,12 @@ const GpuFeatureData GetGpuFeatureData(
!base::FeatureList::IsEnabled(features::kVizDisplayCompositor),
"Viz service display compositor is not enabled by default.", false,
false},
{"skia_renderer", gpu::kGpuFeatureStatusEnabled,
!features::IsUsingSkiaRenderer(),
"Skia renderer is not used by default.", false, false},
{"skia_deferred_display_list", gpu::kGpuFeatureStatusEnabled,
!features::IsUsingSkiaDeferredDisplayList(),
"Skia deferred display list is not used by default.", false, false},
};
DCHECK(index < arraysize(kGpuFeatureData));
*eof = (index == arraysize(kGpuFeatureData) - 1);
......@@ -241,6 +247,14 @@ std::unique_ptr<base::DictionaryValue> GetFeatureStatusImpl(
if (base::FeatureList::IsEnabled(features::kVizDisplayCompositor))
status += "_on";
}
if (gpu_feature_data.name == "skia_renderer") {
if (features::IsUsingSkiaRenderer())
status += "_on";
}
if (gpu_feature_data.name == "skia_deferred_display_list") {
if (features::IsUsingSkiaDeferredDisplayList())
status += "_on";
}
}
feature_status_dict->SetString(gpu_feature_data.name, status);
}
......
......@@ -2753,7 +2753,6 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kUseGL,
switches::kUseGpuInTests,
switches::kUseMobileUserAgent,
switches::kUseSkiaRenderer,
switches::kV,
switches::kVideoThreads,
switches::kVideoUnderflowThresholdMs,
......
......@@ -236,6 +236,8 @@ cr.define('gpu', function() {
'vpx_decode': 'VPx Video Decode',
'webgl2': 'WebGL2',
'viz_display_compositor': 'Viz Service Display Compositor',
'skia_renderer': 'Skia Renderer',
'skia_deferred_display_list': 'Skia Deferred Display List',
};
var statusMap = {
......
......@@ -18,6 +18,7 @@
#include "build/build_config.h"
#include "cc/base/switches.h"
#include "cc/test/pixel_test_output_surface.h"
#include "components/viz/common/features.h"
#include "components/viz/common/frame_sinks/copy_output_request.h"
#include "components/viz/test/test_layer_tree_frame_sink.h"
#include "content/browser/bluetooth/bluetooth_device_chooser_controller.h"
......@@ -348,8 +349,7 @@ class LayoutTestDependenciesImpl : public LayoutTestDependencies,
// Keep texture sizes exactly matching the bounds of the RenderPass to avoid
// floating point badness in texcoords.
renderer_settings.dont_round_texture_sizes_for_pixel_tests = true;
renderer_settings.use_skia_renderer =
cmd->HasSwitch(switches::kUseSkiaRenderer);
renderer_settings.use_skia_renderer = features::IsUsingSkiaRenderer();
constexpr bool disable_display_vsync = false;
constexpr double refresh_rate = 60.0;
......
......@@ -100,14 +100,6 @@ const char kUIDisablePartialSwap[] = "ui-disable-partial-swap";
// Red: Overdrawn four or more times.
const char kShowOverdrawFeedback[] = "show-overdraw-feedback";
// Use Skia Deferred Display List, with this option, SkiaRenderer will record
// frames to Skia DDLs and play them back on the GPU thread. This flag is only
// be effective with --use-skia-renderer.
const char kUseSkiaDeferredDisplayList[] = "use-skia-deferred-display-list";
// Use SkiaRenderer instead of GLRenderer for direct rendering.
const char kUseSkiaRenderer[] = "use-skia-renderer";
// Disable re-use of non-exact resources to fulfill ResourcePool requests.
// Intended only for use in layout or pixel tests to reduce noise.
const char kDisallowNonExactResourceReuse[] =
......
......@@ -41,8 +41,6 @@ UI_BASE_EXPORT extern const char kTopChromeMDMaterialHybrid[];
UI_BASE_EXPORT extern const char kTopChromeMDMaterialTouchOptimized[];
UI_BASE_EXPORT extern const char kTopChromeMDMaterialRefresh[];
UI_BASE_EXPORT extern const char kUIDisablePartialSwap[];
UI_BASE_EXPORT extern const char kUseSkiaDeferredDisplayList[];
UI_BASE_EXPORT extern const char kUseSkiaRenderer[];
// Test related.
UI_BASE_EXPORT extern const char kDisallowNonExactResourceReuse[];
......
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