summaryrefslogtreecommitdiff
path: root/libs/hwui/RenderBufferCache.cpp
diff options
context:
space:
mode:
authorJiyong Park <jiyong@google.com>2018-08-02 17:02:45 +0900
committerJiyong Park <jiyong@google.com>2018-08-02 18:07:54 +0900
commit1581c348fc5d6cbf1673b3dbc5960637f891d488 (patch)
tree31e9444210520c28f42b9445fbc53daf68e5a0be /libs/hwui/RenderBufferCache.cpp
parent7a01a307753309f198eacbb8a36e15428b38bbe7 (diff)
parentdecdaee091799aced8169d45632c923e2605214e (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.cpp161
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