Loading libs/gui/ITransactionCompletedListener.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ status_t SurfaceStats::writeToParcel(Parcel* output) const { } else { err = output->writeBool(false); } err = output->writeUint32(transformHint); return err; } Loading @@ -72,7 +73,8 @@ status_t SurfaceStats::readFromParcel(const Parcel* input) { return err; } } return NO_ERROR; err = input->readUint32(&transformHint); return err; } status_t TransactionStats::writeToParcel(Parcel* output) const { Loading libs/gui/SurfaceComposerClient.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -222,7 +222,8 @@ void TransactionCompletedListener::onTransactionCompleted(ListenerStats listener for (const auto& surfaceStats : transactionStats.surfaceStats) { surfaceControlStats.emplace_back(surfaceControls[surfaceStats.surfaceControl], surfaceStats.acquireTime, surfaceStats.previousReleaseFence); surfaceStats.previousReleaseFence, surfaceStats.transformHint); } callbackFunction(transactionStats.latchTime, transactionStats.presentFence, Loading libs/gui/include/gui/ITransactionCompletedListener.h +7 −2 Original line number Diff line number Diff line Loading @@ -41,12 +41,17 @@ public: status_t readFromParcel(const Parcel* input) override; SurfaceStats() = default; SurfaceStats(const sp<IBinder>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence) : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence) {} SurfaceStats(const sp<IBinder>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence, uint32_t hint) : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence), transformHint(hint) {} sp<IBinder> surfaceControl; nsecs_t acquireTime = -1; sp<Fence> previousReleaseFence; uint32_t transformHint = 0; }; class TransactionStats : public Parcelable { Loading libs/gui/include/gui/SurfaceComposerClient.h +6 −2 Original line number Diff line number Diff line Loading @@ -58,12 +58,16 @@ class Region; struct SurfaceControlStats { SurfaceControlStats(const sp<SurfaceControl>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence) : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence) {} const sp<Fence>& prevReleaseFence, uint32_t hint) : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence), transformHint(hint) {} sp<SurfaceControl> surfaceControl; nsecs_t acquireTime = -1; sp<Fence> previousReleaseFence; uint32_t transformHint = 0; }; using TransactionCompletedCallbackTakesContext = Loading services/surfaceflinger/BufferStateLayer.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -103,12 +103,15 @@ void BufferStateLayer::onLayerDisplayed(const sp<Fence>& releaseFence) { } } void BufferStateLayer::setTransformHint(uint32_t /*orientation*/) const { // TODO(marissaw): send the transform hint to buffer owner return; void BufferStateLayer::setTransformHint(uint32_t orientation) const { mTransformHint = orientation; } void BufferStateLayer::releasePendingBuffer(nsecs_t /*dequeueReadyTime*/) { for (const auto& handle : mDrawingState.callbackHandles) { handle->transformHint = mTransformHint; } mFlinger->getTransactionCompletedThread().finalizePendingCallbackHandles( mDrawingState.callbackHandles); Loading Loading
libs/gui/ITransactionCompletedListener.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ status_t SurfaceStats::writeToParcel(Parcel* output) const { } else { err = output->writeBool(false); } err = output->writeUint32(transformHint); return err; } Loading @@ -72,7 +73,8 @@ status_t SurfaceStats::readFromParcel(const Parcel* input) { return err; } } return NO_ERROR; err = input->readUint32(&transformHint); return err; } status_t TransactionStats::writeToParcel(Parcel* output) const { Loading
libs/gui/SurfaceComposerClient.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -222,7 +222,8 @@ void TransactionCompletedListener::onTransactionCompleted(ListenerStats listener for (const auto& surfaceStats : transactionStats.surfaceStats) { surfaceControlStats.emplace_back(surfaceControls[surfaceStats.surfaceControl], surfaceStats.acquireTime, surfaceStats.previousReleaseFence); surfaceStats.previousReleaseFence, surfaceStats.transformHint); } callbackFunction(transactionStats.latchTime, transactionStats.presentFence, Loading
libs/gui/include/gui/ITransactionCompletedListener.h +7 −2 Original line number Diff line number Diff line Loading @@ -41,12 +41,17 @@ public: status_t readFromParcel(const Parcel* input) override; SurfaceStats() = default; SurfaceStats(const sp<IBinder>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence) : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence) {} SurfaceStats(const sp<IBinder>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence, uint32_t hint) : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence), transformHint(hint) {} sp<IBinder> surfaceControl; nsecs_t acquireTime = -1; sp<Fence> previousReleaseFence; uint32_t transformHint = 0; }; class TransactionStats : public Parcelable { Loading
libs/gui/include/gui/SurfaceComposerClient.h +6 −2 Original line number Diff line number Diff line Loading @@ -58,12 +58,16 @@ class Region; struct SurfaceControlStats { SurfaceControlStats(const sp<SurfaceControl>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence) : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence) {} const sp<Fence>& prevReleaseFence, uint32_t hint) : surfaceControl(sc), acquireTime(time), previousReleaseFence(prevReleaseFence), transformHint(hint) {} sp<SurfaceControl> surfaceControl; nsecs_t acquireTime = -1; sp<Fence> previousReleaseFence; uint32_t transformHint = 0; }; using TransactionCompletedCallbackTakesContext = Loading
services/surfaceflinger/BufferStateLayer.cpp +6 −3 Original line number Diff line number Diff line Loading @@ -103,12 +103,15 @@ void BufferStateLayer::onLayerDisplayed(const sp<Fence>& releaseFence) { } } void BufferStateLayer::setTransformHint(uint32_t /*orientation*/) const { // TODO(marissaw): send the transform hint to buffer owner return; void BufferStateLayer::setTransformHint(uint32_t orientation) const { mTransformHint = orientation; } void BufferStateLayer::releasePendingBuffer(nsecs_t /*dequeueReadyTime*/) { for (const auto& handle : mDrawingState.callbackHandles) { handle->transformHint = mTransformHint; } mFlinger->getTransactionCompletedThread().finalizePendingCallbackHandles( mDrawingState.callbackHandles); Loading