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

Side by Side Diff: cc/tiles/gpu_image_decode_cache_unittest.cc

Issue 2816173002: Re-enable GpuImageDecodeCache test under MSAN (Closed)
Patch Set: Re-enable GpuImageDecodeCache test under MSAN Created 3 years, 8 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/tiles/gpu_image_decode_cache.h" 5 #include "cc/tiles/gpu_image_decode_cache.h"
6 6
7 #include "cc/paint/draw_image.h" 7 #include "cc/paint/draw_image.h"
8 #include "cc/test/test_context_provider.h" 8 #include "cc/test/test_context_provider.h"
9 #include "cc/test/test_tile_task_runner.h" 9 #include "cc/test/test_tile_task_runner.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 EXPECT_TRUE(need_unref); 110 EXPECT_TRUE(need_unref);
111 EXPECT_TRUE(task.get() == another_task.get()); 111 EXPECT_TRUE(task.get() == another_task.get());
112 112
113 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get()); 113 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get());
114 TestTileTaskRunner::ProcessTask(task.get()); 114 TestTileTaskRunner::ProcessTask(task.get());
115 115
116 cache.UnrefImage(draw_image); 116 cache.UnrefImage(draw_image);
117 cache.UnrefImage(another_draw_image); 117 cache.UnrefImage(another_draw_image);
118 } 118 }
119 119
120 // crbug.com/709341. 120 TEST(GpuImageDecodeCacheTest, GetTaskForImageLowerQuality) {
121 #if defined(MEMORY_SANITIZER)
122 #define MAYBE_GetTaskForImageLowerQuality DISABLED_GetTaskForImageLowerQuality
123 #else
124 #define MAYBE_GetTaskForImageLowerQuality GetTaskForImageLowerQuality
125 #endif
126 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageLowerQuality) {
127 auto context_provider = TestContextProvider::Create(); 121 auto context_provider = TestContextProvider::Create();
128 context_provider->BindToCurrentThread(); 122 context_provider->BindToCurrentThread();
129 TestGpuImageDecodeCache cache(context_provider.get()); 123 TestGpuImageDecodeCache cache(context_provider.get());
130 sk_sp<SkImage> image = CreateImage(100, 100); 124 sk_sp<SkImage> image = CreateImage(100, 100);
131 bool is_decomposable = true; 125 bool is_decomposable = true;
132 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); 126 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable);
133 127
134 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 128 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
135 kHigh_SkFilterQuality, matrix, DefaultColorSpace()); 129 kHigh_SkFilterQuality, matrix, DefaultColorSpace());
136 scoped_refptr<TileTask> task; 130 scoped_refptr<TileTask> task;
(...skipping 11 matching lines...) Expand all
148 EXPECT_TRUE(need_unref); 142 EXPECT_TRUE(need_unref);
149 EXPECT_TRUE(task.get() == another_task.get()); 143 EXPECT_TRUE(task.get() == another_task.get());
150 144
151 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get()); 145 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get());
152 TestTileTaskRunner::ProcessTask(task.get()); 146 TestTileTaskRunner::ProcessTask(task.get());
153 147
154 cache.UnrefImage(draw_image); 148 cache.UnrefImage(draw_image);
155 cache.UnrefImage(another_draw_image); 149 cache.UnrefImage(another_draw_image);
156 } 150 }
157 151
158 // crbug.com/709341. 152 TEST(GpuImageDecodeCacheTest, GetTaskForImageDifferentImage) {
159 #if defined(MEMORY_SANITIZER)
160 #define MAYBE_GetTaskForImageDifferentImage \
161 DISABLED_GetTaskForImageDifferentImage
162 #else
163 #define MAYBE_GetTaskForImageDifferentImage GetTaskForImageDifferentImage
164 #endif
165 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageDifferentImage) {
166 auto context_provider = TestContextProvider::Create(); 153 auto context_provider = TestContextProvider::Create();
167 context_provider->BindToCurrentThread(); 154 context_provider->BindToCurrentThread();
168 TestGpuImageDecodeCache cache(context_provider.get()); 155 TestGpuImageDecodeCache cache(context_provider.get());
169 bool is_decomposable = true; 156 bool is_decomposable = true;
170 SkFilterQuality quality = kHigh_SkFilterQuality; 157 SkFilterQuality quality = kHigh_SkFilterQuality;
171 158
172 sk_sp<SkImage> first_image = CreateImage(100, 100); 159 sk_sp<SkImage> first_image = CreateImage(100, 100);
173 DrawImage first_draw_image( 160 DrawImage first_draw_image(
174 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), 161 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()),
175 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 162 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 19 matching lines...) Expand all
195 182
196 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); 183 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get());
197 TestTileTaskRunner::ProcessTask(first_task.get()); 184 TestTileTaskRunner::ProcessTask(first_task.get());
198 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); 185 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get());
199 TestTileTaskRunner::ProcessTask(second_task.get()); 186 TestTileTaskRunner::ProcessTask(second_task.get());
200 187
201 cache.UnrefImage(first_draw_image); 188 cache.UnrefImage(first_draw_image);
202 cache.UnrefImage(second_draw_image); 189 cache.UnrefImage(second_draw_image);
203 } 190 }
204 191
205 // crbug.com/709341. 192 TEST(GpuImageDecodeCacheTest, GetTaskForImageLargerScale) {
206 #if defined(MEMORY_SANITIZER)
207 #define MAYBE_GetTaskForImageLargerScale DISABLED_GetTaskForImageLargerScale
208 #else
209 #define MAYBE_GetTaskForImageLargerScale GetTaskForImageLargerScale
210 #endif
211 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageLargerScale) {
212 auto context_provider = TestContextProvider::Create(); 193 auto context_provider = TestContextProvider::Create();
213 context_provider->BindToCurrentThread(); 194 context_provider->BindToCurrentThread();
214 TestGpuImageDecodeCache cache(context_provider.get()); 195 TestGpuImageDecodeCache cache(context_provider.get());
215 bool is_decomposable = true; 196 bool is_decomposable = true;
216 SkFilterQuality quality = kHigh_SkFilterQuality; 197 SkFilterQuality quality = kHigh_SkFilterQuality;
217 198
218 sk_sp<SkImage> first_image = CreateImage(100, 100); 199 sk_sp<SkImage> first_image = CreateImage(100, 100);
219 DrawImage first_draw_image( 200 DrawImage first_draw_image(
220 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), 201 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()),
221 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 202 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 30 matching lines...) Expand all
252 EXPECT_TRUE(need_unref); 233 EXPECT_TRUE(need_unref);
253 EXPECT_TRUE(third_task.get() == second_task.get()); 234 EXPECT_TRUE(third_task.get() == second_task.get());
254 235
255 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); 236 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get());
256 TestTileTaskRunner::ProcessTask(second_task.get()); 237 TestTileTaskRunner::ProcessTask(second_task.get());
257 238
258 cache.UnrefImage(second_draw_image); 239 cache.UnrefImage(second_draw_image);
259 cache.UnrefImage(third_draw_image); 240 cache.UnrefImage(third_draw_image);
260 } 241 }
261 242
262 // crbug.com/709341. 243 TEST(GpuImageDecodeCacheTest, GetTaskForImageLargerScaleNoReuse) {
263 #if defined(MEMORY_SANITIZER)
264 #define MAYBE_GetTaskForImageLargerScaleNoReuse \
265 DISABLED_GetTaskForImageLargerScaleNoReuse
266 #else
267 #define MAYBE_GetTaskForImageLargerScaleNoReuse \
268 GetTaskForImageLargerScaleNoReuse
269 #endif
270 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageLargerScaleNoReuse) {
271 auto context_provider = TestContextProvider::Create(); 244 auto context_provider = TestContextProvider::Create();
272 context_provider->BindToCurrentThread(); 245 context_provider->BindToCurrentThread();
273 TestGpuImageDecodeCache cache(context_provider.get()); 246 TestGpuImageDecodeCache cache(context_provider.get());
274 bool is_decomposable = true; 247 bool is_decomposable = true;
275 SkFilterQuality quality = kHigh_SkFilterQuality; 248 SkFilterQuality quality = kHigh_SkFilterQuality;
276 249
277 sk_sp<SkImage> first_image = CreateImage(100, 100); 250 sk_sp<SkImage> first_image = CreateImage(100, 100);
278 DrawImage first_draw_image( 251 DrawImage first_draw_image(
279 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), 252 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()),
280 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 253 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 28 matching lines...) Expand all
309 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); 282 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get());
310 TestTileTaskRunner::ProcessTask(first_task.get()); 283 TestTileTaskRunner::ProcessTask(first_task.get());
311 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); 284 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get());
312 TestTileTaskRunner::ProcessTask(second_task.get()); 285 TestTileTaskRunner::ProcessTask(second_task.get());
313 286
314 cache.UnrefImage(first_draw_image); 287 cache.UnrefImage(first_draw_image);
315 cache.UnrefImage(second_draw_image); 288 cache.UnrefImage(second_draw_image);
316 cache.UnrefImage(third_draw_image); 289 cache.UnrefImage(third_draw_image);
317 } 290 }
318 291
319 // crbug.com/709341. 292 TEST(GpuImageDecodeCacheTest, GetTaskForImageHigherQuality) {
320 #if defined(MEMORY_SANITIZER)
321 #define MAYBE_GetTaskForImageHigherQuality DISABLED_GetTaskForImageHigherQuality
322 #else
323 #define MAYBE_GetTaskForImageHigherQuality GetTaskForImageHigherQuality
324 #endif
325 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageHigherQuality) {
326 auto context_provider = TestContextProvider::Create(); 293 auto context_provider = TestContextProvider::Create();
327 context_provider->BindToCurrentThread(); 294 context_provider->BindToCurrentThread();
328 TestGpuImageDecodeCache cache(context_provider.get()); 295 TestGpuImageDecodeCache cache(context_provider.get());
329 bool is_decomposable = true; 296 bool is_decomposable = true;
330 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); 297 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable);
331 298
332 sk_sp<SkImage> first_image = CreateImage(100, 100); 299 sk_sp<SkImage> first_image = CreateImage(100, 100);
333 DrawImage first_draw_image( 300 DrawImage first_draw_image(
334 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), 301 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()),
335 kLow_SkFilterQuality, matrix, DefaultColorSpace()); 302 kLow_SkFilterQuality, matrix, DefaultColorSpace());
(...skipping 17 matching lines...) Expand all
353 EXPECT_TRUE(need_unref); 320 EXPECT_TRUE(need_unref);
354 EXPECT_TRUE(second_task); 321 EXPECT_TRUE(second_task);
355 EXPECT_TRUE(first_task.get() != second_task.get()); 322 EXPECT_TRUE(first_task.get() != second_task.get());
356 323
357 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); 324 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get());
358 TestTileTaskRunner::ProcessTask(second_task.get()); 325 TestTileTaskRunner::ProcessTask(second_task.get());
359 326
360 cache.UnrefImage(second_draw_image); 327 cache.UnrefImage(second_draw_image);
361 } 328 }
362 329
363 // crbug.com/709341. 330 TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedAndLocked) {
364 #if defined(MEMORY_SANITIZER)
365 #define MAYBE_GetTaskForImageAlreadyDecodedAndLocked \
366 DISABLED_GetTaskForImageAlreadyDecodedAndLocked
367 #else
368 #define MAYBE_GetTaskForImageAlreadyDecodedAndLocked \
369 GetTaskForImageAlreadyDecodedAndLocked
370 #endif
371 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageAlreadyDecodedAndLocked) {
372 auto context_provider = TestContextProvider::Create(); 331 auto context_provider = TestContextProvider::Create();
373 context_provider->BindToCurrentThread(); 332 context_provider->BindToCurrentThread();
374 TestGpuImageDecodeCache cache(context_provider.get()); 333 TestGpuImageDecodeCache cache(context_provider.get());
375 bool is_decomposable = true; 334 bool is_decomposable = true;
376 SkFilterQuality quality = kHigh_SkFilterQuality; 335 SkFilterQuality quality = kHigh_SkFilterQuality;
377 336
378 sk_sp<SkImage> image = CreateImage(100, 100); 337 sk_sp<SkImage> image = CreateImage(100, 100);
379 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 338 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
380 quality, 339 quality,
381 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 340 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 25 matching lines...) Expand all
407 366
408 TestTileTaskRunner::ProcessTask(another_task.get()); 367 TestTileTaskRunner::ProcessTask(another_task.get());
409 368
410 // Finally, complete the original decode task. 369 // Finally, complete the original decode task.
411 TestTileTaskRunner::CompleteTask(task->dependencies()[0].get()); 370 TestTileTaskRunner::CompleteTask(task->dependencies()[0].get());
412 371
413 cache.UnrefImage(draw_image); 372 cache.UnrefImage(draw_image);
414 cache.UnrefImage(draw_image); 373 cache.UnrefImage(draw_image);
415 } 374 }
416 375
417 // crbug.com/709341. 376 TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedNotLocked) {
418 #if defined(MEMORY_SANITIZER)
419 #define MAYBE_GetTaskForImageAlreadyDecodedNotLocked \
420 DISABLED_GetTaskForImageAlreadyDecodedNotLocked
421 #else
422 #define MAYBE_GetTaskForImageAlreadyDecodedNotLocked \
423 GetTaskForImageAlreadyDecodedNotLocked
424 #endif
425 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageAlreadyDecodedNotLocked) {
426 auto context_provider = TestContextProvider::Create(); 377 auto context_provider = TestContextProvider::Create();
427 context_provider->BindToCurrentThread(); 378 context_provider->BindToCurrentThread();
428 TestGpuImageDecodeCache cache(context_provider.get()); 379 TestGpuImageDecodeCache cache(context_provider.get());
429 bool is_decomposable = true; 380 bool is_decomposable = true;
430 SkFilterQuality quality = kHigh_SkFilterQuality; 381 SkFilterQuality quality = kHigh_SkFilterQuality;
431 382
432 sk_sp<SkImage> image = CreateImage(100, 100); 383 sk_sp<SkImage> image = CreateImage(100, 100);
433 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 384 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
434 quality, 385 quality,
435 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 386 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 25 matching lines...) Expand all
461 EXPECT_TRUE(another_task); 412 EXPECT_TRUE(another_task);
462 EXPECT_EQ(another_task->dependencies().size(), 1u); 413 EXPECT_EQ(another_task->dependencies().size(), 1u);
463 EXPECT_TRUE(task->dependencies()[0]); 414 EXPECT_TRUE(task->dependencies()[0]);
464 415
465 TestTileTaskRunner::ProcessTask(another_task->dependencies()[0].get()); 416 TestTileTaskRunner::ProcessTask(another_task->dependencies()[0].get());
466 TestTileTaskRunner::ProcessTask(another_task.get()); 417 TestTileTaskRunner::ProcessTask(another_task.get());
467 418
468 cache.UnrefImage(draw_image); 419 cache.UnrefImage(draw_image);
469 } 420 }
470 421
471 // crbug.com/709341. 422 TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyUploaded) {
472 #if defined(MEMORY_SANITIZER)
473 #define MAYBE_GetTaskForImageAlreadyUploaded \
474 DISABLED_GetTaskForImageAlreadyUploaded
475 #else
476 #define MAYBE_GetTaskForImageAlreadyUploaded GetTaskForImageAlreadyUploaded
477 #endif
478 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageAlreadyUploaded) {
479 auto context_provider = TestContextProvider::Create(); 423 auto context_provider = TestContextProvider::Create();
480 context_provider->BindToCurrentThread(); 424 context_provider->BindToCurrentThread();
481 TestGpuImageDecodeCache cache(context_provider.get()); 425 TestGpuImageDecodeCache cache(context_provider.get());
482 bool is_decomposable = true; 426 bool is_decomposable = true;
483 SkFilterQuality quality = kHigh_SkFilterQuality; 427 SkFilterQuality quality = kHigh_SkFilterQuality;
484 428
485 sk_sp<SkImage> image = CreateImage(100, 100); 429 sk_sp<SkImage> image = CreateImage(100, 100);
486 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 430 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
487 quality, 431 quality,
488 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 432 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 15 matching lines...) Expand all
504 draw_image, ImageDecodeCache::TracingInfo(), &another_task); 448 draw_image, ImageDecodeCache::TracingInfo(), &another_task);
505 EXPECT_TRUE(need_unref); 449 EXPECT_TRUE(need_unref);
506 EXPECT_FALSE(another_task); 450 EXPECT_FALSE(another_task);
507 451
508 TestTileTaskRunner::CompleteTask(task.get()); 452 TestTileTaskRunner::CompleteTask(task.get());
509 453
510 cache.UnrefImage(draw_image); 454 cache.UnrefImage(draw_image);
511 cache.UnrefImage(draw_image); 455 cache.UnrefImage(draw_image);
512 } 456 }
513 457
514 // crbug.com/709341. 458 TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledGetsNewTask) {
515 #if defined(MEMORY_SANITIZER)
516 #define MAYBE_GetTaskForImageCanceledGetsNewTask \
517 DISABLED_GetTaskForImageCanceledGetsNewTask
518 #else
519 #define MAYBE_GetTaskForImageCanceledGetsNewTask \
520 GetTaskForImageCanceledGetsNewTask
521 #endif
522 TEST(GpuImageDecodeCacheTest, MAYBE_GetTaskForImageCanceledGetsNewTask) {
523 auto context_provider = TestContextProvider::Create(); 459 auto context_provider = TestContextProvider::Create();
524 context_provider->BindToCurrentThread(); 460 context_provider->BindToCurrentThread();
525 TestGpuImageDecodeCache cache(context_provider.get()); 461 TestGpuImageDecodeCache cache(context_provider.get());
526 bool is_decomposable = true; 462 bool is_decomposable = true;
527 SkFilterQuality quality = kHigh_SkFilterQuality; 463 SkFilterQuality quality = kHigh_SkFilterQuality;
528 464
529 sk_sp<SkImage> image = CreateImage(100, 100); 465 sk_sp<SkImage> image = CreateImage(100, 100);
530 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 466 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
531 quality, 467 quality,
532 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 468 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 27 matching lines...) Expand all
560 EXPECT_TRUE(need_unref); 496 EXPECT_TRUE(need_unref);
561 EXPECT_TRUE(third_task); 497 EXPECT_TRUE(third_task);
562 EXPECT_FALSE(third_task.get() == task.get()); 498 EXPECT_FALSE(third_task.get() == task.get());
563 499
564 TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get()); 500 TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get());
565 TestTileTaskRunner::ProcessTask(third_task.get()); 501 TestTileTaskRunner::ProcessTask(third_task.get());
566 502
567 cache.UnrefImage(draw_image); 503 cache.UnrefImage(draw_image);
568 } 504 }
569 505
570 // crbug.com/709341. 506 TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledWhileReffedGetsNewTask) {
571 #if defined(MEMORY_SANITIZER)
572 #define MAYBE_GetTaskForImageCanceledWhileReffedGetsNewTask \
573 DISABLED_GetTaskForImageCanceledWhileReffedGetsNewTask
574 #else
575 #define MAYBE_GetTaskForImageCanceledWhileReffedGetsNewTask \
576 GetTaskForImageCanceledWhileReffedGetsNewTask
577 #endif
578 TEST(GpuImageDecodeCacheTest,
579 MAYBE_GetTaskForImageCanceledWhileReffedGetsNewTask) {
580 auto context_provider = TestContextProvider::Create(); 507 auto context_provider = TestContextProvider::Create();
581 context_provider->BindToCurrentThread(); 508 context_provider->BindToCurrentThread();
582 TestGpuImageDecodeCache cache(context_provider.get()); 509 TestGpuImageDecodeCache cache(context_provider.get());
583 bool is_decomposable = true; 510 bool is_decomposable = true;
584 SkFilterQuality quality = kHigh_SkFilterQuality; 511 SkFilterQuality quality = kHigh_SkFilterQuality;
585 512
586 sk_sp<SkImage> image = CreateImage(100, 100); 513 sk_sp<SkImage> image = CreateImage(100, 100);
587 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 514 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
588 quality, 515 quality,
589 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 516 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 EXPECT_FALSE(third_task.get() == task.get()); 548 EXPECT_FALSE(third_task.get() == task.get());
622 549
623 ASSERT_GT(third_task->dependencies().size(), 0u); 550 ASSERT_GT(third_task->dependencies().size(), 0u);
624 TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get()); 551 TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get());
625 TestTileTaskRunner::ProcessTask(third_task.get()); 552 TestTileTaskRunner::ProcessTask(third_task.get());
626 553
627 // Unref! 554 // Unref!
628 cache.UnrefImage(draw_image); 555 cache.UnrefImage(draw_image);
629 } 556 }
630 557
631 // crbug.com/709341. 558 TEST(GpuImageDecodeCacheTest, NoTaskForImageAlreadyFailedDecoding) {
632 #if defined(MEMORY_SANITIZER)
633 #define MAYBE_NoTaskForImageAlreadyFailedDecoding \
634 DISABLED_NoTaskForImageAlreadyFailedDecoding
635 #else
636 #define MAYBE_NoTaskForImageAlreadyFailedDecoding \
637 NoTaskForImageAlreadyFailedDecoding
638 #endif
639 TEST(GpuImageDecodeCacheTest, MAYBE_NoTaskForImageAlreadyFailedDecoding) {
640 auto context_provider = TestContextProvider::Create(); 559 auto context_provider = TestContextProvider::Create();
641 context_provider->BindToCurrentThread(); 560 context_provider->BindToCurrentThread();
642 TestGpuImageDecodeCache cache(context_provider.get()); 561 TestGpuImageDecodeCache cache(context_provider.get());
643 bool is_decomposable = true; 562 bool is_decomposable = true;
644 SkFilterQuality quality = kHigh_SkFilterQuality; 563 SkFilterQuality quality = kHigh_SkFilterQuality;
645 564
646 sk_sp<SkImage> image = CreateImage(100, 100); 565 sk_sp<SkImage> image = CreateImage(100, 100);
647 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 566 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
648 quality, 567 quality,
649 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 568 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 13 matching lines...) Expand all
663 582
664 scoped_refptr<TileTask> another_task; 583 scoped_refptr<TileTask> another_task;
665 need_unref = cache.GetTaskForImageAndRef( 584 need_unref = cache.GetTaskForImageAndRef(
666 draw_image, ImageDecodeCache::TracingInfo(), &another_task); 585 draw_image, ImageDecodeCache::TracingInfo(), &another_task);
667 EXPECT_FALSE(need_unref); 586 EXPECT_FALSE(need_unref);
668 EXPECT_EQ(another_task.get(), nullptr); 587 EXPECT_EQ(another_task.get(), nullptr);
669 588
670 cache.UnrefImage(draw_image); 589 cache.UnrefImage(draw_image);
671 } 590 }
672 591
673 // crbug.com/709341. 592 TEST(GpuImageDecodeCacheTest, GetDecodedImageForDraw) {
674 #if defined(MEMORY_SANITIZER)
675 #define MAYBE_GetDecodedImageForDraw DISABLED_GetDecodedImageForDraw
676 #else
677 #define MAYBE_GetDecodedImageForDraw GetDecodedImageForDraw
678 #endif
679 TEST(GpuImageDecodeCacheTest, MAYBE_GetDecodedImageForDraw) {
680 auto context_provider = TestContextProvider::Create(); 593 auto context_provider = TestContextProvider::Create();
681 context_provider->BindToCurrentThread(); 594 context_provider->BindToCurrentThread();
682 TestGpuImageDecodeCache cache(context_provider.get()); 595 TestGpuImageDecodeCache cache(context_provider.get());
683 bool is_decomposable = true; 596 bool is_decomposable = true;
684 SkFilterQuality quality = kHigh_SkFilterQuality; 597 SkFilterQuality quality = kHigh_SkFilterQuality;
685 598
686 sk_sp<SkImage> image = CreateImage(100, 100); 599 sk_sp<SkImage> image = CreateImage(100, 100);
687 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 600 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
688 quality, 601 quality,
689 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 602 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 DecodedDrawImage decoded_draw_image = 687 DecodedDrawImage decoded_draw_image =
775 cache.GetDecodedImageForDraw(draw_image); 688 cache.GetDecodedImageForDraw(draw_image);
776 EXPECT_TRUE(decoded_draw_image.image()); 689 EXPECT_TRUE(decoded_draw_image.image());
777 EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked()); 690 EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked());
778 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); 691 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode());
779 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); 692 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image));
780 693
781 cache.DrawWithImageFinished(draw_image, decoded_draw_image); 694 cache.DrawWithImageFinished(draw_image, decoded_draw_image);
782 } 695 }
783 696
784 // crbug.com/709341. 697 TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawLargerScale) {
785 #if defined(MEMORY_SANITIZER)
786 #define MAYBE_GetDecodedImageForDrawLargerScale \
787 DISABLED_GetDecodedImageForDrawLargerScale
788 #else
789 #define MAYBE_GetDecodedImageForDrawLargerScale \
790 GetDecodedImageForDrawLargerScale
791 #endif
792 TEST(GpuImageDecodeCacheTest, MAYBE_GetDecodedImageForDrawLargerScale) {
793 auto context_provider = TestContextProvider::Create(); 698 auto context_provider = TestContextProvider::Create();
794 context_provider->BindToCurrentThread(); 699 context_provider->BindToCurrentThread();
795 TestGpuImageDecodeCache cache(context_provider.get()); 700 TestGpuImageDecodeCache cache(context_provider.get());
796 bool is_decomposable = true; 701 bool is_decomposable = true;
797 SkFilterQuality quality = kHigh_SkFilterQuality; 702 SkFilterQuality quality = kHigh_SkFilterQuality;
798 703
799 sk_sp<SkImage> image = CreateImage(100, 100); 704 sk_sp<SkImage> image = CreateImage(100, 100);
800 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 705 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
801 quality, 706 quality,
802 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 707 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
841 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); 746 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image));
842 747
843 EXPECT_FALSE(decoded_draw_image.image() == larger_decoded_draw_image.image()); 748 EXPECT_FALSE(decoded_draw_image.image() == larger_decoded_draw_image.image());
844 749
845 cache.DrawWithImageFinished(draw_image, decoded_draw_image); 750 cache.DrawWithImageFinished(draw_image, decoded_draw_image);
846 cache.UnrefImage(draw_image); 751 cache.UnrefImage(draw_image);
847 cache.DrawWithImageFinished(larger_draw_image, larger_decoded_draw_image); 752 cache.DrawWithImageFinished(larger_draw_image, larger_decoded_draw_image);
848 cache.UnrefImage(larger_draw_image); 753 cache.UnrefImage(larger_draw_image);
849 } 754 }
850 755
851 // crbug.com/709341. 756 TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawHigherQuality) {
852 #if defined(MEMORY_SANITIZER)
853 #define MAYBE_GetDecodedImageForDrawHigherQuality \
854 DISABLED_GetDecodedImageForDrawHigherQuality
855 #else
856 #define MAYBE_GetDecodedImageForDrawHigherQuality \
857 GetDecodedImageForDrawHigherQuality
858 #endif
859 TEST(GpuImageDecodeCacheTest, MAYBE_GetDecodedImageForDrawHigherQuality) {
860 auto context_provider = TestContextProvider::Create(); 757 auto context_provider = TestContextProvider::Create();
861 context_provider->BindToCurrentThread(); 758 context_provider->BindToCurrentThread();
862 TestGpuImageDecodeCache cache(context_provider.get()); 759 TestGpuImageDecodeCache cache(context_provider.get());
863 bool is_decomposable = true; 760 bool is_decomposable = true;
864 SkMatrix matrix = CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable); 761 SkMatrix matrix = CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable);
865 762
866 sk_sp<SkImage> image = CreateImage(100, 100); 763 sk_sp<SkImage> image = CreateImage(100, 100);
867 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 764 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
868 kLow_SkFilterQuality, matrix, DefaultColorSpace()); 765 kLow_SkFilterQuality, matrix, DefaultColorSpace());
869 scoped_refptr<TileTask> task; 766 scoped_refptr<TileTask> task;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 803
907 EXPECT_FALSE(decoded_draw_image.image() == larger_decoded_draw_image.image()); 804 EXPECT_FALSE(decoded_draw_image.image() == larger_decoded_draw_image.image());
908 805
909 cache.DrawWithImageFinished(draw_image, decoded_draw_image); 806 cache.DrawWithImageFinished(draw_image, decoded_draw_image);
910 cache.UnrefImage(draw_image); 807 cache.UnrefImage(draw_image);
911 cache.DrawWithImageFinished(higher_quality_draw_image, 808 cache.DrawWithImageFinished(higher_quality_draw_image,
912 larger_decoded_draw_image); 809 larger_decoded_draw_image);
913 cache.UnrefImage(higher_quality_draw_image); 810 cache.UnrefImage(higher_quality_draw_image);
914 } 811 }
915 812
916 // crbug.com/709341. 813 TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawNegative) {
917 #if defined(MEMORY_SANITIZER)
918 #define MAYBE_GetDecodedImageForDrawNegative \
919 DISABLED_GetDecodedImageForDrawNegative
920 #else
921 #define MAYBE_GetDecodedImageForDrawNegative GetDecodedImageForDrawNegative
922 #endif
923 TEST(GpuImageDecodeCacheTest, MAYBE_GetDecodedImageForDrawNegative) {
924 auto context_provider = TestContextProvider::Create(); 814 auto context_provider = TestContextProvider::Create();
925 context_provider->BindToCurrentThread(); 815 context_provider->BindToCurrentThread();
926 TestGpuImageDecodeCache cache(context_provider.get()); 816 TestGpuImageDecodeCache cache(context_provider.get());
927 bool is_decomposable = true; 817 bool is_decomposable = true;
928 SkFilterQuality quality = kHigh_SkFilterQuality; 818 SkFilterQuality quality = kHigh_SkFilterQuality;
929 819
930 sk_sp<SkImage> image = CreateImage(100, 100); 820 sk_sp<SkImage> image = CreateImage(100, 100);
931 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 821 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
932 quality, 822 quality,
933 CreateMatrix(SkSize::Make(-0.5f, 0.5f), is_decomposable), 823 CreateMatrix(SkSize::Make(-0.5f, 0.5f), is_decomposable),
(...skipping 16 matching lines...) Expand all
950 EXPECT_EQ(decoded_draw_image.image()->width(), 50); 840 EXPECT_EQ(decoded_draw_image.image()->width(), 50);
951 EXPECT_EQ(decoded_draw_image.image()->height(), 50); 841 EXPECT_EQ(decoded_draw_image.image()->height(), 50);
952 EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked()); 842 EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked());
953 EXPECT_FALSE(decoded_draw_image.is_at_raster_decode()); 843 EXPECT_FALSE(decoded_draw_image.is_at_raster_decode());
954 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); 844 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image));
955 845
956 cache.DrawWithImageFinished(draw_image, decoded_draw_image); 846 cache.DrawWithImageFinished(draw_image, decoded_draw_image);
957 cache.UnrefImage(draw_image); 847 cache.UnrefImage(draw_image);
958 } 848 }
959 849
960 // crbug.com/709341. 850 TEST(GpuImageDecodeCacheTest, GetLargeScaledDecodedImageForDraw) {
961 #if defined(MEMORY_SANITIZER)
962 #define MAYBE_GetLargeScaledDecodedImageForDraw \
963 DISABLED_GetLargeScaledDecodedImageForDraw
964 #else
965 #define MAYBE_GetLargeScaledDecodedImageForDraw \
966 GetLargeScaledDecodedImageForDraw
967 #endif
968 TEST(GpuImageDecodeCacheTest, MAYBE_GetLargeScaledDecodedImageForDraw) {
969 auto context_provider = TestContextProvider::Create(); 851 auto context_provider = TestContextProvider::Create();
970 context_provider->BindToCurrentThread(); 852 context_provider->BindToCurrentThread();
971 TestGpuImageDecodeCache cache(context_provider.get()); 853 TestGpuImageDecodeCache cache(context_provider.get());
972 bool is_decomposable = true; 854 bool is_decomposable = true;
973 SkFilterQuality quality = kHigh_SkFilterQuality; 855 SkFilterQuality quality = kHigh_SkFilterQuality;
974 856
975 sk_sp<SkImage> image = CreateImage(1, 48000); 857 sk_sp<SkImage> image = CreateImage(1, 48000);
976 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 858 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
977 quality, 859 quality,
978 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 860 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 18 matching lines...) Expand all
997 EXPECT_EQ(24000, decoded_draw_image.image()->height()); 879 EXPECT_EQ(24000, decoded_draw_image.image()->height());
998 EXPECT_FALSE(decoded_draw_image.image()->isTextureBacked()); 880 EXPECT_FALSE(decoded_draw_image.image()->isTextureBacked());
999 EXPECT_FALSE(decoded_draw_image.is_at_raster_decode()); 881 EXPECT_FALSE(decoded_draw_image.is_at_raster_decode());
1000 EXPECT_TRUE(cache.DiscardableIsLockedForTesting(draw_image)); 882 EXPECT_TRUE(cache.DiscardableIsLockedForTesting(draw_image));
1001 883
1002 cache.DrawWithImageFinished(draw_image, decoded_draw_image); 884 cache.DrawWithImageFinished(draw_image, decoded_draw_image);
1003 cache.UnrefImage(draw_image); 885 cache.UnrefImage(draw_image);
1004 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); 886 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image));
1005 } 887 }
1006 888
1007 // crbug.com/709341. 889 TEST(GpuImageDecodeCacheTest, AtRasterUsedDirectlyIfSpaceAllows) {
1008 #if defined(MEMORY_SANITIZER)
1009 #define MAYBE_AtRasterUsedDirectlyIfSpaceAllows \
1010 DISABLED_AtRasterUsedDirectlyIfSpaceAllows
1011 #else
1012 #define MAYBE_AtRasterUsedDirectlyIfSpaceAllows \
1013 AtRasterUsedDirectlyIfSpaceAllows
1014 #endif
1015 TEST(GpuImageDecodeCacheTest, MAYBE_AtRasterUsedDirectlyIfSpaceAllows) {
1016 auto context_provider = TestContextProvider::Create(); 890 auto context_provider = TestContextProvider::Create();
1017 context_provider->BindToCurrentThread(); 891 context_provider->BindToCurrentThread();
1018 TestGpuImageDecodeCache cache(context_provider.get()); 892 TestGpuImageDecodeCache cache(context_provider.get());
1019 bool is_decomposable = true; 893 bool is_decomposable = true;
1020 SkFilterQuality quality = kHigh_SkFilterQuality; 894 SkFilterQuality quality = kHigh_SkFilterQuality;
1021 895
1022 cache.SetAllByteLimitsForTesting(0); 896 cache.SetAllByteLimitsForTesting(0);
1023 897
1024 sk_sp<SkImage> image = CreateImage(100, 100); 898 sk_sp<SkImage> image = CreateImage(100, 100);
1025 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 899 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
(...skipping 24 matching lines...) Expand all
1050 cache.DrawWithImageFinished(draw_image, decoded_draw_image); 924 cache.DrawWithImageFinished(draw_image, decoded_draw_image);
1051 925
1052 scoped_refptr<TileTask> another_task; 926 scoped_refptr<TileTask> another_task;
1053 bool another_task_needs_unref = cache.GetTaskForImageAndRef( 927 bool another_task_needs_unref = cache.GetTaskForImageAndRef(
1054 draw_image, ImageDecodeCache::TracingInfo(), &task); 928 draw_image, ImageDecodeCache::TracingInfo(), &task);
1055 EXPECT_TRUE(another_task_needs_unref); 929 EXPECT_TRUE(another_task_needs_unref);
1056 EXPECT_FALSE(another_task); 930 EXPECT_FALSE(another_task);
1057 cache.UnrefImage(draw_image); 931 cache.UnrefImage(draw_image);
1058 } 932 }
1059 933
1060 // crbug.com/709341.
1061 #if defined(MEMORY_SANITIZER)
1062 #define MAYBE_GetDecodedImageForDrawAtRasterDecodeMultipleTimes \
1063 DISABLED_GetDecodedImageForDrawAtRasterDecodeMultipleTimes
1064 #else
1065 #define MAYBE_GetDecodedImageForDrawAtRasterDecodeMultipleTimes \
1066 GetDecodedImageForDrawAtRasterDecodeMultipleTimes
1067 #endif
1068 TEST(GpuImageDecodeCacheTest, 934 TEST(GpuImageDecodeCacheTest,
1069 MAYBE_GetDecodedImageForDrawAtRasterDecodeMultipleTimes) { 935 GetDecodedImageForDrawAtRasterDecodeMultipleTimes) {
1070 auto context_provider = TestContextProvider::Create(); 936 auto context_provider = TestContextProvider::Create();
1071 context_provider->BindToCurrentThread(); 937 context_provider->BindToCurrentThread();
1072 TestGpuImageDecodeCache cache(context_provider.get()); 938 TestGpuImageDecodeCache cache(context_provider.get());
1073 bool is_decomposable = true; 939 bool is_decomposable = true;
1074 SkFilterQuality quality = kHigh_SkFilterQuality; 940 SkFilterQuality quality = kHigh_SkFilterQuality;
1075 941
1076 cache.SetAllByteLimitsForTesting(0); 942 cache.SetAllByteLimitsForTesting(0);
1077 943
1078 sk_sp<SkImage> image = CreateImage(100, 100); 944 sk_sp<SkImage> image = CreateImage(100, 100);
1079 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 945 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
1218 1084
1219 TestTileTaskRunner::CancelTask(task->dependencies()[0].get()); 1085 TestTileTaskRunner::CancelTask(task->dependencies()[0].get());
1220 TestTileTaskRunner::CompleteTask(task->dependencies()[0].get()); 1086 TestTileTaskRunner::CompleteTask(task->dependencies()[0].get());
1221 TestTileTaskRunner::CancelTask(task.get()); 1087 TestTileTaskRunner::CancelTask(task.get());
1222 TestTileTaskRunner::CompleteTask(task.get()); 1088 TestTileTaskRunner::CompleteTask(task.get());
1223 1089
1224 cache.UnrefImage(draw_image); 1090 cache.UnrefImage(draw_image);
1225 EXPECT_EQ(0u, cache.GetBytesUsedForTesting()); 1091 EXPECT_EQ(0u, cache.GetBytesUsedForTesting());
1226 } 1092 }
1227 1093
1228 // crbug.com/709341. 1094 TEST(GpuImageDecodeCacheTest, ShouldAggressivelyFreeResources) {
1229 #if defined(MEMORY_SANITIZER)
1230 #define MAYBE_ShouldAggressivelyFreeResources \
1231 DISABLED_ShouldAggressivelyFreeResources
1232 #else
1233 #define MAYBE_ShouldAggressivelyFreeResources ShouldAggressivelyFreeResources
1234 #endif
1235 TEST(GpuImageDecodeCacheTest, MAYBE_ShouldAggressivelyFreeResources) {
1236 auto context_provider = TestContextProvider::Create(); 1095 auto context_provider = TestContextProvider::Create();
1237 context_provider->BindToCurrentThread(); 1096 context_provider->BindToCurrentThread();
1238 TestGpuImageDecodeCache cache(context_provider.get()); 1097 TestGpuImageDecodeCache cache(context_provider.get());
1239 bool is_decomposable = true; 1098 bool is_decomposable = true;
1240 SkFilterQuality quality = kHigh_SkFilterQuality; 1099 SkFilterQuality quality = kHigh_SkFilterQuality;
1241 1100
1242 sk_sp<SkImage> image = CreateImage(100, 100); 1101 sk_sp<SkImage> image = CreateImage(100, 100);
1243 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), 1102 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()),
1244 quality, 1103 quality,
1245 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), 1104 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable),
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 EXPECT_TRUE(task); 1148 EXPECT_TRUE(task);
1290 1149
1291 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get()); 1150 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get());
1292 TestTileTaskRunner::ProcessTask(task.get()); 1151 TestTileTaskRunner::ProcessTask(task.get());
1293 cache.UnrefImage(draw_image); 1152 cache.UnrefImage(draw_image);
1294 1153
1295 EXPECT_GT(cache.GetBytesUsedForTesting(), 0u); 1154 EXPECT_GT(cache.GetBytesUsedForTesting(), 0u);
1296 } 1155 }
1297 } 1156 }
1298 1157
1299 // crbug.com/709341. 1158 TEST(GpuImageDecodeCacheTest, OrphanedImagesFreeOnReachingZeroRefs) {
1300 #if defined(MEMORY_SANITIZER)
1301 #define MAYBE_OrphanedImagesFreeOnReachingZeroRefs \
1302 DISABLED_OrphanedImagesFreeOnReachingZeroRefs
1303 #else
1304 #define MAYBE_OrphanedImagesFreeOnReachingZeroRefs \
1305 OrphanedImagesFreeOnReachingZeroRefs
1306 #endif
1307 TEST(GpuImageDecodeCacheTest, MAYBE_OrphanedImagesFreeOnReachingZeroRefs) {
1308 auto context_provider = TestContextProvider::Create(); 1159 auto context_provider = TestContextProvider::Create();
1309 context_provider->BindToCurrentThread(); 1160 context_provider->BindToCurrentThread();
1310 TestGpuImageDecodeCache cache(context_provider.get()); 1161 TestGpuImageDecodeCache cache(context_provider.get());
1311 bool is_decomposable = true; 1162 bool is_decomposable = true;
1312 SkFilterQuality quality = kHigh_SkFilterQuality; 1163 SkFilterQuality quality = kHigh_SkFilterQuality;
1313 1164
1314 // Create a downscaled image. 1165 // Create a downscaled image.
1315 sk_sp<SkImage> first_image = CreateImage(100, 100); 1166 sk_sp<SkImage> first_image = CreateImage(100, 100);
1316 DrawImage first_draw_image( 1167 DrawImage first_draw_image(
1317 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), 1168 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1354 // deleted. 1205 // deleted.
1355 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); 1206 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get());
1356 TestTileTaskRunner::ProcessTask(first_task.get()); 1207 TestTileTaskRunner::ProcessTask(first_task.get());
1357 cache.UnrefImage(first_draw_image); 1208 cache.UnrefImage(first_draw_image);
1358 1209
1359 // The budget should account for exactly one image. 1210 // The budget should account for exactly one image.
1360 EXPECT_EQ(cache.GetBytesUsedForTesting(), 1211 EXPECT_EQ(cache.GetBytesUsedForTesting(),
1361 cache.GetDrawImageSizeForTesting(second_draw_image)); 1212 cache.GetDrawImageSizeForTesting(second_draw_image));
1362 } 1213 }
1363 1214
1364 // crbug.com/709341. 1215 TEST(GpuImageDecodeCacheTest, OrphanedZeroRefImagesImmediatelyDeleted) {
1365 #if defined(MEMORY_SANITIZER)
1366 #define MAYBE_OrphanedZeroRefImagesImmediatelyDeleted \
1367 DISABLED_OrphanedZeroRefImagesImmediatelyDeleted
1368 #else
1369 #define MAYBE_OrphanedZeroRefImagesImmediatelyDeleted \
1370 OrphanedZeroRefImagesImmediatelyDeleted
1371 #endif
1372 TEST(GpuImageDecodeCacheTest, MAYBE_OrphanedZeroRefImagesImmediatelyDeleted) {
1373 auto context_provider = TestContextProvider::Create(); 1216 auto context_provider = TestContextProvider::Create();
1374 context_provider->BindToCurrentThread(); 1217 context_provider->BindToCurrentThread();
1375 TestGpuImageDecodeCache cache(context_provider.get()); 1218 TestGpuImageDecodeCache cache(context_provider.get());
1376 bool is_decomposable = true; 1219 bool is_decomposable = true;
1377 SkFilterQuality quality = kHigh_SkFilterQuality; 1220 SkFilterQuality quality = kHigh_SkFilterQuality;
1378 1221
1379 // Create a downscaled image. 1222 // Create a downscaled image.
1380 sk_sp<SkImage> first_image = CreateImage(100, 100); 1223 sk_sp<SkImage> first_image = CreateImage(100, 100);
1381 DrawImage first_draw_image( 1224 DrawImage first_draw_image(
1382 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), 1225 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()),
(...skipping 29 matching lines...) Expand all
1412 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); 1255 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get());
1413 TestTileTaskRunner::ProcessTask(second_task.get()); 1256 TestTileTaskRunner::ProcessTask(second_task.get());
1414 1257
1415 cache.UnrefImage(second_draw_image); 1258 cache.UnrefImage(second_draw_image);
1416 1259
1417 // The budget should account for exactly one image. 1260 // The budget should account for exactly one image.
1418 EXPECT_EQ(cache.GetBytesUsedForTesting(), 1261 EXPECT_EQ(cache.GetBytesUsedForTesting(),
1419 cache.GetDrawImageSizeForTesting(second_draw_image)); 1262 cache.GetDrawImageSizeForTesting(second_draw_image));
1420 } 1263 }
1421 1264
1422 // crbug.com/709341. 1265 TEST(GpuImageDecodeCacheTest, QualityCappedAtMedium) {
1423 #if defined(MEMORY_SANITIZER)
1424 #define MAYBE_QualityCappedAtMedium DISABLED_QualityCappedAtMedium
1425 #else
1426 #define MAYBE_QualityCappedAtMedium QualityCappedAtMedium
1427 #endif
1428 TEST(GpuImageDecodeCacheTest, MAYBE_QualityCappedAtMedium) {
1429 auto context_provider = TestContextProvider::Create(); 1266 auto context_provider = TestContextProvider::Create();
1430 context_provider->BindToCurrentThread(); 1267 context_provider->BindToCurrentThread();
1431 TestGpuImageDecodeCache cache(context_provider.get()); 1268 TestGpuImageDecodeCache cache(context_provider.get());
1432 sk_sp<SkImage> image = CreateImage(100, 100); 1269 sk_sp<SkImage> image = CreateImage(100, 100);
1433 bool is_decomposable = true; 1270 bool is_decomposable = true;
1434 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); 1271 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable);
1435 1272
1436 // Create an image with kLow_FilterQuality. 1273 // Create an image with kLow_FilterQuality.
1437 DrawImage low_draw_image(image, 1274 DrawImage low_draw_image(image,
1438 SkIRect::MakeWH(image->width(), image->height()), 1275 SkIRect::MakeWH(image->width(), image->height()),
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
1844 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); 1681 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get());
1845 TestTileTaskRunner::ProcessTask(second_task.get()); 1682 TestTileTaskRunner::ProcessTask(second_task.get());
1846 1683
1847 cache.UnrefImage(first_draw_image); 1684 cache.UnrefImage(first_draw_image);
1848 cache.UnrefImage(second_draw_image); 1685 cache.UnrefImage(second_draw_image);
1849 cache.UnrefImage(third_draw_image); 1686 cache.UnrefImage(third_draw_image);
1850 } 1687 }
1851 1688
1852 } // namespace 1689 } // namespace
1853 } // namespace cc 1690 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698