Mir

Merge lp:~vanvugt/mir/fix-1657755 into lp:mir

Proposed by Daniel van Vugt
Status: Merged
Approved by: Cemil Azizoglu
Approved revision: no longer in the source branch.
Merged at revision: 3976
Proposed branch: lp:~vanvugt/mir/fix-1657755
Merge into: lp:mir
Prerequisite: lp:~vanvugt/mir/fix-unit-test-rejects_list_containing_interval_0
Diff against target: 39 lines (+4/-7)
2 files modified
src/platforms/android/server/hwc_device.cpp (+1/-2)
tests/unit-tests/platforms/android/server/test_hwc_device.cpp (+3/-5)
To merge this branch: bzr merge lp:~vanvugt/mir/fix-1657755
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Cemil Azizoglu (community) Approve
Kevin DuBois (community) Approve
Review via email: mp+315195@code.launchpad.net

Commit message

Remove the workaround for LP: #1369763 to fix LP: #1657755

As discussed a while back [1], living with LP: #1369763 is probably
the lesser evil. But we should still strive to fix all the bugs.

Client-side vsync should tolerate this fine, as it still contains a
workaround to support running on top of server-side vsync. It's not
guaranteed always optimal latency while LP: #1369763 is unresolved but
will achieve it most of the time.

[1] https://code.launchpad.net/~kdub/mir/fix-1369763/+merge/307945/comments/797700

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3967
https://mir-jenkins.ubuntu.com/job/mir-ci/2791/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3655/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3734
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3725
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3725
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3725
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3682
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3682/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3682
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3682/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3682/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3682
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3682/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3682
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3682/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3682
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3682/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2791/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Continuous integration, rev:3968
https://mir-jenkins.ubuntu.com/job/mir-ci/2793/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3659/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3738
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3728
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3728
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3728
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3686
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3686/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3686
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3686/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3686/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3686
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3686/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3686
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3686/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3686
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3686/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2793/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3969
https://mir-jenkins.ubuntu.com/job/mir-ci/2816/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/3689
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3768
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3758
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3758
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3758
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3716
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3716/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3716
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3716/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3716
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3716/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3716
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3716/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3716
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3716/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3716
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3716/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/2816/rebuild

review: Approve (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Finished manual device testing. Seems to work well.

Revision history for this message
Kevin DuBois (kdub) wrote :

We could communicate both queue length and swapinterval to the server, if we don't want to re-do the client side buffer swapping (which we probably don't).

If the ANativeWindow gets attention in the future, we'd probably want to make a android-specific queue that honors more of the requests the driver can make through the ANativeWindow interface (and then lp: #1369763 could be solved properly).

"As discussed a while back [1], living with LP: #1369763 is probably
the lesser evil. But we should still strive to fix all the bugs."
True, it is probably better to have overlays back.

review: Approve
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

ok

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/platforms/android/server/hwc_device.cpp'
--- src/platforms/android/server/hwc_device.cpp 2017-01-18 02:29:37 +0000
+++ src/platforms/android/server/hwc_device.cpp 2017-01-23 03:41:38 +0000
@@ -56,8 +56,7 @@
56 //TODO: enable planeAlpha for (hwc version >= 1.2), 90 deg rotation56 //TODO: enable planeAlpha for (hwc version >= 1.2), 90 deg rotation
57 static glm::mat4 const identity;57 static glm::mat4 const identity;
58 if (plane_alpha_is_translucent(*renderable) ||58 if (plane_alpha_is_translucent(*renderable) ||
59 (renderable->transformation() != identity) ||59 renderable->transformation() != identity)
60 (renderable->swap_interval() == 0)) //See LP: #1369763
61 {60 {
62 return false;61 return false;
63 }62 }
6463
=== modified file 'tests/unit-tests/platforms/android/server/test_hwc_device.cpp'
--- tests/unit-tests/platforms/android/server/test_hwc_device.cpp 2017-01-23 03:41:38 +0000
+++ tests/unit-tests/platforms/android/server/test_hwc_device.cpp 2017-01-23 03:41:38 +0000
@@ -600,10 +600,8 @@
600 EXPECT_FALSE(device.compatible_renderlist(renderlist));600 EXPECT_FALSE(device.compatible_renderlist(renderlist));
601}601}
602602
603//LP: #1369763. We could get swapinterval 0 to work with overlays, but we'd need603// Regression test for LP: #1657755
604//the vsync signal from hwc to reach the client, so the client can rate-limit its submissions.604TEST_F(HwcDevice, accepts_list_containing_interval_0)
605// Update: We have client-side vsync now so it should be possible to do this...
606TEST_F(HwcDevice, rejects_list_containing_interval_0)
607{605{
608 using namespace ::testing;606 using namespace ::testing;
609607
@@ -614,7 +612,7 @@
614 .WillByDefault(Return(0));612 .WillByDefault(Return(0));
615613
616 mg::RenderableList renderlist{renderable};614 mg::RenderableList renderlist{renderable};
617 EXPECT_FALSE(device.compatible_renderlist(renderlist));615 EXPECT_TRUE(device.compatible_renderlist(renderlist));
618}616}
619617
620//TODO: we could accept a 90 degree transform618//TODO: we could accept a 90 degree transform

Subscribers

People subscribed via source and target branches