12507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik/*
22507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * Copyright (C) 2015 The Android Open Source Project
32507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik *
42507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * Licensed under the Apache License, Version 2.0 (the "License");
52507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * you may not use this file except in compliance with the License.
62507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * You may obtain a copy of the License at
72507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik *
82507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik *      http://www.apache.org/licenses/LICENSE-2.0
92507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik *
102507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * Unless required by applicable law or agreed to in writing, software
112507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * distributed under the License is distributed on an "AS IS" BASIS,
122507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * See the License for the specific language governing permissions and
142507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik * limitations under the License.
152507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik */
162507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik#include "Properties.h"
172507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
182507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik#include "Debug.h"
192507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
206b50780363d3bb8db600c770183fa07677509ae8John Reck#include <cutils/compiler.h>
212507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik#include <cutils/log.h>
226b50780363d3bb8db600c770183fa07677509ae8John Reck#include <cutils/properties.h>
236b50780363d3bb8db600c770183fa07677509ae8John Reck
246b50780363d3bb8db600c770183fa07677509ae8John Reck#include <algorithm>
256b50780363d3bb8db600c770183fa07677509ae8John Reck#include <cstdlib>
262507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
272507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craiknamespace android {
282507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craiknamespace uirenderer {
292507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
302507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikbool Properties::drawDeferDisabled = false;
312507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikbool Properties::drawReorderDisabled = false;
322507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikbool Properties::debugLayersUpdates = false;
332507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikbool Properties::debugOverdraw = false;
342507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikbool Properties::showDirtyRegions = false;
35d04794a9a3f9edc8b7ca336175d66eb81a8f55faJohn Reckbool Properties::skipEmptyFrames = true;
36149173d28c0843aba86b0810ce75b34be6a0d08fJohn Reckbool Properties::useBufferAge = true;
37149173d28c0843aba86b0810ce75b34be6a0d08fJohn Reckbool Properties::enablePartialUpdates = true;
382507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
39c08820f587ad94698691a6657e87712de07e484cChris Craikfloat Properties::textGamma = DEFAULT_TEXT_GAMMA;
4048a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik
4148a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::fboCacheSize = DEFAULT_FBO_CACHE_SIZE;
4248a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::gradientCacheSize = MB(DEFAULT_GRADIENT_CACHE_SIZE);
4348a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::layerPoolSize = MB(DEFAULT_LAYER_CACHE_SIZE);
4448a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::patchCacheSize = KB(DEFAULT_PATCH_CACHE_SIZE);
4548a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::pathCacheSize = MB(DEFAULT_PATH_CACHE_SIZE);
4648a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::renderBufferCacheSize = MB(DEFAULT_RENDER_BUFFER_CACHE_SIZE);
4748a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::tessellationCacheSize = MB(DEFAULT_VERTEX_CACHE_SIZE);
4848a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::textDropShadowCacheSize = MB(DEFAULT_DROP_SHADOW_CACHE_SIZE);
4948a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikint Properties::textureCacheSize = MB(DEFAULT_TEXTURE_CACHE_SIZE);
5048a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik
5148a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craikfloat Properties::textureCacheFlushRate = DEFAULT_TEXTURE_CACHE_FLUSH_RATE;
52c08820f587ad94698691a6657e87712de07e484cChris Craik
532507c34d91bb0d722b6012e85cb47387b2aa6873Chris CraikDebugLevel Properties::debugLevel = kDebugDisabled;
542507c34d91bb0d722b6012e85cb47387b2aa6873Chris CraikOverdrawColorSet Properties::overdrawColorSet = OverdrawColorSet::Default;
552507c34d91bb0d722b6012e85cb47387b2aa6873Chris CraikStencilClipDebug Properties::debugStencilClip = StencilClipDebug::Hide;
562507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
572507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikfloat Properties::overrideLightRadius = -1.0f;
582507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikfloat Properties::overrideLightPosY = -1.0f;
592507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikfloat Properties::overrideLightPosZ = -1.0f;
602507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikfloat Properties::overrideAmbientRatio = -1.0f;
612507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikint Properties::overrideAmbientShadowStrength = -1;
622507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikint Properties::overrideSpotShadowStrength = -1;
632507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
642507c34d91bb0d722b6012e85cb47387b2aa6873Chris CraikProfileType Properties::sProfileType = ProfileType::None;
652507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikbool Properties::sDisableProfileBars = false;
662507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
67682573c84b7c21dc8ce4a2375da3961147442c4aJohn Reckbool Properties::waitForGpuCompletion = false;
68682573c84b7c21dc8ce4a2375da3961147442c4aJohn Reck
69c7cd9cf25d9775446ffcb6b5f20b0a4c1e3c99c5John Reckbool Properties::filterOutTestOverhead = false;
70c7cd9cf25d9775446ffcb6b5f20b0a4c1e3c99c5John Reck
719fded232a9548a304e0145011df8849fba0dcda7Chris Craikstatic int property_get_int(const char* key, int defaultValue) {
729fded232a9548a304e0145011df8849fba0dcda7Chris Craik    char buf[PROPERTY_VALUE_MAX] = {'\0',};
739fded232a9548a304e0145011df8849fba0dcda7Chris Craik
749fded232a9548a304e0145011df8849fba0dcda7Chris Craik    if (property_get(key, buf, "") > 0) {
759fded232a9548a304e0145011df8849fba0dcda7Chris Craik        return atoi(buf);
769fded232a9548a304e0145011df8849fba0dcda7Chris Craik    }
779fded232a9548a304e0145011df8849fba0dcda7Chris Craik    return defaultValue;
789fded232a9548a304e0145011df8849fba0dcda7Chris Craik}
799fded232a9548a304e0145011df8849fba0dcda7Chris Craik
80c08820f587ad94698691a6657e87712de07e484cChris Craikstatic float property_get_float(const char* key, float defaultValue) {
81c08820f587ad94698691a6657e87712de07e484cChris Craik    char buf[PROPERTY_VALUE_MAX] = {'\0',};
82c08820f587ad94698691a6657e87712de07e484cChris Craik
839fded232a9548a304e0145011df8849fba0dcda7Chris Craik    if (property_get(key, buf, "") > 0) {
84c08820f587ad94698691a6657e87712de07e484cChris Craik        return atof(buf);
85c08820f587ad94698691a6657e87712de07e484cChris Craik    }
86c08820f587ad94698691a6657e87712de07e484cChris Craik    return defaultValue;
87c08820f587ad94698691a6657e87712de07e484cChris Craik}
88c08820f587ad94698691a6657e87712de07e484cChris Craik
892507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikbool Properties::load() {
902507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    char property[PROPERTY_VALUE_MAX];
912507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    bool prevDebugLayersUpdates = debugLayersUpdates;
922507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    bool prevDebugOverdraw = debugOverdraw;
932507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    StencilClipDebug prevDebugStencilClip = debugStencilClip;
942507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
952507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    debugOverdraw = false;
962507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    if (property_get(PROPERTY_DEBUG_OVERDRAW, property, nullptr) > 0) {
972507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        INIT_LOGD("  Overdraw debug enabled: %s", property);
982507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        if (!strcmp(property, "show")) {
992507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            debugOverdraw = true;
1002507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            overdrawColorSet = OverdrawColorSet::Default;
1012507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        } else if (!strcmp(property, "show_deuteranomaly")) {
1022507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            debugOverdraw = true;
1032507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            overdrawColorSet = OverdrawColorSet::Deuteranomaly;
1042507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        }
1052507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    }
1062507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
1072507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    // See Properties.h for valid values
1082507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    if (property_get(PROPERTY_DEBUG_STENCIL_CLIP, property, nullptr) > 0) {
1092507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        INIT_LOGD("  Stencil clip debug enabled: %s", property);
1102507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        if (!strcmp(property, "hide")) {
1112507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            debugStencilClip = StencilClipDebug::Hide;
1122507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        } else if (!strcmp(property, "highlight")) {
1132507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            debugStencilClip = StencilClipDebug::ShowHighlight;
1142507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        } else if (!strcmp(property, "region")) {
1152507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            debugStencilClip = StencilClipDebug::ShowRegion;
1162507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        }
1172507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    } else {
1182507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        debugStencilClip = StencilClipDebug::Hide;
1192507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    }
1202507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
1212507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    sProfileType = ProfileType::None;
1222507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    if (property_get(PROPERTY_PROFILE, property, "") > 0) {
1232507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        if (!strcmp(property, PROPERTY_PROFILE_VISUALIZE_BARS)) {
1242507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            sProfileType = ProfileType::Bars;
1252507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        } else if (!strcmp(property, "true")) {
1262507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            sProfileType = ProfileType::Console;
1272507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        }
1282507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    }
1292507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
1302507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    debugLayersUpdates = property_get_bool(PROPERTY_DEBUG_LAYERS_UPDATES, false);
1312507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    INIT_LOGD("  Layers updates debug enabled: %d", debugLayersUpdates);
1322507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
1332507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    drawDeferDisabled = property_get_bool(PROPERTY_DISABLE_DRAW_DEFER, false);
1342507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    INIT_LOGD("  Draw defer %s", drawDeferDisabled ? "disabled" : "enabled");
1352507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
1362507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    drawReorderDisabled = property_get_bool(PROPERTY_DISABLE_DRAW_REORDER, false);
1372507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    INIT_LOGD("  Draw reorder %s", drawReorderDisabled ? "disabled" : "enabled");
1382507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
1392507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    showDirtyRegions = property_get_bool(PROPERTY_DEBUG_SHOW_DIRTY_REGIONS, false);
1402507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
1419fded232a9548a304e0145011df8849fba0dcda7Chris Craik    debugLevel = (DebugLevel) property_get_int(PROPERTY_DEBUG, kDebugDisabled);
1422507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
143d04794a9a3f9edc8b7ca336175d66eb81a8f55faJohn Reck    skipEmptyFrames = property_get_bool(PROPERTY_SKIP_EMPTY_DAMAGE, true);
144149173d28c0843aba86b0810ce75b34be6a0d08fJohn Reck    useBufferAge = property_get_bool(PROPERTY_USE_BUFFER_AGE, true);
145149173d28c0843aba86b0810ce75b34be6a0d08fJohn Reck    enablePartialUpdates = property_get_bool(PROPERTY_ENABLE_PARTIAL_UPDATES, true);
146d04794a9a3f9edc8b7ca336175d66eb81a8f55faJohn Reck
147c08820f587ad94698691a6657e87712de07e484cChris Craik    textGamma = property_get_float(PROPERTY_TEXT_GAMMA, DEFAULT_TEXT_GAMMA);
14848a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik
14948a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    fboCacheSize = property_get_int(PROPERTY_FBO_CACHE_SIZE, DEFAULT_FBO_CACHE_SIZE);
15048a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    gradientCacheSize = MB(property_get_float(PROPERTY_GRADIENT_CACHE_SIZE, DEFAULT_GRADIENT_CACHE_SIZE));
1519fded232a9548a304e0145011df8849fba0dcda7Chris Craik    layerPoolSize = MB(property_get_float(PROPERTY_LAYER_CACHE_SIZE, DEFAULT_LAYER_CACHE_SIZE));
15248a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    patchCacheSize = KB(property_get_float(PROPERTY_PATCH_CACHE_SIZE, DEFAULT_PATCH_CACHE_SIZE));
15348a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    pathCacheSize = MB(property_get_float(PROPERTY_PATH_CACHE_SIZE, DEFAULT_PATH_CACHE_SIZE));
15448a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    renderBufferCacheSize = MB(property_get_float(PROPERTY_RENDER_BUFFER_CACHE_SIZE, DEFAULT_RENDER_BUFFER_CACHE_SIZE));
15548a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    tessellationCacheSize = MB(property_get_float(PROPERTY_VERTEX_CACHE_SIZE, DEFAULT_VERTEX_CACHE_SIZE));
15648a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    textDropShadowCacheSize = MB(property_get_float(PROPERTY_DROP_SHADOW_CACHE_SIZE, DEFAULT_DROP_SHADOW_CACHE_SIZE));
15748a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    textureCacheSize = MB(property_get_float(PROPERTY_TEXTURE_CACHE_SIZE, DEFAULT_TEXTURE_CACHE_SIZE));
15848a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik    textureCacheFlushRate = std::max(0.0f, std::min(1.0f,
15948a8f431fa52ae2ee25ffba9d20676f03bb710ffChris Craik            property_get_float(PROPERTY_TEXTURE_CACHE_FLUSH_RATE, DEFAULT_TEXTURE_CACHE_FLUSH_RATE)));
160c08820f587ad94698691a6657e87712de07e484cChris Craik
161c7cd9cf25d9775446ffcb6b5f20b0a4c1e3c99c5John Reck    filterOutTestOverhead = property_get_bool(PROPERTY_FILTER_TEST_OVERHEAD, false);
162c7cd9cf25d9775446ffcb6b5f20b0a4c1e3c99c5John Reck
1632507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    return (prevDebugLayersUpdates != debugLayersUpdates)
1642507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            || (prevDebugOverdraw != debugOverdraw)
1652507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik            || (prevDebugStencilClip != debugStencilClip);
1662507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik}
1672507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
1682507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craikvoid Properties::overrideProperty(const char* name, const char* value) {
1692507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    if (!strcmp(name, "disableProfileBars")) {
1702507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        sDisableProfileBars = !strcmp(value, "true");
1712507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        ALOGD("profile bars %s", sDisableProfileBars ? "disabled" : "enabled");
1722507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        return;
1732507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    } else if (!strcmp(name, "ambientRatio")) {
174e6a15ee3d0c78eb3f2551d73a7d238c3d8d2f075Chris Craik        overrideAmbientRatio = std::min(std::max(atof(value), 0.0), 10.0);
1752507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        ALOGD("ambientRatio = %.2f", overrideAmbientRatio);
1762507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        return;
1772507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    } else if (!strcmp(name, "lightRadius")) {
178e6a15ee3d0c78eb3f2551d73a7d238c3d8d2f075Chris Craik        overrideLightRadius = std::min(std::max(atof(value), 0.0), 3000.0);
1792507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        ALOGD("lightRadius = %.2f", overrideLightRadius);
1802507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        return;
1812507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    } else if (!strcmp(name, "lightPosY")) {
182e6a15ee3d0c78eb3f2551d73a7d238c3d8d2f075Chris Craik        overrideLightPosY = std::min(std::max(atof(value), 0.0), 3000.0);
1832507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        ALOGD("lightPos Y = %.2f", overrideLightPosY);
1842507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        return;
1852507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    } else if (!strcmp(name, "lightPosZ")) {
186e6a15ee3d0c78eb3f2551d73a7d238c3d8d2f075Chris Craik        overrideLightPosZ = std::min(std::max(atof(value), 0.0), 3000.0);
1872507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        ALOGD("lightPos Z = %.2f", overrideLightPosZ);
1882507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        return;
1892507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    } else if (!strcmp(name, "ambientShadowStrength")) {
1902507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        overrideAmbientShadowStrength = atoi(value);
1912507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        ALOGD("ambient shadow strength = 0x%x out of 0xff", overrideAmbientShadowStrength);
1922507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        return;
1932507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    } else if (!strcmp(name, "spotShadowStrength")) {
1942507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        overrideSpotShadowStrength = atoi(value);
1952507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        ALOGD("spot shadow strength = 0x%x out of 0xff", overrideSpotShadowStrength);
1962507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        return;
1972507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    }
1982507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    ALOGD("failed overriding property %s to %s", name, value);
1992507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik}
2002507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
2012507c34d91bb0d722b6012e85cb47387b2aa6873Chris CraikProfileType Properties::getProfileType() {
2022507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    if (CC_UNLIKELY(sDisableProfileBars && sProfileType == ProfileType::Bars))
2032507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik        return ProfileType::None;
2042507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik    return sProfileType;
2052507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik}
2062507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik
2072507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik}; // namespace uirenderer
2082507c34d91bb0d722b6012e85cb47387b2aa6873Chris Craik}; // namespace android
209