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
=== modified file 'src/platforms/android/server/hwc_blanking_control.cpp'
--- src/platforms/android/server/hwc_blanking_control.cpp 2016-01-29 08:18:22 +0000
+++ src/platforms/android/server/hwc_blanking_control.cpp 2016-06-22 22:51:59 +0000
@@ -28,6 +28,9 @@
28#include <system_error>28#include <system_error>
29#include <chrono>29#include <chrono>
3030
31#define MIR_LOG_COMPONENT "android/server"
32#include "mir/log.h"
33
31namespace mg = mir::graphics;34namespace mg = mir::graphics;
32namespace mga = mir::graphics::android;35namespace mga = mir::graphics::android;
33namespace geom = mir::geometry;36namespace geom = mir::geometry;
@@ -41,6 +44,10 @@
41 EGL_SURFACE_TYPE, EGL_WINDOW_BIT,44 EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
42 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,45 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
43 EGL_FRAMEBUFFER_TARGET_ANDROID, EGL_TRUE,46 EGL_FRAMEBUFFER_TARGET_ANDROID, EGL_TRUE,
47 EGL_RECORDABLE_ANDROID, EGL_TRUE,
48 EGL_RED_SIZE, 8,
49 EGL_GREEN_SIZE, 8,
50 EGL_BLUE_SIZE, 8,
44 EGL_NONE51 EGL_NONE
45 };52 };
4653
@@ -57,14 +64,19 @@
57 int visual_id;64 int visual_id;
58 eglGetConfigAttrib(egl_display, fb_egl_config, EGL_NATIVE_VISUAL_ID, &visual_id);65 eglGetConfigAttrib(egl_display, fb_egl_config, EGL_NATIVE_VISUAL_ID, &visual_id);
59 fb_format = mga::to_mir_format(visual_id);66 fb_format = mga::to_mir_format(visual_id);
67 mir::log_info("Found %d matching egl configs", matching_configs);
68 mir::log_info("Android visual ID for selected display format : %d", visual_id);
60 }69 }
61 else70 else
62 {71 {
72 mir::log_info("No matching egl configs found");
63 //we couldn't figure out the fb format via egl. In this case, we73 //we couldn't figure out the fb format via egl. In this case, we
64 //assume abgr_8888. HWC api really should provide this information directly.74 //assume abgr_8888. HWC api really should provide this information directly.
65 fb_format = mir_pixel_format_abgr_8888;75 fb_format = mir_pixel_format_abgr_8888;
66 }76 }
6777
78 mir::log_info("Selected Mir display format : %d", fb_format);
79
68 eglTerminate(egl_display);80 eglTerminate(egl_display);
69 return fb_format;81 return fb_format;
70}82}
7183
=== modified file 'tests/unit-tests/graphics/android/test_hwc_configuration.cpp'
--- tests/unit-tests/graphics/android/test_hwc_configuration.cpp 2015-06-25 03:00:08 +0000
+++ tests/unit-tests/graphics/android/test_hwc_configuration.cpp 2016-06-22 22:51:59 +0000
@@ -41,11 +41,16 @@
41{41{
42 using namespace testing;42 using namespace testing;
43 Mock::VerifyAndClearExpectations(&mock_egl);43 Mock::VerifyAndClearExpectations(&mock_egl);
44 // Should match what's in determine_hwc_fb_format() in hwc_blanking_control.cpp
44 EGLint const expected_egl_config_attr [] =45 EGLint const expected_egl_config_attr [] =
45 {46 {
46 EGL_SURFACE_TYPE, EGL_WINDOW_BIT,47 EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
47 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,48 EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
48 EGL_FRAMEBUFFER_TARGET_ANDROID, EGL_TRUE,49 EGL_FRAMEBUFFER_TARGET_ANDROID, EGL_TRUE,
50 EGL_RECORDABLE_ANDROID, EGL_TRUE,
51 EGL_RED_SIZE, 8,
52 EGL_GREEN_SIZE, 8,
53 EGL_BLUE_SIZE, 8,
49 EGL_NONE54 EGL_NONE
50 };55 };
5156

Subscribers

People subscribed via source and target branches