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

Commit c744daaa authored by android-build-team Robot's avatar android-build-team Robot
Browse files

release-request-fbd98711-169e-4972-a5f2-db043df00e09-for-git_pi-release-436757...

release-request-fbd98711-169e-4972-a5f2-db043df00e09-for-git_pi-release-4367572 snap-temp-L13500000107248413

Change-Id: Ib51d39c09396713555ae3a3b1345cec4803677f8
parents af383c9a e408127b
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1135,7 +1135,7 @@ static void dumpstate() {
    RunCommand("VOLD DUMP", {"vdc", "dump"});
    RunCommand("SECURE CONTAINERS", {"vdc", "asec", "list"});

    RunCommand("STORAGED TASKIOINFO", {"storaged", "-u"}, CommandOptions::WithTimeout(10).Build());
    RunCommand("STORAGED UID IO INFO", {"storaged", "-u"});

    RunCommand("FILESYSTEMS & FREE SPACE", {"df"});

@@ -1850,6 +1850,9 @@ int main(int argc, char *argv[]) {
        RunCommand("DETAILED SOCKET STATE", {"ss", "-eionptu"},
                   CommandOptions::WithTimeout(10).Build());

        // Run iotop as root to show top 100 IO threads
        RunCommand("IOTOP", {"iotop", "-n", "1", "-m", "100"});

        if (!DropRootUser()) {
            return -1;
        }
+2 −3
Original line number Diff line number Diff line
@@ -150,10 +150,9 @@ class OTAPreoptService {
            value[kPropertyValueMax - 1] = 0;
            return strlen(default_value);// TODO: Need to truncate?
        }
        size_t size = std::min(kPropertyValueMax - 1, prop_value->length());
        size_t size = std::min(kPropertyValueMax - 1, prop_value->length()) + 1;
        strlcpy(value, prop_value->data(), size);
        value[size] = 0;
        return static_cast<int>(size);
        return static_cast<int>(size - 1);
    }

    std::string GetOTADataDirectory() const {
+1 −1
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@
    <feature name="android.software.backup" />
    <feature name="android.software.home_screen" />
    <feature name="android.software.input_methods" />
    <feature name="android.software.picture_in_picture" />
    <feature name="android.software.picture_in_picture" notLowRam="true" />
    <feature name="android.software.activities_on_secondary_displays" />
    <feature name="android.software.print" />
    <feature name="android.software.companion_device_setup" />
+20 −15
Original line number Diff line number Diff line
@@ -1691,23 +1691,28 @@ uint32_t Layer::doTransaction(uint32_t flags) {
                c.requested.w, c.requested.h);
    }

    const bool resizePending = (c.requested.w != c.active.w) ||
            (c.requested.h != c.active.h);
    if (!isFixedSize()) {
        if (resizePending && mSidebandStream == NULL) {
            // don't let Layer::doTransaction update the drawing state
    // Don't let Layer::doTransaction update the drawing state
    // if we have a pending resize, unless we are in fixed-size mode.
    // the drawing state will be updated only once we receive a buffer
    // with the correct size.
    //
            // in particular, we want to make sure the clip (which is part
    // In particular, we want to make sure the clip (which is part
    // of the geometry state) is latched together with the size but is
    // latched immediately when no resizing is involved.
    //
    // If a sideband stream is attached, however, we want to skip this
    // optimization so that transactions aren't missed when a buffer
    // never arrives

    //
    // In the case that we don't have a buffer we ignore other factors
    // and avoid entering the resizePending state. At a high level the
    // resizePending state is to avoid applying the state of the new buffer
    // to the old buffer. However in the state where we don't have an old buffer
    // there is no such concern but we may still be being used as a parent layer.
    const bool resizePending = ((c.requested.w != c.active.w) ||
            (c.requested.h != c.active.h)) && (mActiveBuffer != nullptr);
    if (!isFixedSize()) {
        if (resizePending && mSidebandStream == NULL) {
            flags |= eDontUpdateGeometryState;
        }
    }
+35 −0
Original line number Diff line number Diff line
@@ -789,6 +789,41 @@ TEST_F(LayerUpdateTest, LayerSetRelativeLayerWorks) {
    }
}

TEST_F(LayerUpdateTest, LayerWithNoBuffersResizesImmediately) {
    sp<ScreenCapture> sc;

    sp<SurfaceControl> childNoBuffer =
        mComposerClient->createSurface(String8("Bufferless child"),
                10, 10, PIXEL_FORMAT_RGBA_8888,
                0, mFGSurfaceControl.get());
    sp<SurfaceControl> childBuffer = mComposerClient->createSurface(
            String8("Buffered child"), 20, 20,
            PIXEL_FORMAT_RGBA_8888, 0, childNoBuffer.get());
    fillSurfaceRGBA8(childBuffer, 200, 200, 200);

    SurfaceComposerClient::openGlobalTransaction();
    childNoBuffer->show();
    childBuffer->show();
    SurfaceComposerClient::closeGlobalTransaction();


    {
        ScreenCapture::captureScreen(&sc);
        sc->expectChildColor(73, 73);
        sc->expectFGColor(74, 74);
    }

    SurfaceComposerClient::openGlobalTransaction();
    childNoBuffer->setSize(20, 20);
    SurfaceComposerClient::closeGlobalTransaction(true);

    {
        ScreenCapture::captureScreen(&sc);
        sc->expectChildColor(73, 73);
        sc->expectChildColor(74, 74);
    }
}

class ChildLayerTest : public LayerUpdateTest {
protected:
    void SetUp() override {