Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: cc/resources/tile_manager_unittest.cc

Issue 18581004: cc: Remove tile ref counting in tile manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ut compile fix Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/resources/tile_manager.cc ('k') | cc/test/fake_picture_layer_tiling_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/resources/tile.h" 5 #include "cc/resources/tile.h"
6 #include "cc/resources/tile_priority.h" 6 #include "cc/resources/tile_priority.h"
7 #include "cc/test/fake_output_surface.h" 7 #include "cc/test/fake_output_surface.h"
8 #include "cc/test/fake_tile_manager.h" 8 #include "cc/test/fake_tile_manager.h"
9 #include "cc/test/fake_tile_manager_client.h" 9 #include "cc/test/fake_tile_manager_client.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 151
152 Initialize(10, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); 152 Initialize(10, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY);
153 TileVector active_now = 153 TileVector active_now =
154 CreateTiles(3, TilePriorityForNowBin(), TilePriority()); 154 CreateTiles(3, TilePriorityForNowBin(), TilePriority());
155 TileVector pending_now = 155 TileVector pending_now =
156 CreateTiles(3, TilePriority(), TilePriorityForNowBin()); 156 CreateTiles(3, TilePriority(), TilePriorityForNowBin());
157 TileVector active_pending_soon = CreateTiles( 157 TileVector active_pending_soon = CreateTiles(
158 3, TilePriorityForSoonBin(), TilePriorityForSoonBin()); 158 3, TilePriorityForSoonBin(), TilePriorityForSoonBin());
159 TileVector never_bin = CreateTiles(1, TilePriority(), TilePriority()); 159 TileVector never_bin = CreateTiles(1, TilePriority(), TilePriority());
160 160
161 tile_manager()->ManageTiles(); 161 tile_manager()->AssignMemoryToTiles();
162 162
163 EXPECT_EQ(3, AssignedMemoryCount(active_now)); 163 EXPECT_EQ(3, AssignedMemoryCount(active_now));
164 EXPECT_EQ(3, AssignedMemoryCount(pending_now)); 164 EXPECT_EQ(3, AssignedMemoryCount(pending_now));
165 EXPECT_EQ(3, AssignedMemoryCount(active_pending_soon)); 165 EXPECT_EQ(3, AssignedMemoryCount(active_pending_soon));
166 EXPECT_EQ(0, AssignedMemoryCount(never_bin)); 166 EXPECT_EQ(0, AssignedMemoryCount(never_bin));
167 } 167 }
168 168
169 TEST_F(TileManagerTest, EnoughMemoryAllowPrepaintOnly) { 169 TEST_F(TileManagerTest, EnoughMemoryAllowPrepaintOnly) {
170 // A few tiles of each type of priority, with enough memory for all tiles, 170 // A few tiles of each type of priority, with enough memory for all tiles,
171 // with the exception of never bin. 171 // with the exception of never bin.
172 172
173 Initialize(10, ALLOW_PREPAINT_ONLY, SMOOTHNESS_TAKES_PRIORITY); 173 Initialize(10, ALLOW_PREPAINT_ONLY, SMOOTHNESS_TAKES_PRIORITY);
174 TileVector active_now = 174 TileVector active_now =
175 CreateTiles(3, TilePriorityForNowBin(), TilePriority()); 175 CreateTiles(3, TilePriorityForNowBin(), TilePriority());
176 TileVector pending_now = 176 TileVector pending_now =
177 CreateTiles(3, TilePriority(), TilePriorityForNowBin()); 177 CreateTiles(3, TilePriority(), TilePriorityForNowBin());
178 TileVector active_pending_soon = CreateTiles( 178 TileVector active_pending_soon = CreateTiles(
179 3, TilePriorityForSoonBin(), TilePriorityForSoonBin()); 179 3, TilePriorityForSoonBin(), TilePriorityForSoonBin());
180 TileVector never_bin = CreateTiles(1, TilePriority(), TilePriority()); 180 TileVector never_bin = CreateTiles(1, TilePriority(), TilePriority());
181 181
182 tile_manager()->ManageTiles(); 182 tile_manager()->AssignMemoryToTiles();
183 183
184 EXPECT_EQ(3, AssignedMemoryCount(active_now)); 184 EXPECT_EQ(3, AssignedMemoryCount(active_now));
185 EXPECT_EQ(3, AssignedMemoryCount(pending_now)); 185 EXPECT_EQ(3, AssignedMemoryCount(pending_now));
186 EXPECT_EQ(3, AssignedMemoryCount(active_pending_soon)); 186 EXPECT_EQ(3, AssignedMemoryCount(active_pending_soon));
187 EXPECT_EQ(0, AssignedMemoryCount(never_bin)); 187 EXPECT_EQ(0, AssignedMemoryCount(never_bin));
188 } 188 }
189 189
190 TEST_F(TileManagerTest, EnoughMemoryAllowAbsoluteMinimum) { 190 TEST_F(TileManagerTest, EnoughMemoryAllowAbsoluteMinimum) {
191 // A few tiles of each type of priority, with enough memory for all tiles, 191 // A few tiles of each type of priority, with enough memory for all tiles,
192 // with the exception of never and soon bins. 192 // with the exception of never and soon bins.
193 193
194 Initialize(10, ALLOW_ABSOLUTE_MINIMUM, SMOOTHNESS_TAKES_PRIORITY); 194 Initialize(10, ALLOW_ABSOLUTE_MINIMUM, SMOOTHNESS_TAKES_PRIORITY);
195 TileVector active_now = 195 TileVector active_now =
196 CreateTiles(3, TilePriorityForNowBin(), TilePriority()); 196 CreateTiles(3, TilePriorityForNowBin(), TilePriority());
197 TileVector pending_now = 197 TileVector pending_now =
198 CreateTiles(3, TilePriority(), TilePriorityForNowBin()); 198 CreateTiles(3, TilePriority(), TilePriorityForNowBin());
199 TileVector active_pending_soon = CreateTiles( 199 TileVector active_pending_soon = CreateTiles(
200 3, TilePriorityForSoonBin(), TilePriorityForSoonBin()); 200 3, TilePriorityForSoonBin(), TilePriorityForSoonBin());
201 TileVector never_bin = CreateTiles(1, TilePriority(), TilePriority()); 201 TileVector never_bin = CreateTiles(1, TilePriority(), TilePriority());
202 202
203 tile_manager()->ManageTiles(); 203 tile_manager()->AssignMemoryToTiles();
204 204
205 EXPECT_EQ(3, AssignedMemoryCount(active_now)); 205 EXPECT_EQ(3, AssignedMemoryCount(active_now));
206 EXPECT_EQ(3, AssignedMemoryCount(pending_now)); 206 EXPECT_EQ(3, AssignedMemoryCount(pending_now));
207 EXPECT_EQ(0, AssignedMemoryCount(active_pending_soon)); 207 EXPECT_EQ(0, AssignedMemoryCount(active_pending_soon));
208 EXPECT_EQ(0, AssignedMemoryCount(never_bin)); 208 EXPECT_EQ(0, AssignedMemoryCount(never_bin));
209 } 209 }
210 210
211 TEST_F(TileManagerTest, EnoughMemoryAllowNothing) { 211 TEST_F(TileManagerTest, EnoughMemoryAllowNothing) {
212 // A few tiles of each type of priority, with enough memory for all tiles, 212 // A few tiles of each type of priority, with enough memory for all tiles,
213 // but allow nothing should not assign any memory. 213 // but allow nothing should not assign any memory.
214 214
215 Initialize(10, ALLOW_NOTHING, SMOOTHNESS_TAKES_PRIORITY); 215 Initialize(10, ALLOW_NOTHING, SMOOTHNESS_TAKES_PRIORITY);
216 TileVector active_now = 216 TileVector active_now =
217 CreateTiles(3, TilePriorityForNowBin(), TilePriority()); 217 CreateTiles(3, TilePriorityForNowBin(), TilePriority());
218 TileVector pending_now = 218 TileVector pending_now =
219 CreateTiles(3, TilePriority(), TilePriorityForNowBin()); 219 CreateTiles(3, TilePriority(), TilePriorityForNowBin());
220 TileVector active_pending_soon = CreateTiles( 220 TileVector active_pending_soon = CreateTiles(
221 3, TilePriorityForSoonBin(), TilePriorityForSoonBin()); 221 3, TilePriorityForSoonBin(), TilePriorityForSoonBin());
222 TileVector never_bin = CreateTiles(1, TilePriority(), TilePriority()); 222 TileVector never_bin = CreateTiles(1, TilePriority(), TilePriority());
223 223
224 tile_manager()->ManageTiles(); 224 tile_manager()->AssignMemoryToTiles();
225 225
226 EXPECT_EQ(0, AssignedMemoryCount(active_now)); 226 EXPECT_EQ(0, AssignedMemoryCount(active_now));
227 EXPECT_EQ(0, AssignedMemoryCount(pending_now)); 227 EXPECT_EQ(0, AssignedMemoryCount(pending_now));
228 EXPECT_EQ(0, AssignedMemoryCount(active_pending_soon)); 228 EXPECT_EQ(0, AssignedMemoryCount(active_pending_soon));
229 EXPECT_EQ(0, AssignedMemoryCount(never_bin)); 229 EXPECT_EQ(0, AssignedMemoryCount(never_bin));
230 } 230 }
231 231
232 TEST_F(TileManagerTest, PartialOOMMemoryToPending) { 232 TEST_F(TileManagerTest, PartialOOMMemoryToPending) {
233 // 5 tiles on active tree eventually bin, 5 tiles on pending tree that are 233 // 5 tiles on active tree eventually bin, 5 tiles on pending tree that are
234 // required for activation, but only enough memory for 8 tiles. The result 234 // required for activation, but only enough memory for 8 tiles. The result
235 // is all pending tree tiles get memory, and 3 of the active tree tiles 235 // is all pending tree tiles get memory, and 3 of the active tree tiles
236 // get memory. 236 // get memory.
237 237
238 Initialize(8, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); 238 Initialize(8, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY);
239 TileVector active_tree_tiles = 239 TileVector active_tree_tiles =
240 CreateTiles(5, TilePriorityForEventualBin(), TilePriority()); 240 CreateTiles(5, TilePriorityForEventualBin(), TilePriority());
241 TileVector pending_tree_tiles = 241 TileVector pending_tree_tiles =
242 CreateTiles(5, TilePriority(), TilePriorityRequiredForActivation()); 242 CreateTiles(5, TilePriority(), TilePriorityRequiredForActivation());
243 243
244 tile_manager()->ManageTiles(); 244 tile_manager()->AssignMemoryToTiles();
245 245
246 EXPECT_EQ(5, AssignedMemoryCount(active_tree_tiles)); 246 EXPECT_EQ(5, AssignedMemoryCount(active_tree_tiles));
247 EXPECT_EQ(3, AssignedMemoryCount(pending_tree_tiles)); 247 EXPECT_EQ(3, AssignedMemoryCount(pending_tree_tiles));
248 248
249 tile_manager()->ReassignMemoryToOOMTilesRequiredForActivation(); 249 tile_manager()->ReassignMemoryToOOMTilesRequiredForActivation();
250 250
251 EXPECT_EQ(3, AssignedMemoryCount(active_tree_tiles)); 251 EXPECT_EQ(3, AssignedMemoryCount(active_tree_tiles));
252 EXPECT_EQ(5, AssignedMemoryCount(pending_tree_tiles)); 252 EXPECT_EQ(5, AssignedMemoryCount(pending_tree_tiles));
253 } 253 }
254 254
255 TEST_F(TileManagerTest, PartialOOMMemoryToActive) { 255 TEST_F(TileManagerTest, PartialOOMMemoryToActive) {
256 // 5 tiles on active tree eventually bin, 5 tiles on pending tree now bin, 256 // 5 tiles on active tree eventually bin, 5 tiles on pending tree now bin,
257 // but only enough memory for 8 tiles. The result is all active tree tiles 257 // but only enough memory for 8 tiles. The result is all active tree tiles
258 // get memory, and 3 of the pending tree tiles get memory. 258 // get memory, and 3 of the pending tree tiles get memory.
259 259
260 Initialize(8, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); 260 Initialize(8, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY);
261 TileVector active_tree_tiles = 261 TileVector active_tree_tiles =
262 CreateTiles(5, TilePriorityForNowBin(), TilePriority()); 262 CreateTiles(5, TilePriorityForNowBin(), TilePriority());
263 TileVector pending_tree_tiles = 263 TileVector pending_tree_tiles =
264 CreateTiles(5, TilePriority(), TilePriorityForNowBin()); 264 CreateTiles(5, TilePriority(), TilePriorityForNowBin());
265 265
266 tile_manager()->ManageTiles(); 266 tile_manager()->AssignMemoryToTiles();
267 267
268 EXPECT_EQ(5, AssignedMemoryCount(active_tree_tiles)); 268 EXPECT_EQ(5, AssignedMemoryCount(active_tree_tiles));
269 EXPECT_EQ(3, AssignedMemoryCount(pending_tree_tiles)); 269 EXPECT_EQ(3, AssignedMemoryCount(pending_tree_tiles));
270 } 270 }
271 271
272 TEST_F(TileManagerTest, TotalOOMMemoryToPending) { 272 TEST_F(TileManagerTest, TotalOOMMemoryToPending) {
273 // 5 tiles on active tree eventually bin, 5 tiles on pending tree that are 273 // 5 tiles on active tree eventually bin, 5 tiles on pending tree that are
274 // required for activation, but only enough memory for 4 tiles. The result 274 // required for activation, but only enough memory for 4 tiles. The result
275 // is 4 pending tree tiles get memory, and none of the active tree tiles 275 // is 4 pending tree tiles get memory, and none of the active tree tiles
276 // get memory. 276 // get memory.
277 277
278 Initialize(4, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); 278 Initialize(4, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY);
279 TileVector active_tree_tiles = 279 TileVector active_tree_tiles =
280 CreateTiles(5, TilePriorityForEventualBin(), TilePriority()); 280 CreateTiles(5, TilePriorityForEventualBin(), TilePriority());
281 TileVector pending_tree_tiles = 281 TileVector pending_tree_tiles =
282 CreateTiles(5, TilePriority(), TilePriorityRequiredForActivation()); 282 CreateTiles(5, TilePriority(), TilePriorityRequiredForActivation());
283 283
284 tile_manager()->ManageTiles(); 284 tile_manager()->AssignMemoryToTiles();
285 285
286 EXPECT_EQ(4, AssignedMemoryCount(active_tree_tiles)); 286 EXPECT_EQ(4, AssignedMemoryCount(active_tree_tiles));
287 EXPECT_EQ(0, AssignedMemoryCount(pending_tree_tiles)); 287 EXPECT_EQ(0, AssignedMemoryCount(pending_tree_tiles));
288 288
289 tile_manager()->ReassignMemoryToOOMTilesRequiredForActivation(); 289 tile_manager()->ReassignMemoryToOOMTilesRequiredForActivation();
290 290
291 EXPECT_EQ(0, AssignedMemoryCount(active_tree_tiles)); 291 EXPECT_EQ(0, AssignedMemoryCount(active_tree_tiles));
292 EXPECT_EQ(4, AssignedMemoryCount(pending_tree_tiles)); 292 EXPECT_EQ(4, AssignedMemoryCount(pending_tree_tiles));
293 } 293 }
294 294
295 TEST_F(TileManagerTest, TotalOOMActiveSoonMemoryToPending) { 295 TEST_F(TileManagerTest, TotalOOMActiveSoonMemoryToPending) {
296 // 5 tiles on active tree soon bin, 5 tiles on pending tree that are 296 // 5 tiles on active tree soon bin, 5 tiles on pending tree that are
297 // required for activation, but only enough memory for 4 tiles. The result 297 // required for activation, but only enough memory for 4 tiles. The result
298 // is 4 pending tree tiles get memory, and none of the active tree tiles 298 // is 4 pending tree tiles get memory, and none of the active tree tiles
299 // get memory. 299 // get memory.
300 300
301 Initialize(4, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); 301 Initialize(4, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY);
302 TileVector active_tree_tiles = 302 TileVector active_tree_tiles =
303 CreateTiles(5, TilePriorityForSoonBin(), TilePriority()); 303 CreateTiles(5, TilePriorityForSoonBin(), TilePriority());
304 TileVector pending_tree_tiles = 304 TileVector pending_tree_tiles =
305 CreateTiles(5, TilePriority(), TilePriorityRequiredForActivation()); 305 CreateTiles(5, TilePriority(), TilePriorityRequiredForActivation());
306 306
307 tile_manager()->ManageTiles(); 307 tile_manager()->AssignMemoryToTiles();
308 308
309 EXPECT_EQ(4, AssignedMemoryCount(active_tree_tiles)); 309 EXPECT_EQ(4, AssignedMemoryCount(active_tree_tiles));
310 EXPECT_EQ(0, AssignedMemoryCount(pending_tree_tiles)); 310 EXPECT_EQ(0, AssignedMemoryCount(pending_tree_tiles));
311 311
312 tile_manager()->ReassignMemoryToOOMTilesRequiredForActivation(); 312 tile_manager()->ReassignMemoryToOOMTilesRequiredForActivation();
313 313
314 EXPECT_EQ(0, AssignedMemoryCount(active_tree_tiles)); 314 EXPECT_EQ(0, AssignedMemoryCount(active_tree_tiles));
315 EXPECT_EQ(4, AssignedMemoryCount(pending_tree_tiles)); 315 EXPECT_EQ(4, AssignedMemoryCount(pending_tree_tiles));
316 } 316 }
317 317
318 TEST_F(TileManagerTest, TotalOOMMemoryToActive) { 318 TEST_F(TileManagerTest, TotalOOMMemoryToActive) {
319 // 5 tiles on active tree eventually bin, 5 tiles on pending tree now bin, 319 // 5 tiles on active tree eventually bin, 5 tiles on pending tree now bin,
320 // but only enough memory for 4 tiles. The result is 5 active tree tiles 320 // but only enough memory for 4 tiles. The result is 5 active tree tiles
321 // get memory, and none of the pending tree tiles get memory. 321 // get memory, and none of the pending tree tiles get memory.
322 322
323 Initialize(4, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); 323 Initialize(4, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY);
324 TileVector active_tree_tiles = 324 TileVector active_tree_tiles =
325 CreateTiles(5, TilePriorityForNowBin(), TilePriority()); 325 CreateTiles(5, TilePriorityForNowBin(), TilePriority());
326 TileVector pending_tree_tiles = 326 TileVector pending_tree_tiles =
327 CreateTiles(5, TilePriority(), TilePriorityForNowBin()); 327 CreateTiles(5, TilePriority(), TilePriorityForNowBin());
328 328
329 tile_manager()->ManageTiles(); 329 tile_manager()->AssignMemoryToTiles();
330 330
331 EXPECT_EQ(4, AssignedMemoryCount(active_tree_tiles)); 331 EXPECT_EQ(4, AssignedMemoryCount(active_tree_tiles));
332 EXPECT_EQ(0, AssignedMemoryCount(pending_tree_tiles)); 332 EXPECT_EQ(0, AssignedMemoryCount(pending_tree_tiles));
333 } 333 }
334 334
335 TEST_F(TileManagerTest, RasterAsLCD) { 335 TEST_F(TileManagerTest, RasterAsLCD) {
336 Initialize(20, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY); 336 Initialize(20, ALLOW_ANYTHING, SMOOTHNESS_TAKES_PRIORITY);
337 TileVector active_tree_tiles = 337 TileVector active_tree_tiles =
338 CreateTiles(5, TilePriorityForNowBin(), TilePriority()); 338 CreateTiles(5, TilePriorityForNowBin(), TilePriority());
339 TileVector pending_tree_tiles = 339 TileVector pending_tree_tiles =
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 } 472 }
473 473
474 tile_manager()->ManageTiles(); 474 tile_manager()->ManageTiles();
475 475
476 EXPECT_EQ(0, TilesWithLCDCount(active_tree_tiles)); 476 EXPECT_EQ(0, TilesWithLCDCount(active_tree_tiles));
477 EXPECT_EQ(0, TilesWithLCDCount(pending_tree_tiles)); 477 EXPECT_EQ(0, TilesWithLCDCount(pending_tree_tiles));
478 } 478 }
479 479
480 } // namespace 480 } // namespace
481 } // namespace cc 481 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/tile_manager.cc ('k') | cc/test/fake_picture_layer_tiling_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698