diff options
-rw-r--r-- | libs/hwui/Android.bp | 1 | ||||
-rw-r--r-- | libs/hwui/HWUIProperties.sysprop | 9 | ||||
-rw-r--r-- | libs/hwui/Properties.cpp | 8 |
3 files changed, 17 insertions, 1 deletions
diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp index 0503f36ec074..6585bfc929ba 100644 --- a/libs/hwui/Android.bp +++ b/libs/hwui/Android.bp @@ -208,6 +208,7 @@ cc_defaults { "FrameInfoVisualizer.cpp", "GpuMemoryTracker.cpp", "HardwareBitmapUploader.cpp", + "HWUIProperties.sysprop", "Interpolator.cpp", "JankTracker.cpp", "Layer.cpp", diff --git a/libs/hwui/HWUIProperties.sysprop b/libs/hwui/HWUIProperties.sysprop new file mode 100644 index 000000000000..42191ca6f514 --- /dev/null +++ b/libs/hwui/HWUIProperties.sysprop @@ -0,0 +1,9 @@ +owner: Platform +module: "android.uirenderer" +prop { + api_name: "use_vulkan" + type: Boolean + prop_name: "ro.hwui.use_vulkan" + scope: Public + access: Readonly +} diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp index 8067313b2cb2..046ffc4da5ea 100644 --- a/libs/hwui/Properties.cpp +++ b/libs/hwui/Properties.cpp @@ -18,6 +18,7 @@ #include "Debug.h" #include "DeviceInfo.h" #include "SkTraceEventCommon.h" +#include "HWUIProperties.sysprop.h" #include <algorithm> #include <cstdlib> @@ -174,8 +175,13 @@ RenderPipelineType Properties::getRenderPipelineType() { if (sRenderPipelineType != RenderPipelineType::NotInitialized) { return sRenderPipelineType; } + bool useVulkan = use_vulkan().value_or(false); char prop[PROPERTY_VALUE_MAX]; - property_get(PROPERTY_RENDERER, prop, "skiagl"); + if (useVulkan) { + property_get(PROPERTY_RENDERER, prop, "skiavk"); + } else { + property_get(PROPERTY_RENDERER, prop, "skiagl"); + } if (!strcmp(prop, "skiavk")) { ALOGD("Skia Vulkan Pipeline"); sRenderPipelineType = RenderPipelineType::SkiaVulkan; |