diff options
-rw-r--r-- | services/surfaceflinger/FrontEnd/LayerCreationArgs.h | 1 | ||||
-rw-r--r-- | services/surfaceflinger/FrontEnd/RequestedLayerState.cpp | 3 | ||||
-rw-r--r-- | services/surfaceflinger/FrontEnd/RequestedLayerState.h | 1 | ||||
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 2 | ||||
-rw-r--r-- | services/surfaceflinger/Layer.h | 4 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 1 |
6 files changed, 8 insertions, 4 deletions
diff --git a/services/surfaceflinger/FrontEnd/LayerCreationArgs.h b/services/surfaceflinger/FrontEnd/LayerCreationArgs.h index 0788d1abce..07a5724852 100644 --- a/services/surfaceflinger/FrontEnd/LayerCreationArgs.h +++ b/services/surfaceflinger/FrontEnd/LayerCreationArgs.h @@ -61,6 +61,7 @@ struct LayerCreationArgs { ui::LayerStack layerStackToMirror = ui::INVALID_LAYER_STACK; uint32_t parentId = UNASSIGNED_LAYER_ID; uint32_t layerIdToMirror = UNASSIGNED_LAYER_ID; + std::atomic<int32_t>* pendingBuffers = 0; }; } // namespace android::surfaceflinger diff --git a/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp b/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp index 1eff9d699c..713a5c509e 100644 --- a/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp +++ b/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp @@ -56,7 +56,8 @@ RequestedLayerState::RequestedLayerState(const LayerCreationArgs& args) ownerUid(args.ownerUid), ownerPid(args.ownerPid), parentId(args.parentId), - layerIdToMirror(args.layerIdToMirror) { + layerIdToMirror(args.layerIdToMirror), + pendingBuffers(args.pendingBuffers) { layerId = static_cast<int32_t>(args.sequence); changes |= RequestedLayerState::Changes::Created; metadata.merge(args.metadata); diff --git a/services/surfaceflinger/FrontEnd/RequestedLayerState.h b/services/surfaceflinger/FrontEnd/RequestedLayerState.h index 3220e86ce4..7ddd7baf1e 100644 --- a/services/surfaceflinger/FrontEnd/RequestedLayerState.h +++ b/services/surfaceflinger/FrontEnd/RequestedLayerState.h @@ -131,6 +131,7 @@ struct RequestedLayerState : layer_state_t { uint64_t barrierFrameNumber = 0; uint32_t barrierProducerId = 0; std::string debugName; + std::atomic<int32_t>* pendingBuffers = 0; // book keeping states bool handleAlive = true; diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index 92894847fa..c14769e61e 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -1342,7 +1342,7 @@ Rect Layer::computeBufferCrop(const State& s) { } void Layer::decrementPendingBufferCount() { - int32_t pendingBuffers = --mPendingBufferTransactions; + int32_t pendingBuffers = --mPendingBuffers; tracePendingBufferCount(pendingBuffers); } diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h index 57093ae602..ce4b9c4c5a 100644 --- a/services/surfaceflinger/Layer.h +++ b/services/surfaceflinger/Layer.h @@ -369,7 +369,7 @@ public: // See mPendingBufferTransactions void decrementPendingBufferCount(); - std::atomic<int32_t>* getPendingBufferCounter() { return &mPendingBufferTransactions; } + std::atomic<int32_t>* getPendingBufferCounter() { return &mPendingBuffers; } std::string getPendingBufferCounterName() { return mBlastTransactionName; } void callReleaseBufferCallback(const sp<ITransactionCompletedListener>& listener, const sp<GraphicBuffer>& buffer, uint64_t framenumber, @@ -562,7 +562,7 @@ private: // - If the integer increases, a buffer arrived at the server. // - If the integer decreases in latchBuffer, that buffer was latched // - If the integer decreases in setBuffer, a buffer was dropped - std::atomic<int32_t> mPendingBufferTransactions{0}; + std::atomic<int32_t> mPendingBuffers{0}; // Contains requested position and matrix updates. This will be applied if the client does // not specify a destination frame. diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 5010ba15bf..0ee7b31bdd 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -5195,6 +5195,7 @@ status_t SurfaceFlinger::createLayer(LayerCreationArgs& args, gui::CreateSurface std::string counterName = layer->getPendingBufferCounterName(); mBufferCountTracker.add(LayerHandle::getLayerId(outResult.handle), counterName, pendingBufferCounter); + args.pendingBuffers = pendingBufferCounter; } } break; default: |