Mir

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

Proposed by Daniel van Vugt
Status: Merged
Approved by: Alan Griffiths
Approved revision: no longer in the source branch.
Merged at revision: 3955
Proposed branch: lp:~vanvugt/mir/fix-1651633
Merge into: lp:mir
Diff against target: 103 lines (+49/-1)
3 files modified
src/server/graphics/nested/nested_display_configuration.cpp (+7/-1)
tests/unit-tests/platforms/nested/mir_display_configuration_builder.cpp (+20/-0)
tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp (+22/-0)
To merge this branch: bzr merge lp:~vanvugt/mir/fix-1651633
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Andreas Pokorny (community) Approve
Alan Griffiths Approve
Review via email: mp+314985@code.launchpad.net

Commit message

Provide missing EDID data in nested servers (LP: #1651633)

To post a comment you must log in.
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Looks good

review: Approve
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

ok

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

FAILED: Continuous integration, rev:3956
https://mir-jenkins.ubuntu.com/job/mir-ci/2755/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/3602/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/3673
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/3663
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/3663
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/3663
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3629/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3629
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3629/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3629
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3629/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/3629
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/3629/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/3629
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/3629/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/3629
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3629/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :
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/server/graphics/nested/nested_display_configuration.cpp'
2--- src/server/graphics/nested/nested_display_configuration.cpp 2017-01-17 02:18:28 +0000
3+++ src/server/graphics/nested/nested_display_configuration.cpp 2017-01-18 07:59:36 +0000
4@@ -107,6 +107,12 @@
5 uint32_t preferred_index = mir_output_get_preferred_mode_index(output);
6 uint32_t current_index = mir_output_get_current_mode_index(output);
7
8+ std::vector<uint8_t> edid;
9+ auto edid_size = mir_output_get_edid_size(output);
10+ auto edid_start = mir_output_get_edid(output);
11+ if (edid_size && edid_start)
12+ edid.assign(edid_start, edid_start+edid_size);
13+
14 return mg::DisplayConfigurationOutput{
15 DisplayConfigurationOutputId(output_id),
16 DisplayConfigurationCardId(0), // Information not around
17@@ -127,7 +133,7 @@
18 local_config.subpixel_arrangement,
19 local_config.gamma,
20 local_config.gamma_supported,
21- {}
22+ std::move(edid)
23 };
24 }
25
26
27=== modified file 'tests/unit-tests/platforms/nested/mir_display_configuration_builder.cpp'
28--- tests/unit-tests/platforms/nested/mir_display_configuration_builder.cpp 2017-01-17 02:18:28 +0000
29+++ tests/unit-tests/platforms/nested/mir_display_configuration_builder.cpp 2017-01-18 07:59:36 +0000
30@@ -36,6 +36,24 @@
31 uint32_t const default_physical_width_mm = 0;
32 uint32_t const default_physical_height_mm = 0;
33
34+unsigned char const valid_edid[] =
35+ "\x00\xff\xff\xff\xff\xff\xff\x00\x10\xac\x46\xf0\x4c\x4a\x31\x41"
36+ "\x05\x19\x01\x04\xb5\x34\x20\x78\x3a\x1d\xf5\xae\x4f\x35\xb3\x25"
37+ "\x0d\x50\x54\xa5\x4b\x00\x81\x80\xa9\x40\xd1\x00\x71\x4f\x01\x01"
38+ "\x01\x01\x01\x01\x01\x01\x28\x3c\x80\xa0\x70\xb0\x23\x40\x30\x20"
39+ "\x36\x00\x06\x44\x21\x00\x00\x1a\x00\x00\x00\xff\x00\x59\x43\x4d"
40+ "\x30\x46\x35\x31\x52\x41\x31\x4a\x4c\x0a\x00\x00\x00\xfc\x00\x44"
41+ "\x45\x4c\x4c\x20\x55\x32\x34\x31\x33\x0a\x20\x20\x00\x00\x00\xfd"
42+ "\x00\x38\x4c\x1e\x51\x11\x00\x0a\x20\x20\x20\x20\x20\x20\x01\x42"
43+ "\x02\x03\x1d\xf1\x50\x90\x05\x04\x03\x02\x07\x16\x01\x1f\x12\x13"
44+ "\x14\x20\x15\x11\x06\x23\x09\x1f\x07\x83\x01\x00\x00\x02\x3a\x80"
45+ "\x18\x71\x38\x2d\x40\x58\x2c\x45\x00\x06\x44\x21\x00\x00\x1e\x01"
46+ "\x1d\x80\x18\x71\x1c\x16\x20\x58\x2c\x25\x00\x06\x44\x21\x00\x00"
47+ "\x9e\x01\x1d\x00\x72\x51\xd0\x1e\x20\x6e\x28\x55\x00\x06\x44\x21"
48+ "\x00\x00\x1e\x8c\x0a\xd0\x8a\x20\xe0\x2d\x10\x10\x3e\x96\x00\x06"
49+ "\x44\x21\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
50+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09";
51+
52 }
53
54 std::shared_ptr<MirDisplayConfig> mt::build_trivial_configuration()
55@@ -62,6 +80,7 @@
56 output->set_preferred_mode(default_preferred_mode);
57 output->set_power_mode(mir_power_mode_on);
58 output->set_orientation(mir_orientation_normal);
59+ output->set_edid(valid_edid, sizeof(valid_edid));
60
61 return std::make_shared<MirDisplayConfig>(conf);
62 }
63@@ -101,6 +120,7 @@
64 output->set_preferred_mode(default_preferred_mode);
65 output->set_power_mode(mir_power_mode_on);
66 output->set_orientation(mir_orientation_normal);
67+ output->set_edid(valid_edid, sizeof(valid_edid));
68 }
69
70 return std::make_shared<MirDisplayConfig>(conf);
71
72=== modified file 'tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp'
73--- tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp 2017-01-17 02:18:28 +0000
74+++ tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp 2017-01-18 07:59:36 +0000
75@@ -147,6 +147,28 @@
76 });
77 }
78
79+TEST(NestedDisplayConfiguration, includes_host_edid)
80+{
81+ auto host_conf = mt::build_trivial_configuration();
82+ auto const output = mir_display_config_get_output(host_conf.get(), 0);
83+ auto edid_start = mir_output_get_edid(output);
84+ auto edid_size = mir_output_get_edid_size(output);
85+
86+ ASSERT_NE(nullptr, edid_start);
87+ ASSERT_NE(0, edid_size);
88+
89+ std::vector<uint8_t> host_edid(edid_start, edid_start+edid_size);
90+
91+ mgn::NestedDisplayConfiguration nested_conf(host_conf);
92+ int matches = 0;
93+ nested_conf.for_each_output([&](mg::DisplayConfigurationOutput const& output)
94+ {
95+ ASSERT_EQ(host_edid, output.edid);
96+ ++matches;
97+ });
98+ EXPECT_NE(0, matches);
99+}
100+
101 TEST(NestedDisplayConfiguration, clone_matches_original_configuration)
102 {
103 mgn::NestedDisplayConfiguration config(mt::build_non_trivial_configuration());

Subscribers

People subscribed via source and target branches