Revert "sdm: comply with treble guidelines"
This reverts commit 2c7883af397db01cd3268500f6548860f60f8cf4.
Change-Id: Ibea21d2235c0b4615336ad7b1436b03a1bdf33d6
CRs-Fixed: 2240944
diff --git a/gralloc/gr_adreno_info.cpp b/gralloc/gr_adreno_info.cpp
index 2e1245c..e8e1896 100644
--- a/gralloc/gr_adreno_info.cpp
+++ b/gralloc/gr_adreno_info.cpp
@@ -75,7 +75,7 @@
// Check if the overriding property debug.gralloc.gfx_ubwc_disable
// that disables UBWC allocations for the graphics stack is set
char property[PROPERTY_VALUE_MAX];
- property_get(DISABLE_UBWC_PROP, property, "0");
+ property_get("debug.gralloc.gfx_ubwc_disable", property, "0");
if (!(strncmp(property, "1", PROPERTY_VALUE_MAX)) ||
!(strncmp(property, "true", PROPERTY_VALUE_MAX))) {
gfx_ubwc_disable_ = true;
diff --git a/gralloc/gralloc_priv.h b/gralloc/gralloc_priv.h
index b69ce2d..7f084a0 100644
--- a/gralloc/gralloc_priv.h
+++ b/gralloc/gralloc_priv.h
@@ -24,13 +24,6 @@
#include <unistd.h>
#include "gr_priv_handle.h"
-#define GRALLOC_PROP_PREFIX "vendor.gralloc."
-#define GRALLOC_PROP(prop_name) GRALLOC_PROP_PREFIX prop_name
-
-#define DISABLE_UBWC_PROP GRALLOC_PROP("disable_ubwc")
-#define ENABLE_FB_UBWC_PROP GRALLOC_PROP("enable_fb_ubwc")
-#define MAP_FB_MEMORY_PROP GRALLOC_PROP("map_fb_memory")
-
#define ROUND_UP_PAGESIZE(x) roundUpToPageSize(x)
inline int roundUpToPageSize(int x) {
return (x + (getpagesize() - 1)) & ~(getpagesize() - 1);
diff --git a/libqdutils/qd_utils.cpp b/libqdutils/qd_utils.cpp
index e1afd7c..25555bf 100644
--- a/libqdutils/qd_utils.cpp
+++ b/libqdutils/qd_utils.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013, 2017 The Linux Foundation. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -94,7 +94,7 @@
case HAS_UBWC:
case HAS_WB_UBWC: // WFD stack still uses this
*value = 1;
- property_get(DISABLE_UBWC_PROP, property, "0");
+ property_get("debug.gralloc.gfx_ubwc_disable", property, "0");
if(!(strncmp(property, "1", PROPERTY_VALUE_MAX)) ||
!(strncmp(property, "true", PROPERTY_VALUE_MAX))) {
*value = 0;
diff --git a/sdm/include/utils/debug.h b/sdm/include/utils/debug.h
index 06714d8..5b9dfa6 100644
--- a/sdm/include/utils/debug.h
+++ b/sdm/include/utils/debug.h
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2014 - 2018, The Linux Foundation. All rights reserved.
+* Copyright (c) 2014 - 2017, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -35,57 +35,6 @@
#include <core/sdm_types.h>
#include <core/display_interface.h>
-#define DISP_PROP_PREFIX "vendor.display."
-#define GRALLOC_PROP_PREFIX "vendor.gralloc."
-#define DISPLAY_PROP(prop_name) DISP_PROP_PREFIX prop_name
-#define GRALLOC_PROP(prop_name) GRALLOC_PROP_PREFIX prop_name
-
-#define COMPOSITION_MASK_PROP DISPLAY_PROP("comp_mask")
-#define HDMI_CONFIG_INDEX_PROP DISPLAY_PROP("hdmi_cfg_idx")
-#define IDLE_TIME_PROP DISPLAY_PROP("idle_time")
-#define IDLE_TIME_INACTIVE_PROP DISPLAY_PROP("idle_time_inactive")
-#define BOOT_ANIMATION_LAYER_COUNT_PROP DISPLAY_PROP("boot_anim_layer_count")
-#define DISABLE_ROTATOR_DOWNSCALE_PROP DISPLAY_PROP("disable_rotator_downscale")
-#define DISABLE_DECIMATION_PROP DISPLAY_PROP("disable_decimation")
-#define PRIMARY_MIXER_STAGES_PROP DISPLAY_PROP("primary_mixer_stages")
-#define EXTERNAL_MIXER_STAGES_PROP DISPLAY_PROP("external_mixer_stages")
-#define VIRTUAL_MIXER_STAGES_PROP DISPLAY_PROP("virtual_mixer_stages")
-#define MAX_UPSCALE_PROP DISPLAY_PROP("max_upscale")
-#define VIDEO_MODE_PANEL_PROP DISPLAY_PROP("video_mode_panel")
-#define DISABLE_ROTATOR_UBWC_PROP DISPLAY_PROP("disable_rotator_ubwc")
-#define DISABLE_ROTATOR_SPLIT_PROP DISPLAY_PROP("disable_rotator_split")
-#define DISABLE_SCALER_PROP DISPLAY_PROP("disable_scaler")
-#define DISABLE_AVR_PROP DISPLAY_PROP("disable_avr")
-#define DISABLE_EXTERNAL_ANIMATION_PROP DISPLAY_PROP("disable_ext_anim")
-#define DISABLE_PARTIAL_SPLIT_PROP DISPLAY_PROP("disable_partial_split")
-#define PREFER_SOURCE_SPLIT_PROP DISPLAY_PROP("prefer_source_split")
-#define MIXER_RESOLUTION_PROP DISPLAY_PROP("mixer_resolution")
-#define SIMULATED_CONFIG_PROP DISPLAY_PROP("simulated_config")
-#define MAX_EXTERNAL_LAYERS_PROP DISPLAY_PROP("max_external_layers")
-#define PERF_HINT_WINDOW_PROP DISPLAY_PROP("perf_hint_window")
-#define ENABLE_EXTERNAL_DOWNSCALE_PROP DISPLAY_PROP("enable_external_downscale")
-#define EXTERNAL_ACTION_SAFE_WIDTH_PROP DISPLAY_PROP("external_action_safe_width")
-#define EXTERNAL_ACTION_SAFE_HEIGHT_PROP DISPLAY_PROP("external_action_safe_height")
-#define FB_WIDTH_PROP DISPLAY_PROP("fb_width")
-#define FB_HEIGHT_PROP DISPLAY_PROP("fb_height")
-#define DISABLE_METADATA_DYNAMIC_FPS_PROP DISPLAY_PROP("disable_metadata_dynamic_fps")
-#define DISABLE_BLIT_COMPOSITION_PROP DISPLAY_PROP("disable_blit_comp")
-#define DISABLE_SKIP_VALIDATE_PROP DISPLAY_PROP("disable_skip_validate")
-#define HDMI_S3D_MODE_PROP DISPLAY_PROP("hdmi_s3d_mode")
-#define DISABLE_DESTINATION_SCALER_PROP DISPLAY_PROP("disable_dest_scaler")
-#define DISABLE_UBWC_PROP GRALLOC_PROP("disable_ubwc")
-#define ENABLE_FB_UBWC_PROP GRALLOC_PROP("enable_fb_ubwc")
-#define MAP_FB_MEMORY_PROP GRALLOC_PROP("map_fb_memory")
-
-#define MAX_BLIT_FACTOR_PROP DISPLAY_PROP("max_blit_factor")
-#define DISABLE_SECURE_INLINE_ROTATOR_PROP DISPLAY_PROP("disable_secure_inline_rotator")
-#define DISABLE_MULTIRECT_PROP DISPLAY_PROP("disable_multirect")
-#define DISABLE_UBWC_FF_VOTING_PROP DISPLAY_PROP("disable_ubwc_ff_voting")
-#define DISABLE_INLINE_ROTATOR_PROP DISPLAY_PROP("disable_inline_rotator")
-#define DISABLE_FB_CROPPING_PROP DISPLAY_PROP("disable_fb_cropping")
-#define PRIORITIZE_CACHE_COMPOSITION_PROP DISPLAY_PROP("prioritize_cache_comp")
-#define ENABLE_PIPE_PRIORITY_PROP DISPLAY_PROP("enable_pipe_priority")
-
namespace sdm {
using display::DebugHandler;
diff --git a/sdm/libs/core/display_hdmi.cpp b/sdm/libs/core/display_hdmi.cpp
index 3165f73..c72bc1e 100644
--- a/sdm/libs/core/display_hdmi.cpp
+++ b/sdm/libs/core/display_hdmi.cpp
@@ -55,7 +55,7 @@
uint32_t active_mode_index;
char value[64] = "0";
- Debug::GetProperty(HDMI_S3D_MODE_PROP, value);
+ Debug::GetProperty("sdm.hdmi.s3d_mode", value);
HWS3DMode mode = (HWS3DMode)atoi(value);
if (mode > kS3DModeNone && mode < kS3DModeMax) {
active_mode_index = GetBestConfig(mode);
diff --git a/sdm/libs/core/drm/hw_info_drm.cpp b/sdm/libs/core/drm/hw_info_drm.cpp
index 210e8ff..9cefc8b 100644
--- a/sdm/libs/core/drm/hw_info_drm.cpp
+++ b/sdm/libs/core/drm/hw_info_drm.cpp
@@ -208,7 +208,7 @@
// through property
int value = 0;
bool disable_dest_scalar = false;
- if (Debug::GetProperty(DISABLE_DESTINATION_SCALER_PROP, &value) == kErrorNone) {
+ if (Debug::GetProperty("sdm.debug.disable_dest_scalar", &value) == kErrorNone) {
disable_dest_scalar = (value == 1);
}
DynLib extension_lib;
diff --git a/sdm/libs/hwc2/cpuhint.cpp b/sdm/libs/hwc2/cpuhint.cpp
index ca88ead..551fa24 100644
--- a/sdm/libs/hwc2/cpuhint.cpp
+++ b/sdm/libs/hwc2/cpuhint.cpp
@@ -46,7 +46,7 @@
}
int pre_enable_window = -1;
- debug_handler->GetProperty(PERF_HINT_WINDOW_PROP, &pre_enable_window);
+ debug_handler->GetProperty("sdm.perf_hint_window", &pre_enable_window);
if (pre_enable_window <= 0) {
DLOGI("Invalid CPU Hint Pre-enable Window %d", pre_enable_window);
return kErrorNotSupported;
diff --git a/sdm/libs/hwc2/hwc_debugger.cpp b/sdm/libs/hwc2/hwc_debugger.cpp
index e92f170..39416c5 100644
--- a/sdm/libs/hwc2/hwc_debugger.cpp
+++ b/sdm/libs/hwc2/hwc_debugger.cpp
@@ -29,7 +29,6 @@
#include <utils/constants.h>
#include <cutils/properties.h>
-#include <utils/debug.h>
#include "hwc_debugger.h"
@@ -212,7 +211,7 @@
int HWCDebugHandler::GetIdleTimeoutMs() {
int value = IDLE_TIMEOUT_DEFAULT_MS;
- debug_handler_.GetProperty(IDLE_TIME_PROP, &value);
+ debug_handler_.GetProperty("sdm.idle_time", &value);
return value;
}
diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp
index 695f93f..6ae9532 100644
--- a/sdm/libs/hwc2/hwc_display.cpp
+++ b/sdm/libs/hwc2/hwc_display.cpp
@@ -383,7 +383,7 @@
client_target_ = new HWCLayer(id_, buffer_allocator_);
int blit_enabled = 0;
- HWCDebugHandler::Get()->GetProperty(DISABLE_BLIT_COMPOSITION_PROP, &blit_enabled);
+ HWCDebugHandler::Get()->GetProperty("persist.hwc.blit.comp", &blit_enabled);
if (needs_blit_ && blit_enabled) {
// TODO(user): Add blit engine when needed
}
@@ -1534,7 +1534,7 @@
// By default UBWC is enabled and below property is global enable/disable for all
// buffers allocated through gralloc , including framebuffer targets.
- HWCDebugHandler::Get()->GetProperty(DISABLE_UBWC_PROP, &ubwc_disabled);
+ HWCDebugHandler::Get()->GetProperty("debug.gralloc.gfx_ubwc_disable", &ubwc_disabled);
if (!ubwc_disabled) {
usage |= GRALLOC_USAGE_PRIVATE_ALLOC_UBWC;
flags |= private_handle_t::PRIV_FLAGS_UBWC_ALIGNED;
diff --git a/sdm/libs/hwc2/hwc_display_external.cpp b/sdm/libs/hwc2/hwc_display_external.cpp
index 998bedb..8e253de 100644
--- a/sdm/libs/hwc2/hwc_display_external.cpp
+++ b/sdm/libs/hwc2/hwc_display_external.cpp
@@ -77,7 +77,7 @@
external_height = primary_height;
} else {
int downscale_enabled = 0;
- HWCDebugHandler::Get()->GetProperty(ENABLE_EXTERNAL_DOWNSCALE_PROP, &downscale_enabled);
+ HWCDebugHandler::Get()->GetProperty("sdm.debug.downscale_external", &downscale_enabled);
if (downscale_enabled) {
GetDownscaleResolution(primary_width, primary_height, &external_width, &external_height);
}
@@ -267,8 +267,8 @@
void HWCDisplayExternal::GetUnderScanConfig() {
if (!display_intf_->IsUnderscanSupported()) {
// Read user defined underscan width and height
- HWCDebugHandler::Get()->GetProperty(EXTERNAL_ACTION_SAFE_WIDTH_PROP, &underscan_width_);
- HWCDebugHandler::Get()->GetProperty(EXTERNAL_ACTION_SAFE_HEIGHT_PROP, &underscan_height_);
+ HWCDebugHandler::Get()->GetProperty("sdm.external_action_safe_width", &underscan_width_);
+ HWCDebugHandler::Get()->GetProperty("sdm.external_action_safe_height", &underscan_height_);
}
}
diff --git a/sdm/libs/hwc2/hwc_display_primary.cpp b/sdm/libs/hwc2/hwc_display_primary.cpp
index 5b37298..8b98958 100644
--- a/sdm/libs/hwc2/hwc_display_primary.cpp
+++ b/sdm/libs/hwc2/hwc_display_primary.cpp
@@ -62,8 +62,8 @@
hwc_display_primary->GetMixerResolution(&primary_width, &primary_height);
int width = 0, height = 0;
- HWCDebugHandler::Get()->GetProperty(FB_WIDTH_PROP, &width);
- HWCDebugHandler::Get()->GetProperty(FB_HEIGHT_PROP, &height);
+ HWCDebugHandler::Get()->GetProperty("sdm.fb_size_width", &width);
+ HWCDebugHandler::Get()->GetProperty("sdm.fb_size_height", &height);
if (width > 0 && height > 0) {
primary_width = UINT32(width);
primary_height = UINT32(height);
@@ -102,7 +102,7 @@
use_metadata_refresh_rate_ = true;
int disable_metadata_dynfps = 0;
- HWCDebugHandler::Get()->GetProperty(DISABLE_METADATA_DYNAMIC_FPS_PROP, &disable_metadata_dynfps);
+ HWCDebugHandler::Get()->GetProperty("persist.metadata_dynfps.disable", &disable_metadata_dynfps);
if (disable_metadata_dynfps) {
use_metadata_refresh_rate_ = false;
}
@@ -362,7 +362,7 @@
void HWCDisplayPrimary::SetMetaDataRefreshRateFlag(bool enable) {
int disable_metadata_dynfps = 0;
- HWCDebugHandler::Get()->GetProperty(DISABLE_METADATA_DYNAMIC_FPS_PROP, &disable_metadata_dynfps);
+ HWCDebugHandler::Get()->GetProperty("persist.metadata_dynfps.disable", &disable_metadata_dynfps);
if (disable_metadata_dynfps) {
return;
}
diff --git a/sdm/libs/hwc2/hwc_session.cpp b/sdm/libs/hwc2/hwc_session.cpp
index ed34b6c..ca04d40 100644
--- a/sdm/libs/hwc2/hwc_session.cpp
+++ b/sdm/libs/hwc2/hwc_session.cpp
@@ -300,7 +300,7 @@
int value = 0;
bool disable_skip_validate = false;
- if (Debug::Get()->GetProperty(DISABLE_SKIP_VALIDATE_PROP, &value) == kErrorNone) {
+ if (Debug::Get()->GetProperty("sdm.debug.disable_skip_validate", &value) == kErrorNone) {
disable_skip_validate = (value == 1);
}
uint32_t count = 1 + (disable_skip_validate ? 0 : 1);
diff --git a/sdm/libs/utils/debug.cpp b/sdm/libs/utils/debug.cpp
index 05d5c7b..62a6cad 100644
--- a/sdm/libs/utils/debug.cpp
+++ b/sdm/libs/utils/debug.cpp
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2014 - 2018, The Linux Foundation. All rights reserved.
+* Copyright (c) 2014 - 2017, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -37,14 +37,14 @@
int Debug::GetSimulationFlag() {
int value = 0;
- DebugHandler::Get()->GetProperty(COMPOSITION_MASK_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.composition_simulation", &value);
return value;
}
bool Debug::GetExternalResolution(char *value) {
uint32_t retval = 0;
- DebugHandler::Get()->GetProperty(HDMI_CONFIG_INDEX_PROP, value);
+ DebugHandler::Get()->GetProperty("hw.hdmi.resolution", value);
if (value[0]) {
retval = 1;
}
@@ -56,8 +56,8 @@
int active_val = IDLE_TIMEOUT_ACTIVE_MS;
int inactive_val = IDLE_TIMEOUT_INACTIVE_MS;
- DebugHandler::Get()->GetProperty(IDLE_TIME_PROP, &active_val);
- DebugHandler::Get()->GetProperty(IDLE_TIME_INACTIVE_PROP, &inactive_val);
+ DebugHandler::Get()->GetProperty("sdm.idle_time", &active_val);
+ DebugHandler::Get()->GetProperty("sdm.idle_time.inactive", &inactive_val);
*active_ms = UINT32(active_val);
*inactive_ms = UINT32(inactive_val);
@@ -65,21 +65,21 @@
int Debug::GetBootAnimLayerCount() {
int value = 0;
- DebugHandler::Get()->GetProperty(BOOT_ANIMATION_LAYER_COUNT_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.boot_anim_layer_count", &value);
return value;
}
bool Debug::IsRotatorDownScaleDisabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(DISABLE_ROTATOR_DOWNSCALE_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.debug.rotator_downscale", &value);
return (value == 1);
}
bool Debug::IsDecimationDisabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(DISABLE_DECIMATION_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.disable_decimation", &value);
return (value == 1);
}
@@ -88,13 +88,13 @@
int value = -1;
switch (display_type) {
case kPrimary:
- DebugHandler::Get()->GetProperty(PRIMARY_MIXER_STAGES_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.primary.mixer_stages", &value);
break;
case kHDMI:
- DebugHandler::Get()->GetProperty(EXTERNAL_MIXER_STAGES_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.external.mixer_stages", &value);
break;
case kVirtual:
- DebugHandler::Get()->GetProperty(VIRTUAL_MIXER_STAGES_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.virtual.mixer_stages", &value);
break;
default:
break;
@@ -105,35 +105,35 @@
int Debug::GetMaxUpscale() {
int value = 0;
- DebugHandler::Get()->GetProperty(MAX_UPSCALE_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.max_upscale", &value);
return value;
}
bool Debug::IsVideoModeEnabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(VIDEO_MODE_PANEL_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.video_mode_panel", &value);
return (value == 1);
}
bool Debug::IsRotatorUbwcDisabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(DISABLE_ROTATOR_UBWC_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.debug.rotator_disable_ubwc", &value);
return (value == 1);
}
bool Debug::IsRotatorSplitDisabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(DISABLE_ROTATOR_SPLIT_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.debug.disable_rotator_split", &value);
return (value == 1);
}
bool Debug::IsScalarDisabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(DISABLE_SCALER_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.debug.disable_scalar", &value);
return (value == 1);
}
@@ -142,10 +142,10 @@
int ubwc_disabled = 0;
int ubwc_framebuffer = 0;
- DebugHandler::Get()->GetProperty(DISABLE_UBWC_PROP, &ubwc_disabled);
+ DebugHandler::Get()->GetProperty("debug.gralloc.gfx_ubwc_disable", &ubwc_disabled);
if (!ubwc_disabled) {
- DebugHandler::Get()->GetProperty(ENABLE_FB_UBWC_PROP, &ubwc_framebuffer);
+ DebugHandler::Get()->GetProperty("debug.gralloc.enable_fb_ubwc", &ubwc_framebuffer);
}
return (ubwc_framebuffer == 1);
@@ -153,28 +153,28 @@
bool Debug::IsAVRDisabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(DISABLE_AVR_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.debug.disable_avr", &value);
return (value == 1);
}
bool Debug::IsExtAnimDisabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(DISABLE_EXTERNAL_ANIMATION_PROP, &value);
+ DebugHandler::Get()->GetProperty("sys.disable_ext_animation", &value);
return (value == 1);
}
bool Debug::IsPartialSplitDisabled() {
int value = 0;
- DebugHandler::Get()->GetProperty(DISABLE_PARTIAL_SPLIT_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.debug.disable_partial_split", &value);
return (value == 1);
}
bool Debug::IsSrcSplitPreferred() {
int value = 0;
- DebugHandler::Get()->GetProperty(PREFER_SOURCE_SPLIT_PROP, &value);
+ DebugHandler::Get()->GetProperty("sdm.debug.prefersplit", &value);
return (value == 1);
}
@@ -182,7 +182,7 @@
DisplayError Debug::GetMixerResolution(uint32_t *width, uint32_t *height) {
char value[64] = {};
- int error = DebugHandler::Get()->GetProperty(MIXER_RESOLUTION_PROP, value);
+ int error = DebugHandler::Get()->GetProperty("sdm.mixer_resolution", value);
if (error != 0) {
return kErrorUndefined;
}
@@ -198,7 +198,7 @@
DisplayError Debug::GetReducedConfig(uint32_t *num_vig_pipes, uint32_t *num_dma_pipes) {
char value[64] = {};
- int error = DebugHandler::Get()->GetProperty(SIMULATED_CONFIG_PROP, value);
+ int error = DebugHandler::Get()->GetProperty("sdm.debug.reduced_config", value);
if (error != 0) {
return kErrorUndefined;
}
@@ -213,7 +213,7 @@
int Debug::GetExtMaxlayers() {
int max_external_layers = 0;
- DebugHandler::Get()->GetProperty(MAX_EXTERNAL_LAYERS_PROP, &max_external_layers);
+ DebugHandler::Get()->GetProperty("sdm.max_external_layers", &max_external_layers);
return std::max(max_external_layers, 2);
}