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
=== modified file 'src/server/graphics/nested/nested_display_configuration.cpp'
--- src/server/graphics/nested/nested_display_configuration.cpp 2017-01-17 02:18:28 +0000
+++ src/server/graphics/nested/nested_display_configuration.cpp 2017-01-18 07:59:36 +0000
@@ -107,6 +107,12 @@
107 uint32_t preferred_index = mir_output_get_preferred_mode_index(output);107 uint32_t preferred_index = mir_output_get_preferred_mode_index(output);
108 uint32_t current_index = mir_output_get_current_mode_index(output);108 uint32_t current_index = mir_output_get_current_mode_index(output);
109109
110 std::vector<uint8_t> edid;
111 auto edid_size = mir_output_get_edid_size(output);
112 auto edid_start = mir_output_get_edid(output);
113 if (edid_size && edid_start)
114 edid.assign(edid_start, edid_start+edid_size);
115
110 return mg::DisplayConfigurationOutput{116 return mg::DisplayConfigurationOutput{
111 DisplayConfigurationOutputId(output_id),117 DisplayConfigurationOutputId(output_id),
112 DisplayConfigurationCardId(0), // Information not around118 DisplayConfigurationCardId(0), // Information not around
@@ -127,7 +133,7 @@
127 local_config.subpixel_arrangement,133 local_config.subpixel_arrangement,
128 local_config.gamma,134 local_config.gamma,
129 local_config.gamma_supported,135 local_config.gamma_supported,
130 {}136 std::move(edid)
131 };137 };
132}138}
133139
134140
=== modified file 'tests/unit-tests/platforms/nested/mir_display_configuration_builder.cpp'
--- tests/unit-tests/platforms/nested/mir_display_configuration_builder.cpp 2017-01-17 02:18:28 +0000
+++ tests/unit-tests/platforms/nested/mir_display_configuration_builder.cpp 2017-01-18 07:59:36 +0000
@@ -36,6 +36,24 @@
36uint32_t const default_physical_width_mm = 0;36uint32_t const default_physical_width_mm = 0;
37uint32_t const default_physical_height_mm = 0;37uint32_t const default_physical_height_mm = 0;
3838
39unsigned char const valid_edid[] =
40 "\x00\xff\xff\xff\xff\xff\xff\x00\x10\xac\x46\xf0\x4c\x4a\x31\x41"
41 "\x05\x19\x01\x04\xb5\x34\x20\x78\x3a\x1d\xf5\xae\x4f\x35\xb3\x25"
42 "\x0d\x50\x54\xa5\x4b\x00\x81\x80\xa9\x40\xd1\x00\x71\x4f\x01\x01"
43 "\x01\x01\x01\x01\x01\x01\x28\x3c\x80\xa0\x70\xb0\x23\x40\x30\x20"
44 "\x36\x00\x06\x44\x21\x00\x00\x1a\x00\x00\x00\xff\x00\x59\x43\x4d"
45 "\x30\x46\x35\x31\x52\x41\x31\x4a\x4c\x0a\x00\x00\x00\xfc\x00\x44"
46 "\x45\x4c\x4c\x20\x55\x32\x34\x31\x33\x0a\x20\x20\x00\x00\x00\xfd"
47 "\x00\x38\x4c\x1e\x51\x11\x00\x0a\x20\x20\x20\x20\x20\x20\x01\x42"
48 "\x02\x03\x1d\xf1\x50\x90\x05\x04\x03\x02\x07\x16\x01\x1f\x12\x13"
49 "\x14\x20\x15\x11\x06\x23\x09\x1f\x07\x83\x01\x00\x00\x02\x3a\x80"
50 "\x18\x71\x38\x2d\x40\x58\x2c\x45\x00\x06\x44\x21\x00\x00\x1e\x01"
51 "\x1d\x80\x18\x71\x1c\x16\x20\x58\x2c\x25\x00\x06\x44\x21\x00\x00"
52 "\x9e\x01\x1d\x00\x72\x51\xd0\x1e\x20\x6e\x28\x55\x00\x06\x44\x21"
53 "\x00\x00\x1e\x8c\x0a\xd0\x8a\x20\xe0\x2d\x10\x10\x3e\x96\x00\x06"
54 "\x44\x21\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
55 "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09";
56
39}57}
4058
41std::shared_ptr<MirDisplayConfig> mt::build_trivial_configuration()59std::shared_ptr<MirDisplayConfig> mt::build_trivial_configuration()
@@ -62,6 +80,7 @@
62 output->set_preferred_mode(default_preferred_mode);80 output->set_preferred_mode(default_preferred_mode);
63 output->set_power_mode(mir_power_mode_on);81 output->set_power_mode(mir_power_mode_on);
64 output->set_orientation(mir_orientation_normal);82 output->set_orientation(mir_orientation_normal);
83 output->set_edid(valid_edid, sizeof(valid_edid));
6584
66 return std::make_shared<MirDisplayConfig>(conf);85 return std::make_shared<MirDisplayConfig>(conf);
67}86}
@@ -101,6 +120,7 @@
101 output->set_preferred_mode(default_preferred_mode);120 output->set_preferred_mode(default_preferred_mode);
102 output->set_power_mode(mir_power_mode_on);121 output->set_power_mode(mir_power_mode_on);
103 output->set_orientation(mir_orientation_normal);122 output->set_orientation(mir_orientation_normal);
123 output->set_edid(valid_edid, sizeof(valid_edid));
104 }124 }
105125
106 return std::make_shared<MirDisplayConfig>(conf);126 return std::make_shared<MirDisplayConfig>(conf);
107127
=== modified file 'tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp'
--- tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp 2017-01-17 02:18:28 +0000
+++ tests/unit-tests/platforms/nested/test_nested_display_configuration.cpp 2017-01-18 07:59:36 +0000
@@ -147,6 +147,28 @@
147 });147 });
148}148}
149149
150TEST(NestedDisplayConfiguration, includes_host_edid)
151{
152 auto host_conf = mt::build_trivial_configuration();
153 auto const output = mir_display_config_get_output(host_conf.get(), 0);
154 auto edid_start = mir_output_get_edid(output);
155 auto edid_size = mir_output_get_edid_size(output);
156
157 ASSERT_NE(nullptr, edid_start);
158 ASSERT_NE(0, edid_size);
159
160 std::vector<uint8_t> host_edid(edid_start, edid_start+edid_size);
161
162 mgn::NestedDisplayConfiguration nested_conf(host_conf);
163 int matches = 0;
164 nested_conf.for_each_output([&](mg::DisplayConfigurationOutput const& output)
165 {
166 ASSERT_EQ(host_edid, output.edid);
167 ++matches;
168 });
169 EXPECT_NE(0, matches);
170}
171
150TEST(NestedDisplayConfiguration, clone_matches_original_configuration)172TEST(NestedDisplayConfiguration, clone_matches_original_configuration)
151{173{
152 mgn::NestedDisplayConfiguration config(mt::build_non_trivial_configuration());174 mgn::NestedDisplayConfiguration config(mt::build_non_trivial_configuration());

Subscribers

People subscribed via source and target branches