Loading services/surfaceflinger/BufferStateLayer.cpp +14 −13 Original line number Diff line number Diff line Loading @@ -239,7 +239,7 @@ bool BufferStateLayer::setBuffer(const sp<GraphicBuffer>& buffer, nsecs_t postTi mReleasePreviousBuffer = true; } mFrameCounter++; mCurrentState.frameNumber++; mCurrentState.buffer = buffer; mCurrentState.clientCacheId = clientCacheId; Loading @@ -247,10 +247,11 @@ bool BufferStateLayer::setBuffer(const sp<GraphicBuffer>& buffer, nsecs_t postTi setTransactionFlags(eTransactionNeeded); const int32_t layerId = getSequence(); mFlinger->mTimeStats->setPostTime(layerId, mFrameNumber, getName().c_str(), postTime); mFlinger->mTimeStats->setPostTime(layerId, mCurrentState.frameNumber, getName().c_str(), postTime); mFlinger->mFrameTracer->traceNewLayer(layerId, getName().c_str()); mFlinger->mFrameTracer->traceTimestamp(layerId, buffer->getId(), mFrameNumber, postTime, FrameTracer::FrameEvent::POST); mFlinger->mFrameTracer->traceTimestamp(layerId, buffer->getId(), mCurrentState.frameNumber, postTime, FrameTracer::FrameEvent::POST); mCurrentState.desiredPresentTime = desiredPresentTime; mFlinger->mScheduler->recordLayerHistory(this, Loading Loading @@ -414,7 +415,7 @@ bool BufferStateLayer::framePresentTimeIsCurrent(nsecs_t expectedPresentTime) co } uint64_t BufferStateLayer::getFrameNumber(nsecs_t /*expectedPresentTime*/) const { return mFrameNumber; return mDrawingState.frameNumber; } bool BufferStateLayer::getAutoRefresh() const { Loading Loading @@ -491,7 +492,7 @@ status_t BufferStateLayer::updateTexImage(bool& /*recomputeVisibleRegions*/, nse ALOGE("[%s] rejecting buffer: " "bufferWidth=%d, bufferHeight=%d, front.active.{w=%d, h=%d}", getDebugName(), bufferWidth, bufferHeight, s.active.w, s.active.h); mFlinger->mTimeStats->removeTimeRecord(layerId, mFrameNumber); mFlinger->mTimeStats->removeTimeRecord(layerId, mDrawingState.frameNumber); return BAD_VALUE; } Loading @@ -499,8 +500,6 @@ status_t BufferStateLayer::updateTexImage(bool& /*recomputeVisibleRegions*/, nse handle->latchTime = latchTime; } mFrameNumber = mFrameCounter; if (!SyncFeatures::getInstance().useNativeFenceSync()) { // Bind the new buffer to the GL texture. // Loading @@ -517,11 +516,13 @@ status_t BufferStateLayer::updateTexImage(bool& /*recomputeVisibleRegions*/, nse } const uint64_t bufferID = getCurrentBufferId(); mFlinger->mTimeStats->setAcquireFence(layerId, mFrameNumber, mBufferInfo.mFenceTime); mFlinger->mFrameTracer->traceFence(layerId, bufferID, mFrameNumber, mBufferInfo.mFenceTime, mFlinger->mTimeStats->setAcquireFence(layerId, mDrawingState.frameNumber, mBufferInfo.mFenceTime); mFlinger->mFrameTracer->traceFence(layerId, bufferID, mDrawingState.frameNumber, mBufferInfo.mFenceTime, FrameTracer::FrameEvent::ACQUIRE_FENCE); mFlinger->mTimeStats->setLatchTime(layerId, mFrameNumber, latchTime); mFlinger->mFrameTracer->traceTimestamp(layerId, bufferID, mFrameNumber, latchTime, mFlinger->mTimeStats->setLatchTime(layerId, mDrawingState.frameNumber, latchTime); mFlinger->mFrameTracer->traceTimestamp(layerId, bufferID, mDrawingState.frameNumber, latchTime, FrameTracer::FrameEvent::LATCH); mCurrentStateModified = false; Loading @@ -548,7 +549,7 @@ status_t BufferStateLayer::updateActiveBuffer() { status_t BufferStateLayer::updateFrameNumber(nsecs_t /*latchTime*/) { // TODO(marissaw): support frame history events mPreviousFrameNumber = mCurrentFrameNumber; mCurrentFrameNumber = mFrameNumber; mCurrentFrameNumber = mDrawingState.frameNumber; return NO_ERROR; } Loading services/surfaceflinger/Layer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ Layer::Layer(const LayerCreationArgs& args) mCurrentState.active.w = UINT32_MAX; mCurrentState.active.h = UINT32_MAX; mCurrentState.active.transform.set(0, 0); mCurrentState.frameNumber = 0; mCurrentState.transform = 0; mCurrentState.transformToDisplayInverse = false; mCurrentState.crop.makeInvalid(); Loading services/surfaceflinger/Layer.h +1 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ public: ui::Dataspace dataspace; // The fields below this point are only used by BufferStateLayer uint64_t frameNumber; Geometry active; uint32_t transform; Loading Loading
services/surfaceflinger/BufferStateLayer.cpp +14 −13 Original line number Diff line number Diff line Loading @@ -239,7 +239,7 @@ bool BufferStateLayer::setBuffer(const sp<GraphicBuffer>& buffer, nsecs_t postTi mReleasePreviousBuffer = true; } mFrameCounter++; mCurrentState.frameNumber++; mCurrentState.buffer = buffer; mCurrentState.clientCacheId = clientCacheId; Loading @@ -247,10 +247,11 @@ bool BufferStateLayer::setBuffer(const sp<GraphicBuffer>& buffer, nsecs_t postTi setTransactionFlags(eTransactionNeeded); const int32_t layerId = getSequence(); mFlinger->mTimeStats->setPostTime(layerId, mFrameNumber, getName().c_str(), postTime); mFlinger->mTimeStats->setPostTime(layerId, mCurrentState.frameNumber, getName().c_str(), postTime); mFlinger->mFrameTracer->traceNewLayer(layerId, getName().c_str()); mFlinger->mFrameTracer->traceTimestamp(layerId, buffer->getId(), mFrameNumber, postTime, FrameTracer::FrameEvent::POST); mFlinger->mFrameTracer->traceTimestamp(layerId, buffer->getId(), mCurrentState.frameNumber, postTime, FrameTracer::FrameEvent::POST); mCurrentState.desiredPresentTime = desiredPresentTime; mFlinger->mScheduler->recordLayerHistory(this, Loading Loading @@ -414,7 +415,7 @@ bool BufferStateLayer::framePresentTimeIsCurrent(nsecs_t expectedPresentTime) co } uint64_t BufferStateLayer::getFrameNumber(nsecs_t /*expectedPresentTime*/) const { return mFrameNumber; return mDrawingState.frameNumber; } bool BufferStateLayer::getAutoRefresh() const { Loading Loading @@ -491,7 +492,7 @@ status_t BufferStateLayer::updateTexImage(bool& /*recomputeVisibleRegions*/, nse ALOGE("[%s] rejecting buffer: " "bufferWidth=%d, bufferHeight=%d, front.active.{w=%d, h=%d}", getDebugName(), bufferWidth, bufferHeight, s.active.w, s.active.h); mFlinger->mTimeStats->removeTimeRecord(layerId, mFrameNumber); mFlinger->mTimeStats->removeTimeRecord(layerId, mDrawingState.frameNumber); return BAD_VALUE; } Loading @@ -499,8 +500,6 @@ status_t BufferStateLayer::updateTexImage(bool& /*recomputeVisibleRegions*/, nse handle->latchTime = latchTime; } mFrameNumber = mFrameCounter; if (!SyncFeatures::getInstance().useNativeFenceSync()) { // Bind the new buffer to the GL texture. // Loading @@ -517,11 +516,13 @@ status_t BufferStateLayer::updateTexImage(bool& /*recomputeVisibleRegions*/, nse } const uint64_t bufferID = getCurrentBufferId(); mFlinger->mTimeStats->setAcquireFence(layerId, mFrameNumber, mBufferInfo.mFenceTime); mFlinger->mFrameTracer->traceFence(layerId, bufferID, mFrameNumber, mBufferInfo.mFenceTime, mFlinger->mTimeStats->setAcquireFence(layerId, mDrawingState.frameNumber, mBufferInfo.mFenceTime); mFlinger->mFrameTracer->traceFence(layerId, bufferID, mDrawingState.frameNumber, mBufferInfo.mFenceTime, FrameTracer::FrameEvent::ACQUIRE_FENCE); mFlinger->mTimeStats->setLatchTime(layerId, mFrameNumber, latchTime); mFlinger->mFrameTracer->traceTimestamp(layerId, bufferID, mFrameNumber, latchTime, mFlinger->mTimeStats->setLatchTime(layerId, mDrawingState.frameNumber, latchTime); mFlinger->mFrameTracer->traceTimestamp(layerId, bufferID, mDrawingState.frameNumber, latchTime, FrameTracer::FrameEvent::LATCH); mCurrentStateModified = false; Loading @@ -548,7 +549,7 @@ status_t BufferStateLayer::updateActiveBuffer() { status_t BufferStateLayer::updateFrameNumber(nsecs_t /*latchTime*/) { // TODO(marissaw): support frame history events mPreviousFrameNumber = mCurrentFrameNumber; mCurrentFrameNumber = mFrameNumber; mCurrentFrameNumber = mDrawingState.frameNumber; return NO_ERROR; } Loading
services/surfaceflinger/Layer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ Layer::Layer(const LayerCreationArgs& args) mCurrentState.active.w = UINT32_MAX; mCurrentState.active.h = UINT32_MAX; mCurrentState.active.transform.set(0, 0); mCurrentState.frameNumber = 0; mCurrentState.transform = 0; mCurrentState.transformToDisplayInverse = false; mCurrentState.crop.makeInvalid(); Loading
services/surfaceflinger/Layer.h +1 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ public: ui::Dataspace dataspace; // The fields below this point are only used by BufferStateLayer uint64_t frameNumber; Geometry active; uint32_t transform; Loading