Loading services/surfaceflinger/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ LOCAL_SRC_FILES := \ DisplayHardware/ComposerHal.cpp \ DisplayHardware/FramebufferSurface.cpp \ DisplayHardware/HWC2.cpp \ DisplayHardware/HWComposerBufferCache.cpp \ DisplayHardware/PowerHAL.cpp \ DisplayHardware/VirtualDisplaySurface.cpp \ Effects/Daltonizer.cpp \ Loading services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -137,7 +137,7 @@ status_t FramebufferSurface::nextBuffer(sp<GraphicBuffer>& outBuffer, sp<Fence>& status_t err = acquireBufferLocked(&item, 0); if (err == BufferQueue::NO_BUFFER_AVAILABLE) { #ifdef USE_HWC2 mHwcBufferCache->getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer, mHwcBufferCache.getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer, &outSlot, &outBuffer); #else outBuffer = mCurrentBuffer; Loading Loading @@ -178,7 +178,7 @@ status_t FramebufferSurface::nextBuffer(sp<GraphicBuffer>& outBuffer, sp<Fence>& outFence = item.mFence; #ifdef USE_HWC2 mHwcBufferCache->getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer, mHwcBufferCache.getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer, &outSlot, &outBuffer); outDataspace = item.mDataSpace; #else Loading services/surfaceflinger/DisplayHardware/FramebufferSurface.h +2 −5 Original line number Diff line number Diff line Loading @@ -18,14 +18,13 @@ #define ANDROID_SF_FRAMEBUFFER_SURFACE_H #include "DisplaySurface.h" #include "HWComposerBufferCache.h" #include <stdint.h> #include <sys/types.h> #include <gui/ConsumerBase.h> #include <memory> // --------------------------------------------------------------------------- namespace android { // --------------------------------------------------------------------------- Loading @@ -33,7 +32,6 @@ namespace android { class Rect; class String8; class HWComposer; class HWComposerBufferCache; // --------------------------------------------------------------------------- Loading Loading @@ -96,8 +94,7 @@ private: HWComposer& mHwc; #ifdef USE_HWC2 std::unique_ptr<HWComposerBufferCache> mHwcBufferCache = std::make_unique<HWComposerBufferCache>(); HWComposerBufferCache mHwcBufferCache; // Previous buffer to release after getting an updated retire fence bool mHasPendingRelease; Loading services/surfaceflinger/DisplayHardware/HWComposer.cpp +0 −36 Original line number Diff line number Diff line Loading @@ -925,41 +925,5 @@ void HWComposer::DisplayData::reset() { *this = DisplayData(); } void HWComposerBufferCache::clear() { mBuffers.clear(); } void HWComposerBufferCache::getHwcBuffer(int slot, const sp<GraphicBuffer>& buffer, uint32_t* outSlot, sp<GraphicBuffer>* outBuffer) { #ifdef BYPASS_IHWC *outSlot = slot; *outBuffer = buffer; #else if (slot == BufferQueue::INVALID_BUFFER_SLOT || slot < 0) { // default to slot 0 slot = 0; } if (static_cast<size_t>(slot) >= mBuffers.size()) { mBuffers.resize(slot + 1); } *outSlot = slot; if (mBuffers[slot] == buffer) { // already cached in HWC, skip sending the buffer *outBuffer = nullptr; } else { *outBuffer = buffer; // update cache mBuffers[slot] = buffer; } #endif } // --------------------------------------------------------------------------- }; // namespace android services/surfaceflinger/DisplayHardware/HWComposer.h +0 −15 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ #include <stdint.h> #include <sys/types.h> #include <gui/BufferQueue.h> #include <ui/Fence.h> #include <utils/BitSet.h> Loading Loading @@ -236,19 +234,6 @@ private: mutable std::atomic<bool> mDumpMayLockUp; }; class HWComposerBufferCache { public: void clear(); void getHwcBuffer(int slot, const sp<GraphicBuffer>& buffer, uint32_t* outSlot, sp<GraphicBuffer>* outBuffer); private: // a vector as we expect "slot" to be in the range of [0, 63] (that is, // less than BufferQueue::NUM_BUFFER_SLOTS). std::vector<sp<GraphicBuffer>> mBuffers; }; // --------------------------------------------------------------------------- }; // namespace android Loading Loading
services/surfaceflinger/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ LOCAL_SRC_FILES := \ DisplayHardware/ComposerHal.cpp \ DisplayHardware/FramebufferSurface.cpp \ DisplayHardware/HWC2.cpp \ DisplayHardware/HWComposerBufferCache.cpp \ DisplayHardware/PowerHAL.cpp \ DisplayHardware/VirtualDisplaySurface.cpp \ Effects/Daltonizer.cpp \ Loading
services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -137,7 +137,7 @@ status_t FramebufferSurface::nextBuffer(sp<GraphicBuffer>& outBuffer, sp<Fence>& status_t err = acquireBufferLocked(&item, 0); if (err == BufferQueue::NO_BUFFER_AVAILABLE) { #ifdef USE_HWC2 mHwcBufferCache->getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer, mHwcBufferCache.getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer, &outSlot, &outBuffer); #else outBuffer = mCurrentBuffer; Loading Loading @@ -178,7 +178,7 @@ status_t FramebufferSurface::nextBuffer(sp<GraphicBuffer>& outBuffer, sp<Fence>& outFence = item.mFence; #ifdef USE_HWC2 mHwcBufferCache->getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer, mHwcBufferCache.getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer, &outSlot, &outBuffer); outDataspace = item.mDataSpace; #else Loading
services/surfaceflinger/DisplayHardware/FramebufferSurface.h +2 −5 Original line number Diff line number Diff line Loading @@ -18,14 +18,13 @@ #define ANDROID_SF_FRAMEBUFFER_SURFACE_H #include "DisplaySurface.h" #include "HWComposerBufferCache.h" #include <stdint.h> #include <sys/types.h> #include <gui/ConsumerBase.h> #include <memory> // --------------------------------------------------------------------------- namespace android { // --------------------------------------------------------------------------- Loading @@ -33,7 +32,6 @@ namespace android { class Rect; class String8; class HWComposer; class HWComposerBufferCache; // --------------------------------------------------------------------------- Loading Loading @@ -96,8 +94,7 @@ private: HWComposer& mHwc; #ifdef USE_HWC2 std::unique_ptr<HWComposerBufferCache> mHwcBufferCache = std::make_unique<HWComposerBufferCache>(); HWComposerBufferCache mHwcBufferCache; // Previous buffer to release after getting an updated retire fence bool mHasPendingRelease; Loading
services/surfaceflinger/DisplayHardware/HWComposer.cpp +0 −36 Original line number Diff line number Diff line Loading @@ -925,41 +925,5 @@ void HWComposer::DisplayData::reset() { *this = DisplayData(); } void HWComposerBufferCache::clear() { mBuffers.clear(); } void HWComposerBufferCache::getHwcBuffer(int slot, const sp<GraphicBuffer>& buffer, uint32_t* outSlot, sp<GraphicBuffer>* outBuffer) { #ifdef BYPASS_IHWC *outSlot = slot; *outBuffer = buffer; #else if (slot == BufferQueue::INVALID_BUFFER_SLOT || slot < 0) { // default to slot 0 slot = 0; } if (static_cast<size_t>(slot) >= mBuffers.size()) { mBuffers.resize(slot + 1); } *outSlot = slot; if (mBuffers[slot] == buffer) { // already cached in HWC, skip sending the buffer *outBuffer = nullptr; } else { *outBuffer = buffer; // update cache mBuffers[slot] = buffer; } #endif } // --------------------------------------------------------------------------- }; // namespace android
services/surfaceflinger/DisplayHardware/HWComposer.h +0 −15 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ #include <stdint.h> #include <sys/types.h> #include <gui/BufferQueue.h> #include <ui/Fence.h> #include <utils/BitSet.h> Loading Loading @@ -236,19 +234,6 @@ private: mutable std::atomic<bool> mDumpMayLockUp; }; class HWComposerBufferCache { public: void clear(); void getHwcBuffer(int slot, const sp<GraphicBuffer>& buffer, uint32_t* outSlot, sp<GraphicBuffer>* outBuffer); private: // a vector as we expect "slot" to be in the range of [0, 63] (that is, // less than BufferQueue::NUM_BUFFER_SLOTS). std::vector<sp<GraphicBuffer>> mBuffers; }; // --------------------------------------------------------------------------- }; // namespace android Loading