Mir

Merge lp://staging/~raof/mir/plumb-subpixel-info into lp://staging/mir

Proposed by Chris Halse Rogers
Status: Merged
Approved by: Chris Halse Rogers
Approved revision: no longer in the source branch.
Merged at revision: 3642
Proposed branch: lp://staging/~raof/mir/plumb-subpixel-info
Merge into: lp://staging/mir
Diff against target: 690 lines (+218/-42)
25 files modified
include/client/mir_toolkit/mir_display_configuration.h (+9/-0)
include/common/mir_toolkit/common.h (+16/-0)
include/platform/mir/graphics/display_configuration.h (+4/-0)
include/test/mir/test/doubles/stub_display_configuration.h (+22/-2)
src/client/display_configuration_api.cpp (+7/-0)
src/client/symbols.map (+1/-0)
src/platform/graphics/display_configuration.cpp (+2/-1)
src/platforms/android/server/display_configuration.cpp (+3/-1)
src/platforms/android/server/fb_device.cpp (+2/-1)
src/platforms/android/server/hwc_blanking_control.cpp (+2/-1)
src/platforms/mesa/server/kms/real_kms_display_configuration.cpp (+1/-1)
src/platforms/mesa/server/x11/graphics/display_configuration.cpp (+2/-1)
src/protobuf/mir_protobuf.proto (+1/-0)
src/server/frontend/protobuf_buffer_packer.cpp (+1/-0)
src/server/graphics/nested/nested_display_configuration.cpp (+6/-4)
src/server/graphics/nested/nested_display_configuration.h (+1/-0)
tests/acceptance-tests/test_new_display_configuration.cpp (+44/-0)
tests/mir_test/display_config_matchers.cpp (+6/-3)
tests/mir_test_doubles/stub_display_configuration.cpp (+56/-11)
tests/unit-tests/graphics/mesa/kms/test_cursor.cpp (+6/-3)
tests/unit-tests/graphics/mesa/kms/test_display_configuration.cpp (+18/-9)
tests/unit-tests/graphics/test_default_display_configuration_policy.cpp (+2/-1)
tests/unit-tests/graphics/test_display_configuration.cpp (+2/-1)
tests/unit-tests/graphics/test_overlapping_output_grouping.cpp (+2/-1)
tests/unit-tests/scene/test_mediating_display_changer.cpp (+2/-1)
To merge this branch: bzr merge lp://staging/~raof/mir/plumb-subpixel-info
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Cemil Azizoglu (community) Approve
Daniel van Vugt Approve
Kevin DuBois (community) Approve
Review via email: mp+302377@code.staging.launchpad.net

Commit message

Add subpixel arrangement info to the display configuration API.

Current platforms only provide mir_subpixel_arrangement_unknown, and need to add support for setting this to platform-provided values before this will be useful.

Fixes (part one): https://bugs.launchpad.net/mir/+bug/1393578

To post a comment you must log in.
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Just at quick glance, a couple of things I was already thinking about:
  * "arrangement" is better known (and easier to type) as "order"
  * "horizontal_rgb" could be abbreviated to "hrgb" etc.
  * Consider adding "pentile" and friends. I known most OLED displays are pentile (except only for the PS Vita). And I also suspect my HP Chromebook 13 has a pentile-like LCD too (!?).

review: Needs Fixing
Revision history for this message
Chris Halse Rogers (raof) wrote :

Heh. Pentile was exactly the reason I did not choose “order”; pentile isn't an order, it's an arrangement :).

DRM uses HORIZONTAL_RGB, VERTICAL_RGB, etc. I could abbreviate, I guess.

I don't think any of our platforms can actually *report* a pentile arrangement; once we have an API that can actually return that value to us, it's easy to add it to the Mir enum :)

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Cool. I half expected as much.

I'm still annoyed and confused by pentile. It always seems to look worse...

review: Abstain
Revision history for this message
Chris Halse Rogers (raof) wrote :

That's because it *is* worse :).

It discards RGB information from each pixel.

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

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

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

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

lgtm

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

In the future I expect you would also want:

  mir_surface_get_subpixel_arrangement

For clients to choose the correct arrangement for their window. Interestingly my frame timing work has the same long-term requirement -- to know which output a surface is mostly on. Subpixel arrangement and frame timing are both specific to an output. While I can see this requirement, I also hate it. In a beautiful world a client should never know or care the attributes of a physical display it is on. With some luck most of the time all displays would have the same or very similar values.

On that note however, I still like the idea of having the option (a fake display mode) to triple the resolution and let the system compositor do sub-pixel rendering of everything(!).

review: Approve
Revision history for this message
Chris Halse Rogers (raof) wrote :

On Wed, Aug 10, 2016 at 5:37 PM, Daniel van Vugt
<email address hidden> wrote:
> Review: Approve
>
> In the future I expect you would also want:
>
> mir_surface_get_subpixel_arrangement

Actually, I think I'll just attach a MirOutput* to the surface output
event, and then clients can slurp all the relevant values out.

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/470/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1738/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/503/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1791
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1782
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1782
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1782
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1762/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1762
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1762/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1762
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1762/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/1762
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1762/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/1762
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1762/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/1762
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1762/artifact/output/*zip*/output.zip

review: Needs Fixing (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

08:00:22 9: [ FAILED ] NestedServer.animated_cursor_image_changes_are_forwarded_to_host (1358 ms)

lp:1523621 I presume

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/471/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1739/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/504/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1792
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1783
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1783
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1783
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1763/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1763
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1763/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1763
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1763/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/1763
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1763/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/1763
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1763/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/1763
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1763/artifact/output/*zip*/output.zip

review: Needs Fixing (continuous-integration)
Revision history for this message
Cemil Azizoglu (cemil-azizoglu) wrote :

LGTM

review: Approve
Revision history for this message
Chris Halse Rogers (raof) wrote :

[ FAILED ] NestedInput.nested_event_filter_receives_keyboard_from_host

Unlikely to be this branch; not the same as lp:1523621, but maybe similar?

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/478/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1754/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/511/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1807
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1798/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1798/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1798/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1778
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1778/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/1778
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1778/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1778
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1778/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/1778
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1778/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/1778
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1778/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/1778
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1778/artifact/output/*zip*/output.zip

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

Java says no: java.io.IOException: Remote call on cyclops-node14 failed

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/480/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1756/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/513/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1809
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1800/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1800/console
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1800/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1780
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1780/artifact/output/*zip*/output.zip
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1780/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1780
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1780/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/1780
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1780/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/1780
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1780/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/1780
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1780/artifact/output/*zip*/output.zip

review: Needs Fixing (continuous-integration)
Revision history for this message
Chris Halse Rogers (raof) wrote :

Java continues to run out of memory!

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
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches