Loading services/surfaceflinger/Layer.cpp +1 −7 Original line number Diff line number Diff line Loading @@ -628,15 +628,9 @@ void Layer::setGeometry(const sp<const DisplayDevice>& displayDevice, uint32_t z transform = Transform(invTransform) * tr * bufferOrientation; } // STOPSHIP (b/72106793): If we have less than 25% scaling, HWC usually needs to use the rotator // to handle it. However, there is one guaranteed frame of jank when we switch to using the // rotator. In the meantime, we force GL composition instead until we have a better fix for the // HWC issue. bool extremeScaling = abs(t[0][0]) <= 0.25 || abs(t[1][1]) <= 0.25; // this gives us only the "orientation" component of the transform const uint32_t orientation = transform.getOrientation(); if (orientation & Transform::ROT_INVALID || extremeScaling) { if (orientation & Transform::ROT_INVALID) { // we can only handle simple transformation hwcInfo.forceClientComposition = true; } else { Loading Loading
services/surfaceflinger/Layer.cpp +1 −7 Original line number Diff line number Diff line Loading @@ -628,15 +628,9 @@ void Layer::setGeometry(const sp<const DisplayDevice>& displayDevice, uint32_t z transform = Transform(invTransform) * tr * bufferOrientation; } // STOPSHIP (b/72106793): If we have less than 25% scaling, HWC usually needs to use the rotator // to handle it. However, there is one guaranteed frame of jank when we switch to using the // rotator. In the meantime, we force GL composition instead until we have a better fix for the // HWC issue. bool extremeScaling = abs(t[0][0]) <= 0.25 || abs(t[1][1]) <= 0.25; // this gives us only the "orientation" component of the transform const uint32_t orientation = transform.getOrientation(); if (orientation & Transform::ROT_INVALID || extremeScaling) { if (orientation & Transform::ROT_INVALID) { // we can only handle simple transformation hwcInfo.forceClientComposition = true; } else { Loading