Implement runtime switch to select default renderer mode

Add a system property debug.hwui.default_renderer, which allows
to set rendering mode to OpenGL (default), Skia OpenGL or Vulkan.

Change-Id: I8bca5bacc5108f77437e340ac61f2d8db8cc4c39
diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp
index 112ba11..d0ae1d4 100644
--- a/libs/hwui/Properties.cpp
+++ b/libs/hwui/Properties.cpp
@@ -63,6 +63,7 @@
 
 ProfileType Properties::sProfileType = ProfileType::None;
 bool Properties::sDisableProfileBars = false;
+RenderPipelineType Properties::sRenderPipelineType = RenderPipelineType::NotInitialized;
 
 bool Properties::waitForGpuCompletion = false;
 bool Properties::forceDrawFrame = false;
@@ -205,5 +206,21 @@
     return sProfileType;
 }
 
+RenderPipelineType Properties::getRenderPipelineType() {
+    if (RenderPipelineType::NotInitialized != sRenderPipelineType) {
+        return sRenderPipelineType;
+    }
+    char prop[PROPERTY_VALUE_MAX];
+    property_get(PROPERTY_DEFAULT_RENDERER, prop, "opengl");
+    if (!strcmp(prop, "skiagl") ) {
+        sRenderPipelineType = RenderPipelineType::SkiaGL;
+    } else if (!strcmp(prop, "vulkan") ) {
+        sRenderPipelineType = RenderPipelineType::Vulkan;
+    } else { //"opengl"
+        sRenderPipelineType = RenderPipelineType::OpenGL;
+    }
+    return sRenderPipelineType;
+}
+
 }; // namespace uirenderer
 }; // namespace android