Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 171d0d23 authored by Marissa Wall's avatar Marissa Wall
Browse files

blast: remove unnecessary compute bound computations

mVisibleRegionsDirty (caused by sequence++) should only be set
when the bounds of layers are affected by a change in state.

This change improves performance by saving us from unnecessary
calls.

Test: SurfaceFlinger_test
Bug: N/A
Change-Id: I822fdfb82cb3cd0bbc3d4bb6685f06750e152dca
parent 4c6f904f
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -139,7 +139,6 @@ Rect BufferStateLayer::getCrop(const Layer::State& /*s*/) const {

bool BufferStateLayer::setTransform(uint32_t transform) {
    if (mCurrentState.transform == transform) return false;
    mCurrentState.sequence++;
    mCurrentState.transform = transform;
    mCurrentState.modified = true;
    setTransactionFlags(eTransactionNeeded);
@@ -170,7 +169,6 @@ bool BufferStateLayer::setCrop(const Rect& crop) {
    }

    if (mCurrentState.crop == c) return false;
    mCurrentState.sequence++;
    mCurrentState.crop = c;
    mCurrentState.modified = true;
    setTransactionFlags(eTransactionNeeded);
@@ -242,7 +240,6 @@ bool BufferStateLayer::setDataspace(ui::Dataspace dataspace) {

bool BufferStateLayer::setHdrMetadata(const HdrMetadata& hdrMetadata) {
    if (mCurrentState.hdrMetadata == hdrMetadata) return false;
    mCurrentState.sequence++;
    mCurrentState.hdrMetadata = hdrMetadata;
    mCurrentState.modified = true;
    setTransactionFlags(eTransactionNeeded);
@@ -250,7 +247,6 @@ bool BufferStateLayer::setHdrMetadata(const HdrMetadata& hdrMetadata) {
}

bool BufferStateLayer::setSurfaceDamageRegion(const Region& surfaceDamage) {
    mCurrentState.sequence++;
    mCurrentState.surfaceDamageRegion = surfaceDamage;
    mCurrentState.modified = true;
    setTransactionFlags(eTransactionNeeded);
@@ -259,7 +255,6 @@ bool BufferStateLayer::setSurfaceDamageRegion(const Region& surfaceDamage) {

bool BufferStateLayer::setApi(int32_t api) {
    if (mCurrentState.api == api) return false;
    mCurrentState.sequence++;
    mCurrentState.api = api;
    mCurrentState.modified = true;
    setTransactionFlags(eTransactionNeeded);
@@ -268,7 +263,6 @@ bool BufferStateLayer::setApi(int32_t api) {

bool BufferStateLayer::setSidebandStream(const sp<NativeHandle>& sidebandStream) {
    if (mCurrentState.sidebandStream == sidebandStream) return false;
    mCurrentState.sequence++;
    mCurrentState.sidebandStream = sidebandStream;
    mCurrentState.modified = true;
    setTransactionFlags(eTransactionNeeded);