Mir

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

Proposed by Daniel van Vugt on 2017-01-20
Status: Merged
Approved by: Cemil Azizoglu on 2017-01-23
Approved revision: 3969
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 2017-01-20 Approve on 2017-01-24
Cemil Azizoglu (community) Approve on 2017-01-23
Kevin DuBois (community) 2017-01-20 Approve on 2017-01-23
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.
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)
Daniel van Vugt (vanvugt) wrote :
lp:~vanvugt/mir/fix-1657755 updated on 2017-01-20
3968. By Daniel van Vugt on 2017-01-20

Try again, Jenkins

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)
Daniel van Vugt (vanvugt) wrote :
lp:~vanvugt/mir/fix-1657755 updated on 2017-01-23
3969. By Daniel van Vugt on 2017-01-23

Fix latest prereq branch (and latest trunk)

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)
Daniel van Vugt (vanvugt) wrote :

Finished manual device testing. Seems to work well.

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
Cemil Azizoglu (cemil-azizoglu) wrote :

ok

review: Approve
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
1=== modified file 'src/platforms/android/server/hwc_device.cpp'
2--- src/platforms/android/server/hwc_device.cpp 2017-01-18 02:29:37 +0000
3+++ src/platforms/android/server/hwc_device.cpp 2017-01-23 03:41:38 +0000
4@@ -56,8 +56,7 @@
5 //TODO: enable planeAlpha for (hwc version >= 1.2), 90 deg rotation
6 static glm::mat4 const identity;
7 if (plane_alpha_is_translucent(*renderable) ||
8- (renderable->transformation() != identity) ||
9- (renderable->swap_interval() == 0)) //See LP: #1369763
10+ renderable->transformation() != identity)
11 {
12 return false;
13 }
14
15=== modified file 'tests/unit-tests/platforms/android/server/test_hwc_device.cpp'
16--- tests/unit-tests/platforms/android/server/test_hwc_device.cpp 2017-01-23 03:41:38 +0000
17+++ tests/unit-tests/platforms/android/server/test_hwc_device.cpp 2017-01-23 03:41:38 +0000
18@@ -600,10 +600,8 @@
19 EXPECT_FALSE(device.compatible_renderlist(renderlist));
20 }
21
22-//LP: #1369763. We could get swapinterval 0 to work with overlays, but we'd need
23-//the vsync signal from hwc to reach the client, so the client can rate-limit its submissions.
24-// Update: We have client-side vsync now so it should be possible to do this...
25-TEST_F(HwcDevice, rejects_list_containing_interval_0)
26+// Regression test for LP: #1657755
27+TEST_F(HwcDevice, accepts_list_containing_interval_0)
28 {
29 using namespace ::testing;
30
31@@ -614,7 +612,7 @@
32 .WillByDefault(Return(0));
33
34 mg::RenderableList renderlist{renderable};
35- EXPECT_FALSE(device.compatible_renderlist(renderlist));
36+ EXPECT_TRUE(device.compatible_renderlist(renderlist));
37 }
38
39 //TODO: we could accept a 90 degree transform

Subscribers

People subscribed via source and target branches