Mir

Merge lp:~vanvugt/mir/better-scaling-test-2 into lp:mir

Proposed by Daniel van Vugt
Status: Merged
Merged at revision: 2901
Proposed branch: lp:~vanvugt/mir/better-scaling-test-2
Merge into: lp:mir
Diff against target: 128 lines (+18/-57)
1 file modified
tests/unit-tests/compositor/test_buffer_queue.cpp (+18/-57)
To merge this branch: bzr merge lp:~vanvugt/mir/better-scaling-test-2
Reviewer Review Type Date Requested Status
Kevin DuBois (community) Approve
PS Jenkins bot (community) continuous-integration Needs Fixing
Review via email: mp+269738@code.launchpad.net

Commit message

Simplify the new buffer queue scaling test. It was stupidly
overcomplicated.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Kevin DuBois (kdub) wrote :

lgtm

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/unit-tests/compositor/test_buffer_queue.cpp'
2--- tests/unit-tests/compositor/test_buffer_queue.cpp 2015-09-01 02:03:02 +0000
3+++ tests/unit-tests/compositor/test_buffer_queue.cpp 2015-09-01 10:47:35 +0000
4@@ -1638,12 +1638,14 @@
5
6 int const nframes = 100;
7
8- for (int frame = 0; frame < nframes;)
9+ std::shared_ptr<AcquireWaitHandle> client;
10+
11+ for (int frame = 0; frame < nframes; ++frame)
12 {
13- std::shared_ptr<AcquireWaitHandle> client;
14 do
15 {
16- client = client_acquire_async(q);
17+ if (!client)
18+ client = client_acquire_async(q);
19 if (client->has_acquired_buffer())
20 {
21 if (frame > delay)
22@@ -1653,19 +1655,7 @@
23 }
24 } while (!client);
25
26- while (q.buffers_ready_for_compositor(nullptr))
27- {
28- q.compositor_release(q.compositor_acquire(nullptr));
29- ++frame;
30- }
31-
32- if (client->has_acquired_buffer())
33- {
34- if (frame > delay)
35- buffers_acquired.insert(client->buffer());
36- client->release_buffer();
37- client.reset();
38- }
39+ q.compositor_release(q.compositor_acquire(nullptr));
40 }
41 // Expect double-buffers for fast clients
42 EXPECT_THAT(buffers_acquired.size(), Eq(2));
43@@ -1674,10 +1664,10 @@
44 buffers_acquired.clear();
45 for (int frame = 0; frame < nframes;)
46 {
47- std::shared_ptr<AcquireWaitHandle> client;
48 do
49 {
50- client = client_acquire_async(q);
51+ if (!client)
52+ client = client_acquire_async(q);
53 if (client->has_acquired_buffer())
54 {
55 if (frame > delay)
56@@ -1687,42 +1677,25 @@
57 }
58 } while (!client);
59
60- while (q.buffers_ready_for_compositor(nullptr))
61- {
62- q.compositor_release(q.compositor_acquire(nullptr));
63- ++frame;
64- }
65-
66- if (client->has_acquired_buffer())
67- {
68- if (frame > delay)
69- buffers_acquired.insert(client->buffer());
70- client->release_buffer();
71- client.reset();
72- }
73-
74- // Balance compositor consumption with client production:
75- while (q.buffers_ready_for_compositor(nullptr))
76- {
77- q.compositor_release(q.compositor_acquire(nullptr));
78- ++frame;
79- }
80-
81 // Imbalance: Compositor is now requesting more than the client does:
82- q.compositor_release(q.compositor_acquire(nullptr));
83- ++frame;
84+ int nready = q.buffers_ready_for_compositor(nullptr);
85+ for (int r = 0; r <= nready; ++r)
86+ {
87+ q.compositor_release(q.compositor_acquire(nullptr));
88+ ++frame;
89+ }
90 }
91 // Expect at least triple buffers for sluggish clients
92 EXPECT_THAT(buffers_acquired.size(), Ge(3));
93
94 // And what happens if the client becomes fast again?...
95 buffers_acquired.clear();
96- for (int frame = 0; frame < nframes;)
97+ for (int frame = 0; frame < nframes; ++frame)
98 {
99- std::shared_ptr<AcquireWaitHandle> client;
100 do
101 {
102- client = client_acquire_async(q);
103+ if (!client)
104+ client = client_acquire_async(q);
105 if (client->has_acquired_buffer())
106 {
107 if (frame > delay)
108@@ -1732,19 +1705,7 @@
109 }
110 } while (!client);
111
112- while (q.buffers_ready_for_compositor(nullptr))
113- {
114- q.compositor_release(q.compositor_acquire(nullptr));
115- ++frame;
116- }
117-
118- if (client->has_acquired_buffer())
119- {
120- if (frame > delay)
121- buffers_acquired.insert(client->buffer());
122- client->release_buffer();
123- client.reset();
124- }
125+ q.compositor_release(q.compositor_acquire(nullptr));
126 }
127 // Expect double-buffers for fast clients
128 EXPECT_THAT(buffers_acquired.size(), Eq(2));

Subscribers

People subscribed via source and target branches