Mir

Merge lp:~cemil-azizoglu/mir/refine-display-format-selection-on-android into lp:mir

Proposed by Cemil Azizoglu
Status: Merged
Approved by: Cemil Azizoglu
Approved revision: no longer in the source branch.
Merged at revision: 3552
Proposed branch: lp:~cemil-azizoglu/mir/refine-display-format-selection-on-android
Merge into: lp:mir
Diff against target: 64 lines (+17/-0)
2 files modified
src/platforms/android/server/hwc_blanking_control.cpp (+12/-0)
tests/unit-tests/graphics/android/test_hwc_configuration.cpp (+5/-0)
To merge this branch: bzr merge lp:~cemil-azizoglu/mir/refine-display-format-selection-on-android
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Kevin DuBois (community) Approve
Alexandros Frantzis (community) Approve
Review via email: mp+298176@code.launchpad.net

Commit message

Fixes lp:1584657 by refining the display format selection for HWC. The algorithm used is closer to what Android uses.

Description of the change

Fixes lp:1584657 by refining the display format selection for HWC. The algorithm used is closer to what Android uses.

Did regression testing to make sure the change in algorithm doesn't affect other devices. Here are the results : http://pastebin.ubuntu.com/17721006/

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

PASSED: Continuous integration, rev:3549
https://mir-jenkins.ubuntu.com/job/mir-ci/1174/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/1321
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1372
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1363
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/1363
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1335
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1335/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1335
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1335/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/1335
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1335/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/1335
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1335/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1335
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1335/artifact/output/*zip*/output.zip

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

review: Approve (continuous-integration)
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

Looks good.

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

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/330/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1328/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/356/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1379
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1370
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/1370
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1342
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1342/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1342
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial/1342/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1342/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1342/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial/1342/console

review: Needs Fixing (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

lgtm, although HwcConfiguration.fb_format_selection could be updated

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
1=== modified file 'src/platforms/android/server/hwc_blanking_control.cpp'
2--- src/platforms/android/server/hwc_blanking_control.cpp 2016-01-29 08:18:22 +0000
3+++ src/platforms/android/server/hwc_blanking_control.cpp 2016-06-22 22:51:59 +0000
4@@ -28,6 +28,9 @@
5 #include <system_error>
6 #include <chrono>
7
8+#define MIR_LOG_COMPONENT "android/server"
9+#include "mir/log.h"
10+
11 namespace mg = mir::graphics;
12 namespace mga = mir::graphics::android;
13 namespace geom = mir::geometry;
14@@ -41,6 +44,10 @@
15 EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
16 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
17 EGL_FRAMEBUFFER_TARGET_ANDROID, EGL_TRUE,
18+ EGL_RECORDABLE_ANDROID, EGL_TRUE,
19+ EGL_RED_SIZE, 8,
20+ EGL_GREEN_SIZE, 8,
21+ EGL_BLUE_SIZE, 8,
22 EGL_NONE
23 };
24
25@@ -57,14 +64,19 @@
26 int visual_id;
27 eglGetConfigAttrib(egl_display, fb_egl_config, EGL_NATIVE_VISUAL_ID, &visual_id);
28 fb_format = mga::to_mir_format(visual_id);
29+ mir::log_info("Found %d matching egl configs", matching_configs);
30+ mir::log_info("Android visual ID for selected display format : %d", visual_id);
31 }
32 else
33 {
34+ mir::log_info("No matching egl configs found");
35 //we couldn't figure out the fb format via egl. In this case, we
36 //assume abgr_8888. HWC api really should provide this information directly.
37 fb_format = mir_pixel_format_abgr_8888;
38 }
39
40+ mir::log_info("Selected Mir display format : %d", fb_format);
41+
42 eglTerminate(egl_display);
43 return fb_format;
44 }
45
46=== modified file 'tests/unit-tests/graphics/android/test_hwc_configuration.cpp'
47--- tests/unit-tests/graphics/android/test_hwc_configuration.cpp 2015-06-25 03:00:08 +0000
48+++ tests/unit-tests/graphics/android/test_hwc_configuration.cpp 2016-06-22 22:51:59 +0000
49@@ -41,11 +41,16 @@
50 {
51 using namespace testing;
52 Mock::VerifyAndClearExpectations(&mock_egl);
53+ // Should match what's in determine_hwc_fb_format() in hwc_blanking_control.cpp
54 EGLint const expected_egl_config_attr [] =
55 {
56 EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
57 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
58 EGL_FRAMEBUFFER_TARGET_ANDROID, EGL_TRUE,
59+ EGL_RECORDABLE_ANDROID, EGL_TRUE,
60+ EGL_RED_SIZE, 8,
61+ EGL_GREEN_SIZE, 8,
62+ EGL_BLUE_SIZE, 8,
63 EGL_NONE
64 };
65

Subscribers

People subscribed via source and target branches