diff options
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 1c61b11cf9..3da0dc9d44 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -797,6 +797,12 @@ void SurfaceFlinger::bootFinished() { })); } +bool shouldUseGraphiteIfCompiledAndSupported() { + return FlagManager::getInstance().graphite_renderengine() || + (FlagManager::getInstance().graphite_renderengine_preview_rollout() && + base::GetBoolProperty(PROPERTY_DEBUG_RENDERENGINE_GRAPHITE_PREVIEW_OPTIN, false)); +} + void chooseRenderEngineType(renderengine::RenderEngineCreationArgs::Builder& builder) { char prop[PROPERTY_VALUE_MAX]; property_get(PROPERTY_DEBUG_RENDERENGINE_BACKEND, prop, ""); @@ -825,14 +831,13 @@ void chooseRenderEngineType(renderengine::RenderEngineCreationArgs::Builder& bui // is used by layertracegenerator (which also needs SurfaceFlinger.cpp). :) #if COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_GRAPHITE_RENDERENGINE || \ COM_ANDROID_GRAPHICS_SURFACEFLINGER_FLAGS_FORCE_COMPILE_GRAPHITE_RENDERENGINE - const bool useGraphite = FlagManager::getInstance().graphite_renderengine() && + const bool useGraphite = shouldUseGraphiteIfCompiledAndSupported() && renderengine::RenderEngine::canSupport(kVulkan); #else const bool useGraphite = false; - if (FlagManager::getInstance().graphite_renderengine()) { - ALOGE("RenderEngine's Graphite Skia backend was requested with the " - "debug.renderengine.graphite system property, but it is not compiled in this " - "build! Falling back to Ganesh backend selection logic."); + if (shouldUseGraphiteIfCompiledAndSupported()) { + ALOGE("RenderEngine's Graphite Skia backend was requested, but it is not compiled in " + "this build! Falling back to Ganesh backend selection logic."); } #endif const bool useVulkan = useGraphite || |