diff options
author | Jiyong Park <jiyong@google.com> | 2018-08-02 17:02:45 +0900 |
---|---|---|
committer | Jiyong Park <jiyong@google.com> | 2018-08-02 18:07:54 +0900 |
commit | 1581c348fc5d6cbf1673b3dbc5960637f891d488 (patch) | |
tree | 31e9444210520c28f42b9445fbc53daf68e5a0be /libs/hwui/RenderBufferCache.cpp | |
parent | 7a01a307753309f198eacbb8a36e15428b38bbe7 (diff) | |
parent | decdaee091799aced8169d45632c923e2605214e (diff) |
Merge QPR1.180718.001
Conflicts:
core/java/android/provider/Settings.java
core/jni/android_view_InputEventReceiver.cpp
core/res/res/values/config.xml
core/res/res/values/symbols.xml
media/jni/Android.bp
packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
packages/SettingsLib/tests/robotests/src/com/android/settingslib/fuelgauge/PowerWhitelistBackendTest.java
packages/SystemUI/res/layout/status_bar_mobile_signal_group.xml
packages/SystemUI/res/values/config.xml
packages/SystemUI/src/com/android/keyguard/KeyguardConstants.java
packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java
services/core/java/com/android/server/ConnectivityService.java
services/core/java/com/android/server/NetworkTimeUpdateService.java
services/core/java/com/android/server/StorageManagerService.java
services/core/java/com/android/server/Watchdog.java
services/core/java/com/android/server/am/ActiveServices.java
services/core/java/com/android/server/am/ActivityManagerService.java
services/core/java/com/android/server/am/ActivityStack.java
services/core/java/com/android/server/am/AppTaskImpl.java
services/core/java/com/android/server/audio/AudioService.java
services/core/java/com/android/server/wm/DisplayContent.java
services/tests/uiservicestests/src/com/android/server/notification/NotificationRecordTest.java
telephony/java/android/telephony/CarrierConfigManager.java
telephony/java/android/telephony/ims/ImsReasonInfo.java
telephony/java/android/telephony/ims/feature/MmTelFeature.java
telephony/java/com/android/internal/telephony/ISmsBaseImpl.java
Change-Id: I3f98340699f9e31be03eaf23fdea70803c4cef42
Diffstat (limited to 'libs/hwui/RenderBufferCache.cpp')
-rw-r--r-- | libs/hwui/RenderBufferCache.cpp | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/libs/hwui/RenderBufferCache.cpp b/libs/hwui/RenderBufferCache.cpp deleted file mode 100644 index 98010d8da1bd..000000000000 --- a/libs/hwui/RenderBufferCache.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "RenderBufferCache.h" -#include "Debug.h" -#include "DeviceInfo.h" -#include "Properties.h" - -#include <utils/Log.h> - -#include <cstdlib> - -namespace android { -namespace uirenderer { - -/////////////////////////////////////////////////////////////////////////////// -// Defines -/////////////////////////////////////////////////////////////////////////////// - -// Debug -#if DEBUG_RENDER_BUFFERS -#define RENDER_BUFFER_LOGD(...) ALOGD(__VA_ARGS__) -#else -#define RENDER_BUFFER_LOGD(...) -#endif - -static uint32_t calculateRboCacheSize() { - // TODO: Do we need to use extensions().has4BitStencil() here? - // The tuning guide recommends it, but all real devices are configured - // with a larger cache than necessary by 4x, so keep the 2x for now regardless - return DeviceInfo::multiplyByResolution(2); -} - -/////////////////////////////////////////////////////////////////////////////// -// Constructors/destructor -/////////////////////////////////////////////////////////////////////////////// - -RenderBufferCache::RenderBufferCache() : mSize(0), mMaxSize(calculateRboCacheSize()) {} - -RenderBufferCache::~RenderBufferCache() { - clear(); -} - -/////////////////////////////////////////////////////////////////////////////// -// Size management -/////////////////////////////////////////////////////////////////////////////// - -uint32_t RenderBufferCache::getSize() { - return mSize; -} - -uint32_t RenderBufferCache::getMaxSize() { - return mMaxSize; -} - -/////////////////////////////////////////////////////////////////////////////// -// Caching -/////////////////////////////////////////////////////////////////////////////// - -int RenderBufferCache::RenderBufferEntry::compare(const RenderBufferCache::RenderBufferEntry& lhs, - const RenderBufferCache::RenderBufferEntry& rhs) { - int deltaInt = int(lhs.mWidth) - int(rhs.mWidth); - if (deltaInt != 0) return deltaInt; - - deltaInt = int(lhs.mHeight) - int(rhs.mHeight); - if (deltaInt != 0) return deltaInt; - - return int(lhs.mFormat) - int(rhs.mFormat); -} - -void RenderBufferCache::deleteBuffer(RenderBuffer* buffer) { - if (buffer) { - RENDER_BUFFER_LOGD("Deleted %s render buffer (%dx%d)", - RenderBuffer::formatName(buffer->getFormat()), buffer->getWidth(), - buffer->getHeight()); - - mSize -= buffer->getSize(); - delete buffer; - } -} - -void RenderBufferCache::clear() { - for (auto entry : mCache) { - deleteBuffer(entry.mBuffer); - } - mCache.clear(); -} - -RenderBuffer* RenderBufferCache::get(GLenum format, const uint32_t width, const uint32_t height) { - RenderBuffer* buffer = nullptr; - - RenderBufferEntry entry(format, width, height); - auto iter = mCache.find(entry); - - if (iter != mCache.end()) { - entry = *iter; - mCache.erase(iter); - - buffer = entry.mBuffer; - mSize -= buffer->getSize(); - - RENDER_BUFFER_LOGD("Found %s render buffer (%dx%d)", RenderBuffer::formatName(format), - width, height); - } else { - buffer = new RenderBuffer(format, width, height); - - RENDER_BUFFER_LOGD("Created new %s render buffer (%dx%d)", RenderBuffer::formatName(format), - width, height); - } - - buffer->bind(); - buffer->allocate(); - - return buffer; -} - -bool RenderBufferCache::put(RenderBuffer* buffer) { - if (!buffer) return false; - - const uint32_t size = buffer->getSize(); - if (size < mMaxSize) { - while (mSize + size > mMaxSize) { - RenderBuffer* victim = mCache.begin()->mBuffer; - deleteBuffer(victim); - mCache.erase(mCache.begin()); - } - - RenderBufferEntry entry(buffer); - - mCache.insert(entry); - mSize += size; - - RENDER_BUFFER_LOGD("Added %s render buffer (%dx%d)", - RenderBuffer::formatName(buffer->getFormat()), buffer->getWidth(), - buffer->getHeight()); - - return true; - } else { - RENDER_BUFFER_LOGD("Deleted %s render buffer (%dx%d) Size=%d, MaxSize=%d", - RenderBuffer::formatName(buffer->getFormat()), buffer->getWidth(), - buffer->getHeight(), size, mMaxSize); - delete buffer; - } - return false; -} - -}; // namespace uirenderer -}; // namespace android |