Add sysprop to control HDR headroom

To accelerate tuning of the value allow it to be sysprop driven

Bug: 273624684
Test: change prop, verify silkfx headroom changes after re-launch
Change-Id: Ibad662b7ba06bd821c7a3ce48c19f4c94c716b5e
This commit is contained in:
John Reck
2023-03-14 21:58:26 -04:00
parent 388ddde5fa
commit 342f621ade
3 changed files with 12 additions and 1 deletions

View File

@@ -91,6 +91,8 @@ bool Properties::isHighEndGfx = true;
bool Properties::isLowRam = false;
bool Properties::isSystemOrPersistent = false;
float Properties::maxHdrHeadroomOn8bit = 5.f; // TODO: Refine this number
StretchEffectBehavior Properties::stretchEffectBehavior = StretchEffectBehavior::ShaderHWUI;
DrawingEnabled Properties::drawingEnabled = DrawingEnabled::NotInitialized;
@@ -150,6 +152,11 @@ bool Properties::load() {
enableWebViewOverlays = base::GetBoolProperty(PROPERTY_WEBVIEW_OVERLAYS_ENABLED, true);
auto hdrHeadroom = (float)atof(base::GetProperty(PROPERTY_8BIT_HDR_HEADROOM, "").c_str());
if (hdrHeadroom >= 1.f) {
maxHdrHeadroomOn8bit = std::min(hdrHeadroom, 100.f);
}
// call isDrawingEnabled to force loading of the property
isDrawingEnabled();

View File

@@ -218,6 +218,8 @@ enum DebugLevel {
#define PROPERTY_MEMORY_POLICY "debug.hwui.app_memory_policy"
#define PROPERTY_8BIT_HDR_HEADROOM "debug.hwui.8bit_hdr_headroom"
///////////////////////////////////////////////////////////////////////////////
// Misc
///////////////////////////////////////////////////////////////////////////////
@@ -321,6 +323,8 @@ public:
static bool isLowRam;
static bool isSystemOrPersistent;
static float maxHdrHeadroomOn8bit;
static StretchEffectBehavior getStretchEffectBehavior() {
return stretchEffectBehavior;
}

View File

@@ -311,7 +311,7 @@ float CanvasContext::setColorMode(ColorMode mode) {
}
switch (mColorMode) {
case ColorMode::Hdr:
return 3.f; // TODO: Refine this number
return Properties::maxHdrHeadroomOn8bit;
case ColorMode::Hdr10:
return 10.f;
default: