OLD | NEW |
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 Loading... |
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 TEST(GpuImageDecodeCacheTest, GetTaskForImageLowerQuality) { | 120 // crbug.com/697171. |
| 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) { |
121 auto context_provider = TestContextProvider::Create(); | 127 auto context_provider = TestContextProvider::Create(); |
122 context_provider->BindToCurrentThread(); | 128 context_provider->BindToCurrentThread(); |
123 TestGpuImageDecodeCache cache(context_provider.get()); | 129 TestGpuImageDecodeCache cache(context_provider.get()); |
124 sk_sp<SkImage> image = CreateImage(100, 100); | 130 sk_sp<SkImage> image = CreateImage(100, 100); |
125 bool is_decomposable = true; | 131 bool is_decomposable = true; |
126 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); | 132 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); |
127 | 133 |
128 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 134 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
129 kHigh_SkFilterQuality, matrix, DefaultColorSpace()); | 135 kHigh_SkFilterQuality, matrix, DefaultColorSpace()); |
130 scoped_refptr<TileTask> task; | 136 scoped_refptr<TileTask> task; |
(...skipping 11 matching lines...) Expand all Loading... |
142 EXPECT_TRUE(need_unref); | 148 EXPECT_TRUE(need_unref); |
143 EXPECT_TRUE(task.get() == another_task.get()); | 149 EXPECT_TRUE(task.get() == another_task.get()); |
144 | 150 |
145 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get()); | 151 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get()); |
146 TestTileTaskRunner::ProcessTask(task.get()); | 152 TestTileTaskRunner::ProcessTask(task.get()); |
147 | 153 |
148 cache.UnrefImage(draw_image); | 154 cache.UnrefImage(draw_image); |
149 cache.UnrefImage(another_draw_image); | 155 cache.UnrefImage(another_draw_image); |
150 } | 156 } |
151 | 157 |
152 TEST(GpuImageDecodeCacheTest, GetTaskForImageDifferentImage) { | 158 // crbug.com/697171. |
| 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) { |
153 auto context_provider = TestContextProvider::Create(); | 166 auto context_provider = TestContextProvider::Create(); |
154 context_provider->BindToCurrentThread(); | 167 context_provider->BindToCurrentThread(); |
155 TestGpuImageDecodeCache cache(context_provider.get()); | 168 TestGpuImageDecodeCache cache(context_provider.get()); |
156 bool is_decomposable = true; | 169 bool is_decomposable = true; |
157 SkFilterQuality quality = kHigh_SkFilterQuality; | 170 SkFilterQuality quality = kHigh_SkFilterQuality; |
158 | 171 |
159 sk_sp<SkImage> first_image = CreateImage(100, 100); | 172 sk_sp<SkImage> first_image = CreateImage(100, 100); |
160 DrawImage first_draw_image( | 173 DrawImage first_draw_image( |
161 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), | 174 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), |
162 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 175 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 19 matching lines...) Expand all Loading... |
182 | 195 |
183 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); | 196 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); |
184 TestTileTaskRunner::ProcessTask(first_task.get()); | 197 TestTileTaskRunner::ProcessTask(first_task.get()); |
185 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); | 198 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); |
186 TestTileTaskRunner::ProcessTask(second_task.get()); | 199 TestTileTaskRunner::ProcessTask(second_task.get()); |
187 | 200 |
188 cache.UnrefImage(first_draw_image); | 201 cache.UnrefImage(first_draw_image); |
189 cache.UnrefImage(second_draw_image); | 202 cache.UnrefImage(second_draw_image); |
190 } | 203 } |
191 | 204 |
192 TEST(GpuImageDecodeCacheTest, GetTaskForImageLargerScale) { | 205 // crbug.com/697171. |
| 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) { |
193 auto context_provider = TestContextProvider::Create(); | 212 auto context_provider = TestContextProvider::Create(); |
194 context_provider->BindToCurrentThread(); | 213 context_provider->BindToCurrentThread(); |
195 TestGpuImageDecodeCache cache(context_provider.get()); | 214 TestGpuImageDecodeCache cache(context_provider.get()); |
196 bool is_decomposable = true; | 215 bool is_decomposable = true; |
197 SkFilterQuality quality = kHigh_SkFilterQuality; | 216 SkFilterQuality quality = kHigh_SkFilterQuality; |
198 | 217 |
199 sk_sp<SkImage> first_image = CreateImage(100, 100); | 218 sk_sp<SkImage> first_image = CreateImage(100, 100); |
200 DrawImage first_draw_image( | 219 DrawImage first_draw_image( |
201 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), | 220 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), |
202 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 221 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 30 matching lines...) Expand all Loading... |
233 EXPECT_TRUE(need_unref); | 252 EXPECT_TRUE(need_unref); |
234 EXPECT_TRUE(third_task.get() == second_task.get()); | 253 EXPECT_TRUE(third_task.get() == second_task.get()); |
235 | 254 |
236 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); | 255 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); |
237 TestTileTaskRunner::ProcessTask(second_task.get()); | 256 TestTileTaskRunner::ProcessTask(second_task.get()); |
238 | 257 |
239 cache.UnrefImage(second_draw_image); | 258 cache.UnrefImage(second_draw_image); |
240 cache.UnrefImage(third_draw_image); | 259 cache.UnrefImage(third_draw_image); |
241 } | 260 } |
242 | 261 |
243 TEST(GpuImageDecodeCacheTest, GetTaskForImageLargerScaleNoReuse) { | 262 // crbug.com/697171. |
| 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) { |
244 auto context_provider = TestContextProvider::Create(); | 271 auto context_provider = TestContextProvider::Create(); |
245 context_provider->BindToCurrentThread(); | 272 context_provider->BindToCurrentThread(); |
246 TestGpuImageDecodeCache cache(context_provider.get()); | 273 TestGpuImageDecodeCache cache(context_provider.get()); |
247 bool is_decomposable = true; | 274 bool is_decomposable = true; |
248 SkFilterQuality quality = kHigh_SkFilterQuality; | 275 SkFilterQuality quality = kHigh_SkFilterQuality; |
249 | 276 |
250 sk_sp<SkImage> first_image = CreateImage(100, 100); | 277 sk_sp<SkImage> first_image = CreateImage(100, 100); |
251 DrawImage first_draw_image( | 278 DrawImage first_draw_image( |
252 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), | 279 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), |
253 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 280 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 28 matching lines...) Expand all Loading... |
282 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); | 309 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); |
283 TestTileTaskRunner::ProcessTask(first_task.get()); | 310 TestTileTaskRunner::ProcessTask(first_task.get()); |
284 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); | 311 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); |
285 TestTileTaskRunner::ProcessTask(second_task.get()); | 312 TestTileTaskRunner::ProcessTask(second_task.get()); |
286 | 313 |
287 cache.UnrefImage(first_draw_image); | 314 cache.UnrefImage(first_draw_image); |
288 cache.UnrefImage(second_draw_image); | 315 cache.UnrefImage(second_draw_image); |
289 cache.UnrefImage(third_draw_image); | 316 cache.UnrefImage(third_draw_image); |
290 } | 317 } |
291 | 318 |
292 TEST(GpuImageDecodeCacheTest, GetTaskForImageHigherQuality) { | 319 // crbug.com/697171. |
| 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) { |
293 auto context_provider = TestContextProvider::Create(); | 326 auto context_provider = TestContextProvider::Create(); |
294 context_provider->BindToCurrentThread(); | 327 context_provider->BindToCurrentThread(); |
295 TestGpuImageDecodeCache cache(context_provider.get()); | 328 TestGpuImageDecodeCache cache(context_provider.get()); |
296 bool is_decomposable = true; | 329 bool is_decomposable = true; |
297 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); | 330 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); |
298 | 331 |
299 sk_sp<SkImage> first_image = CreateImage(100, 100); | 332 sk_sp<SkImage> first_image = CreateImage(100, 100); |
300 DrawImage first_draw_image( | 333 DrawImage first_draw_image( |
301 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), | 334 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), |
302 kLow_SkFilterQuality, matrix, DefaultColorSpace()); | 335 kLow_SkFilterQuality, matrix, DefaultColorSpace()); |
(...skipping 17 matching lines...) Expand all Loading... |
320 EXPECT_TRUE(need_unref); | 353 EXPECT_TRUE(need_unref); |
321 EXPECT_TRUE(second_task); | 354 EXPECT_TRUE(second_task); |
322 EXPECT_TRUE(first_task.get() != second_task.get()); | 355 EXPECT_TRUE(first_task.get() != second_task.get()); |
323 | 356 |
324 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); | 357 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); |
325 TestTileTaskRunner::ProcessTask(second_task.get()); | 358 TestTileTaskRunner::ProcessTask(second_task.get()); |
326 | 359 |
327 cache.UnrefImage(second_draw_image); | 360 cache.UnrefImage(second_draw_image); |
328 } | 361 } |
329 | 362 |
330 TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedAndLocked) { | 363 // crbug.com/697171. |
| 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) { |
331 auto context_provider = TestContextProvider::Create(); | 372 auto context_provider = TestContextProvider::Create(); |
332 context_provider->BindToCurrentThread(); | 373 context_provider->BindToCurrentThread(); |
333 TestGpuImageDecodeCache cache(context_provider.get()); | 374 TestGpuImageDecodeCache cache(context_provider.get()); |
334 bool is_decomposable = true; | 375 bool is_decomposable = true; |
335 SkFilterQuality quality = kHigh_SkFilterQuality; | 376 SkFilterQuality quality = kHigh_SkFilterQuality; |
336 | 377 |
337 sk_sp<SkImage> image = CreateImage(100, 100); | 378 sk_sp<SkImage> image = CreateImage(100, 100); |
338 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 379 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
339 quality, | 380 quality, |
340 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 381 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 25 matching lines...) Expand all Loading... |
366 | 407 |
367 TestTileTaskRunner::ProcessTask(another_task.get()); | 408 TestTileTaskRunner::ProcessTask(another_task.get()); |
368 | 409 |
369 // Finally, complete the original decode task. | 410 // Finally, complete the original decode task. |
370 TestTileTaskRunner::CompleteTask(task->dependencies()[0].get()); | 411 TestTileTaskRunner::CompleteTask(task->dependencies()[0].get()); |
371 | 412 |
372 cache.UnrefImage(draw_image); | 413 cache.UnrefImage(draw_image); |
373 cache.UnrefImage(draw_image); | 414 cache.UnrefImage(draw_image); |
374 } | 415 } |
375 | 416 |
376 TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedNotLocked) { | 417 // crbug.com/697171. |
| 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) { |
377 auto context_provider = TestContextProvider::Create(); | 426 auto context_provider = TestContextProvider::Create(); |
378 context_provider->BindToCurrentThread(); | 427 context_provider->BindToCurrentThread(); |
379 TestGpuImageDecodeCache cache(context_provider.get()); | 428 TestGpuImageDecodeCache cache(context_provider.get()); |
380 bool is_decomposable = true; | 429 bool is_decomposable = true; |
381 SkFilterQuality quality = kHigh_SkFilterQuality; | 430 SkFilterQuality quality = kHigh_SkFilterQuality; |
382 | 431 |
383 sk_sp<SkImage> image = CreateImage(100, 100); | 432 sk_sp<SkImage> image = CreateImage(100, 100); |
384 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 433 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
385 quality, | 434 quality, |
386 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 435 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 25 matching lines...) Expand all Loading... |
412 EXPECT_TRUE(another_task); | 461 EXPECT_TRUE(another_task); |
413 EXPECT_EQ(another_task->dependencies().size(), 1u); | 462 EXPECT_EQ(another_task->dependencies().size(), 1u); |
414 EXPECT_TRUE(task->dependencies()[0]); | 463 EXPECT_TRUE(task->dependencies()[0]); |
415 | 464 |
416 TestTileTaskRunner::ProcessTask(another_task->dependencies()[0].get()); | 465 TestTileTaskRunner::ProcessTask(another_task->dependencies()[0].get()); |
417 TestTileTaskRunner::ProcessTask(another_task.get()); | 466 TestTileTaskRunner::ProcessTask(another_task.get()); |
418 | 467 |
419 cache.UnrefImage(draw_image); | 468 cache.UnrefImage(draw_image); |
420 } | 469 } |
421 | 470 |
422 TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyUploaded) { | 471 // crbug.com/697171. |
| 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) { |
423 auto context_provider = TestContextProvider::Create(); | 479 auto context_provider = TestContextProvider::Create(); |
424 context_provider->BindToCurrentThread(); | 480 context_provider->BindToCurrentThread(); |
425 TestGpuImageDecodeCache cache(context_provider.get()); | 481 TestGpuImageDecodeCache cache(context_provider.get()); |
426 bool is_decomposable = true; | 482 bool is_decomposable = true; |
427 SkFilterQuality quality = kHigh_SkFilterQuality; | 483 SkFilterQuality quality = kHigh_SkFilterQuality; |
428 | 484 |
429 sk_sp<SkImage> image = CreateImage(100, 100); | 485 sk_sp<SkImage> image = CreateImage(100, 100); |
430 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 486 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
431 quality, | 487 quality, |
432 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 488 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
496 EXPECT_TRUE(need_unref); | 552 EXPECT_TRUE(need_unref); |
497 EXPECT_TRUE(third_task); | 553 EXPECT_TRUE(third_task); |
498 EXPECT_FALSE(third_task.get() == task.get()); | 554 EXPECT_FALSE(third_task.get() == task.get()); |
499 | 555 |
500 TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get()); | 556 TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get()); |
501 TestTileTaskRunner::ProcessTask(third_task.get()); | 557 TestTileTaskRunner::ProcessTask(third_task.get()); |
502 | 558 |
503 cache.UnrefImage(draw_image); | 559 cache.UnrefImage(draw_image); |
504 } | 560 } |
505 | 561 |
506 TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledWhileReffedGetsNewTask) { | 562 // crbug.com/697171. |
| 563 #if defined(MEMORY_SANITIZER) |
| 564 #define MAYBE_GetTaskForImageCanceledWhileReffedGetsNewTask \ |
| 565 DISABLED_GetTaskForImageCanceledWhileReffedGetsNewTask |
| 566 #else |
| 567 #define MAYBE_GetTaskForImageCanceledWhileReffedGetsNewTask \ |
| 568 GetTaskForImageCanceledWhileReffedGetsNewTask |
| 569 #endif |
| 570 TEST(GpuImageDecodeCacheTest, |
| 571 MAYBE_GetTaskForImageCanceledWhileReffedGetsNewTask) { |
507 auto context_provider = TestContextProvider::Create(); | 572 auto context_provider = TestContextProvider::Create(); |
508 context_provider->BindToCurrentThread(); | 573 context_provider->BindToCurrentThread(); |
509 TestGpuImageDecodeCache cache(context_provider.get()); | 574 TestGpuImageDecodeCache cache(context_provider.get()); |
510 bool is_decomposable = true; | 575 bool is_decomposable = true; |
511 SkFilterQuality quality = kHigh_SkFilterQuality; | 576 SkFilterQuality quality = kHigh_SkFilterQuality; |
512 | 577 |
513 sk_sp<SkImage> image = CreateImage(100, 100); | 578 sk_sp<SkImage> image = CreateImage(100, 100); |
514 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 579 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
515 quality, | 580 quality, |
516 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 581 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 EXPECT_FALSE(third_task.get() == task.get()); | 613 EXPECT_FALSE(third_task.get() == task.get()); |
549 | 614 |
550 ASSERT_GT(third_task->dependencies().size(), 0u); | 615 ASSERT_GT(third_task->dependencies().size(), 0u); |
551 TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get()); | 616 TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get()); |
552 TestTileTaskRunner::ProcessTask(third_task.get()); | 617 TestTileTaskRunner::ProcessTask(third_task.get()); |
553 | 618 |
554 // Unref! | 619 // Unref! |
555 cache.UnrefImage(draw_image); | 620 cache.UnrefImage(draw_image); |
556 } | 621 } |
557 | 622 |
558 TEST(GpuImageDecodeCacheTest, NoTaskForImageAlreadyFailedDecoding) { | 623 // crbug.com/697171. |
| 624 #if defined(MEMORY_SANITIZER) |
| 625 #define MAYBE_NoTaskForImageAlreadyFailedDecoding \ |
| 626 DISABLED_NoTaskForImageAlreadyFailedDecoding |
| 627 #else |
| 628 #define MAYBE_NoTaskForImageAlreadyFailedDecoding \ |
| 629 NoTaskForImageAlreadyFailedDecoding |
| 630 #endif |
| 631 TEST(GpuImageDecodeCacheTest, MAYBE_NoTaskForImageAlreadyFailedDecoding) { |
559 auto context_provider = TestContextProvider::Create(); | 632 auto context_provider = TestContextProvider::Create(); |
560 context_provider->BindToCurrentThread(); | 633 context_provider->BindToCurrentThread(); |
561 TestGpuImageDecodeCache cache(context_provider.get()); | 634 TestGpuImageDecodeCache cache(context_provider.get()); |
562 bool is_decomposable = true; | 635 bool is_decomposable = true; |
563 SkFilterQuality quality = kHigh_SkFilterQuality; | 636 SkFilterQuality quality = kHigh_SkFilterQuality; |
564 | 637 |
565 sk_sp<SkImage> image = CreateImage(100, 100); | 638 sk_sp<SkImage> image = CreateImage(100, 100); |
566 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 639 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
567 quality, | 640 quality, |
568 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 641 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 13 matching lines...) Expand all Loading... |
582 | 655 |
583 scoped_refptr<TileTask> another_task; | 656 scoped_refptr<TileTask> another_task; |
584 need_unref = cache.GetTaskForImageAndRef( | 657 need_unref = cache.GetTaskForImageAndRef( |
585 draw_image, ImageDecodeCache::TracingInfo(), &another_task); | 658 draw_image, ImageDecodeCache::TracingInfo(), &another_task); |
586 EXPECT_FALSE(need_unref); | 659 EXPECT_FALSE(need_unref); |
587 EXPECT_EQ(another_task.get(), nullptr); | 660 EXPECT_EQ(another_task.get(), nullptr); |
588 | 661 |
589 cache.UnrefImage(draw_image); | 662 cache.UnrefImage(draw_image); |
590 } | 663 } |
591 | 664 |
592 TEST(GpuImageDecodeCacheTest, GetDecodedImageForDraw) { | 665 // crbug.com/697171. |
| 666 #if defined(MEMORY_SANITIZER) |
| 667 #define MAYBE_GetDecodedImageForDraw DISABLED_GetDecodedImageForDraw |
| 668 #else |
| 669 #define MAYBE_GetDecodedImageForDraw GetDecodedImageForDraw |
| 670 #endif |
| 671 TEST(GpuImageDecodeCacheTest, MAYBE_GetDecodedImageForDraw) { |
593 auto context_provider = TestContextProvider::Create(); | 672 auto context_provider = TestContextProvider::Create(); |
594 context_provider->BindToCurrentThread(); | 673 context_provider->BindToCurrentThread(); |
595 TestGpuImageDecodeCache cache(context_provider.get()); | 674 TestGpuImageDecodeCache cache(context_provider.get()); |
596 bool is_decomposable = true; | 675 bool is_decomposable = true; |
597 SkFilterQuality quality = kHigh_SkFilterQuality; | 676 SkFilterQuality quality = kHigh_SkFilterQuality; |
598 | 677 |
599 sk_sp<SkImage> image = CreateImage(100, 100); | 678 sk_sp<SkImage> image = CreateImage(100, 100); |
600 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 679 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
601 quality, | 680 quality, |
602 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 681 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 DecodedDrawImage decoded_draw_image = | 766 DecodedDrawImage decoded_draw_image = |
688 cache.GetDecodedImageForDraw(draw_image); | 767 cache.GetDecodedImageForDraw(draw_image); |
689 EXPECT_TRUE(decoded_draw_image.image()); | 768 EXPECT_TRUE(decoded_draw_image.image()); |
690 EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked()); | 769 EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked()); |
691 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); | 770 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); |
692 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); | 771 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); |
693 | 772 |
694 cache.DrawWithImageFinished(draw_image, decoded_draw_image); | 773 cache.DrawWithImageFinished(draw_image, decoded_draw_image); |
695 } | 774 } |
696 | 775 |
697 TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawLargerScale) { | 776 // crbug.com/697171. |
| 777 #if defined(MEMORY_SANITIZER) |
| 778 #define MAYBE_GetDecodedImageForDrawLargerScale \ |
| 779 DISABLED_GetDecodedImageForDrawLargerScale |
| 780 #else |
| 781 #define MAYBE_GetDecodedImageForDrawLargerScale \ |
| 782 GetDecodedImageForDrawLargerScale |
| 783 #endif |
| 784 TEST(GpuImageDecodeCacheTest, MAYBE_GetDecodedImageForDrawLargerScale) { |
698 auto context_provider = TestContextProvider::Create(); | 785 auto context_provider = TestContextProvider::Create(); |
699 context_provider->BindToCurrentThread(); | 786 context_provider->BindToCurrentThread(); |
700 TestGpuImageDecodeCache cache(context_provider.get()); | 787 TestGpuImageDecodeCache cache(context_provider.get()); |
701 bool is_decomposable = true; | 788 bool is_decomposable = true; |
702 SkFilterQuality quality = kHigh_SkFilterQuality; | 789 SkFilterQuality quality = kHigh_SkFilterQuality; |
703 | 790 |
704 sk_sp<SkImage> image = CreateImage(100, 100); | 791 sk_sp<SkImage> image = CreateImage(100, 100); |
705 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 792 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
706 quality, | 793 quality, |
707 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 794 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
746 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); | 833 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); |
747 | 834 |
748 EXPECT_FALSE(decoded_draw_image.image() == larger_decoded_draw_image.image()); | 835 EXPECT_FALSE(decoded_draw_image.image() == larger_decoded_draw_image.image()); |
749 | 836 |
750 cache.DrawWithImageFinished(draw_image, decoded_draw_image); | 837 cache.DrawWithImageFinished(draw_image, decoded_draw_image); |
751 cache.UnrefImage(draw_image); | 838 cache.UnrefImage(draw_image); |
752 cache.DrawWithImageFinished(larger_draw_image, larger_decoded_draw_image); | 839 cache.DrawWithImageFinished(larger_draw_image, larger_decoded_draw_image); |
753 cache.UnrefImage(larger_draw_image); | 840 cache.UnrefImage(larger_draw_image); |
754 } | 841 } |
755 | 842 |
756 TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawHigherQuality) { | 843 // crbug.com/697171. |
| 844 #if defined(MEMORY_SANITIZER) |
| 845 #define MAYBE_GetDecodedImageForDrawHigherQuality \ |
| 846 DISABLED_GetDecodedImageForDrawHigherQuality |
| 847 #else |
| 848 #define MAYBE_GetDecodedImageForDrawHigherQuality \ |
| 849 GetDecodedImageForDrawHigherQuality |
| 850 #endif |
| 851 TEST(GpuImageDecodeCacheTest, MAYBE_GetDecodedImageForDrawHigherQuality) { |
757 auto context_provider = TestContextProvider::Create(); | 852 auto context_provider = TestContextProvider::Create(); |
758 context_provider->BindToCurrentThread(); | 853 context_provider->BindToCurrentThread(); |
759 TestGpuImageDecodeCache cache(context_provider.get()); | 854 TestGpuImageDecodeCache cache(context_provider.get()); |
760 bool is_decomposable = true; | 855 bool is_decomposable = true; |
761 SkMatrix matrix = CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable); | 856 SkMatrix matrix = CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable); |
762 | 857 |
763 sk_sp<SkImage> image = CreateImage(100, 100); | 858 sk_sp<SkImage> image = CreateImage(100, 100); |
764 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 859 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
765 kLow_SkFilterQuality, matrix, DefaultColorSpace()); | 860 kLow_SkFilterQuality, matrix, DefaultColorSpace()); |
766 scoped_refptr<TileTask> task; | 861 scoped_refptr<TileTask> task; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
803 | 898 |
804 EXPECT_FALSE(decoded_draw_image.image() == larger_decoded_draw_image.image()); | 899 EXPECT_FALSE(decoded_draw_image.image() == larger_decoded_draw_image.image()); |
805 | 900 |
806 cache.DrawWithImageFinished(draw_image, decoded_draw_image); | 901 cache.DrawWithImageFinished(draw_image, decoded_draw_image); |
807 cache.UnrefImage(draw_image); | 902 cache.UnrefImage(draw_image); |
808 cache.DrawWithImageFinished(higher_quality_draw_image, | 903 cache.DrawWithImageFinished(higher_quality_draw_image, |
809 larger_decoded_draw_image); | 904 larger_decoded_draw_image); |
810 cache.UnrefImage(higher_quality_draw_image); | 905 cache.UnrefImage(higher_quality_draw_image); |
811 } | 906 } |
812 | 907 |
813 TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawNegative) { | 908 // crbug.com/697171. |
| 909 #if defined(MEMORY_SANITIZER) |
| 910 #define MAYBE_GetDecodedImageForDrawNegative \ |
| 911 DISABLED_GetDecodedImageForDrawNegative |
| 912 #else |
| 913 #define MAYBE_GetDecodedImageForDrawNegative GetDecodedImageForDrawNegative |
| 914 #endif |
| 915 TEST(GpuImageDecodeCacheTest, MAYBE_GetDecodedImageForDrawNegative) { |
814 auto context_provider = TestContextProvider::Create(); | 916 auto context_provider = TestContextProvider::Create(); |
815 context_provider->BindToCurrentThread(); | 917 context_provider->BindToCurrentThread(); |
816 TestGpuImageDecodeCache cache(context_provider.get()); | 918 TestGpuImageDecodeCache cache(context_provider.get()); |
817 bool is_decomposable = true; | 919 bool is_decomposable = true; |
818 SkFilterQuality quality = kHigh_SkFilterQuality; | 920 SkFilterQuality quality = kHigh_SkFilterQuality; |
819 | 921 |
820 sk_sp<SkImage> image = CreateImage(100, 100); | 922 sk_sp<SkImage> image = CreateImage(100, 100); |
821 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 923 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
822 quality, | 924 quality, |
823 CreateMatrix(SkSize::Make(-0.5f, 0.5f), is_decomposable), | 925 CreateMatrix(SkSize::Make(-0.5f, 0.5f), is_decomposable), |
(...skipping 16 matching lines...) Expand all Loading... |
840 EXPECT_EQ(decoded_draw_image.image()->width(), 50); | 942 EXPECT_EQ(decoded_draw_image.image()->width(), 50); |
841 EXPECT_EQ(decoded_draw_image.image()->height(), 50); | 943 EXPECT_EQ(decoded_draw_image.image()->height(), 50); |
842 EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked()); | 944 EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked()); |
843 EXPECT_FALSE(decoded_draw_image.is_at_raster_decode()); | 945 EXPECT_FALSE(decoded_draw_image.is_at_raster_decode()); |
844 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); | 946 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); |
845 | 947 |
846 cache.DrawWithImageFinished(draw_image, decoded_draw_image); | 948 cache.DrawWithImageFinished(draw_image, decoded_draw_image); |
847 cache.UnrefImage(draw_image); | 949 cache.UnrefImage(draw_image); |
848 } | 950 } |
849 | 951 |
850 TEST(GpuImageDecodeCacheTest, GetLargeScaledDecodedImageForDraw) { | 952 // crbug.com/697171. |
| 953 #if defined(MEMORY_SANITIZER) |
| 954 #define MAYBE_GetLargeScaledDecodedImageForDraw \ |
| 955 DISABLED_GetLargeScaledDecodedImageForDraw |
| 956 #else |
| 957 #define MAYBE_GetLargeScaledDecodedImageForDraw \ |
| 958 GetLargeScaledDecodedImageForDraw |
| 959 #endif |
| 960 TEST(GpuImageDecodeCacheTest, MAYBE_GetLargeScaledDecodedImageForDraw) { |
851 auto context_provider = TestContextProvider::Create(); | 961 auto context_provider = TestContextProvider::Create(); |
852 context_provider->BindToCurrentThread(); | 962 context_provider->BindToCurrentThread(); |
853 TestGpuImageDecodeCache cache(context_provider.get()); | 963 TestGpuImageDecodeCache cache(context_provider.get()); |
854 bool is_decomposable = true; | 964 bool is_decomposable = true; |
855 SkFilterQuality quality = kHigh_SkFilterQuality; | 965 SkFilterQuality quality = kHigh_SkFilterQuality; |
856 | 966 |
857 sk_sp<SkImage> image = CreateImage(1, 48000); | 967 sk_sp<SkImage> image = CreateImage(1, 48000); |
858 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 968 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
859 quality, | 969 quality, |
860 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 970 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 18 matching lines...) Expand all Loading... |
879 EXPECT_EQ(24000, decoded_draw_image.image()->height()); | 989 EXPECT_EQ(24000, decoded_draw_image.image()->height()); |
880 EXPECT_FALSE(decoded_draw_image.image()->isTextureBacked()); | 990 EXPECT_FALSE(decoded_draw_image.image()->isTextureBacked()); |
881 EXPECT_FALSE(decoded_draw_image.is_at_raster_decode()); | 991 EXPECT_FALSE(decoded_draw_image.is_at_raster_decode()); |
882 EXPECT_TRUE(cache.DiscardableIsLockedForTesting(draw_image)); | 992 EXPECT_TRUE(cache.DiscardableIsLockedForTesting(draw_image)); |
883 | 993 |
884 cache.DrawWithImageFinished(draw_image, decoded_draw_image); | 994 cache.DrawWithImageFinished(draw_image, decoded_draw_image); |
885 cache.UnrefImage(draw_image); | 995 cache.UnrefImage(draw_image); |
886 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); | 996 EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image)); |
887 } | 997 } |
888 | 998 |
889 TEST(GpuImageDecodeCacheTest, AtRasterUsedDirectlyIfSpaceAllows) { | 999 // crbug.com/697171. |
| 1000 #if defined(MEMORY_SANITIZER) |
| 1001 #define MAYBE_AtRasterUsedDirectlyIfSpaceAllows \ |
| 1002 DISABLED_AtRasterUsedDirectlyIfSpaceAllows |
| 1003 #else |
| 1004 #define MAYBE_AtRasterUsedDirectlyIfSpaceAllows \ |
| 1005 AtRasterUsedDirectlyIfSpaceAllows |
| 1006 #endif |
| 1007 TEST(GpuImageDecodeCacheTest, MAYBE_AtRasterUsedDirectlyIfSpaceAllows) { |
890 auto context_provider = TestContextProvider::Create(); | 1008 auto context_provider = TestContextProvider::Create(); |
891 context_provider->BindToCurrentThread(); | 1009 context_provider->BindToCurrentThread(); |
892 TestGpuImageDecodeCache cache(context_provider.get()); | 1010 TestGpuImageDecodeCache cache(context_provider.get()); |
893 bool is_decomposable = true; | 1011 bool is_decomposable = true; |
894 SkFilterQuality quality = kHigh_SkFilterQuality; | 1012 SkFilterQuality quality = kHigh_SkFilterQuality; |
895 | 1013 |
896 cache.SetAllByteLimitsForTesting(0); | 1014 cache.SetAllByteLimitsForTesting(0); |
897 | 1015 |
898 sk_sp<SkImage> image = CreateImage(100, 100); | 1016 sk_sp<SkImage> image = CreateImage(100, 100); |
899 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 1017 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
(...skipping 24 matching lines...) Expand all Loading... |
924 cache.DrawWithImageFinished(draw_image, decoded_draw_image); | 1042 cache.DrawWithImageFinished(draw_image, decoded_draw_image); |
925 | 1043 |
926 scoped_refptr<TileTask> another_task; | 1044 scoped_refptr<TileTask> another_task; |
927 bool another_task_needs_unref = cache.GetTaskForImageAndRef( | 1045 bool another_task_needs_unref = cache.GetTaskForImageAndRef( |
928 draw_image, ImageDecodeCache::TracingInfo(), &task); | 1046 draw_image, ImageDecodeCache::TracingInfo(), &task); |
929 EXPECT_TRUE(another_task_needs_unref); | 1047 EXPECT_TRUE(another_task_needs_unref); |
930 EXPECT_FALSE(another_task); | 1048 EXPECT_FALSE(another_task); |
931 cache.UnrefImage(draw_image); | 1049 cache.UnrefImage(draw_image); |
932 } | 1050 } |
933 | 1051 |
| 1052 // crbug.com/697171. |
| 1053 #if defined(MEMORY_SANITIZER) |
| 1054 #define MAYBE_GetDecodedImageForDrawAtRasterDecodeMultipleTimes \ |
| 1055 DISABLED_GetDecodedImageForDrawAtRasterDecodeMultipleTimes |
| 1056 #else |
| 1057 #define MAYBE_GetDecodedImageForDrawAtRasterDecodeMultipleTimes \ |
| 1058 GetDecodedImageForDrawAtRasterDecodeMultipleTimes |
| 1059 #endif |
934 TEST(GpuImageDecodeCacheTest, | 1060 TEST(GpuImageDecodeCacheTest, |
935 GetDecodedImageForDrawAtRasterDecodeMultipleTimes) { | 1061 MAYBE_GetDecodedImageForDrawAtRasterDecodeMultipleTimes) { |
936 auto context_provider = TestContextProvider::Create(); | 1062 auto context_provider = TestContextProvider::Create(); |
937 context_provider->BindToCurrentThread(); | 1063 context_provider->BindToCurrentThread(); |
938 TestGpuImageDecodeCache cache(context_provider.get()); | 1064 TestGpuImageDecodeCache cache(context_provider.get()); |
939 bool is_decomposable = true; | 1065 bool is_decomposable = true; |
940 SkFilterQuality quality = kHigh_SkFilterQuality; | 1066 SkFilterQuality quality = kHigh_SkFilterQuality; |
941 | 1067 |
942 cache.SetAllByteLimitsForTesting(0); | 1068 cache.SetAllByteLimitsForTesting(0); |
943 | 1069 |
944 sk_sp<SkImage> image = CreateImage(100, 100); | 1070 sk_sp<SkImage> image = CreateImage(100, 100); |
945 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 1071 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1084 | 1210 |
1085 TestTileTaskRunner::CancelTask(task->dependencies()[0].get()); | 1211 TestTileTaskRunner::CancelTask(task->dependencies()[0].get()); |
1086 TestTileTaskRunner::CompleteTask(task->dependencies()[0].get()); | 1212 TestTileTaskRunner::CompleteTask(task->dependencies()[0].get()); |
1087 TestTileTaskRunner::CancelTask(task.get()); | 1213 TestTileTaskRunner::CancelTask(task.get()); |
1088 TestTileTaskRunner::CompleteTask(task.get()); | 1214 TestTileTaskRunner::CompleteTask(task.get()); |
1089 | 1215 |
1090 cache.UnrefImage(draw_image); | 1216 cache.UnrefImage(draw_image); |
1091 EXPECT_EQ(0u, cache.GetBytesUsedForTesting()); | 1217 EXPECT_EQ(0u, cache.GetBytesUsedForTesting()); |
1092 } | 1218 } |
1093 | 1219 |
1094 TEST(GpuImageDecodeCacheTest, ShouldAggressivelyFreeResources) { | 1220 // crbug.com/697171. |
| 1221 #if defined(MEMORY_SANITIZER) |
| 1222 #define MAYBE_ShouldAggressivelyFreeResources \ |
| 1223 DISABLED_ShouldAggressivelyFreeResources |
| 1224 #else |
| 1225 #define MAYBE_ShouldAggressivelyFreeResources ShouldAggressivelyFreeResources |
| 1226 #endif |
| 1227 TEST(GpuImageDecodeCacheTest, MAYBE_ShouldAggressivelyFreeResources) { |
1095 auto context_provider = TestContextProvider::Create(); | 1228 auto context_provider = TestContextProvider::Create(); |
1096 context_provider->BindToCurrentThread(); | 1229 context_provider->BindToCurrentThread(); |
1097 TestGpuImageDecodeCache cache(context_provider.get()); | 1230 TestGpuImageDecodeCache cache(context_provider.get()); |
1098 bool is_decomposable = true; | 1231 bool is_decomposable = true; |
1099 SkFilterQuality quality = kHigh_SkFilterQuality; | 1232 SkFilterQuality quality = kHigh_SkFilterQuality; |
1100 | 1233 |
1101 sk_sp<SkImage> image = CreateImage(100, 100); | 1234 sk_sp<SkImage> image = CreateImage(100, 100); |
1102 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 1235 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
1103 quality, | 1236 quality, |
1104 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), | 1237 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable), |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1148 EXPECT_TRUE(task); | 1281 EXPECT_TRUE(task); |
1149 | 1282 |
1150 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get()); | 1283 TestTileTaskRunner::ProcessTask(task->dependencies()[0].get()); |
1151 TestTileTaskRunner::ProcessTask(task.get()); | 1284 TestTileTaskRunner::ProcessTask(task.get()); |
1152 cache.UnrefImage(draw_image); | 1285 cache.UnrefImage(draw_image); |
1153 | 1286 |
1154 EXPECT_GT(cache.GetBytesUsedForTesting(), 0u); | 1287 EXPECT_GT(cache.GetBytesUsedForTesting(), 0u); |
1155 } | 1288 } |
1156 } | 1289 } |
1157 | 1290 |
1158 TEST(GpuImageDecodeCacheTest, OrphanedImagesFreeOnReachingZeroRefs) { | 1291 // crbug.com/697171. |
| 1292 #if defined(MEMORY_SANITIZER) |
| 1293 #define MAYBE_OrphanedImagesFreeOnReachingZeroRefs \ |
| 1294 DISABLED_OrphanedImagesFreeOnReachingZeroRefs |
| 1295 #else |
| 1296 #define MAYBE_OrphanedImagesFreeOnReachingZeroRefs \ |
| 1297 OrphanedImagesFreeOnReachingZeroRefs |
| 1298 #endif |
| 1299 TEST(GpuImageDecodeCacheTest, MAYBE_OrphanedImagesFreeOnReachingZeroRefs) { |
1159 auto context_provider = TestContextProvider::Create(); | 1300 auto context_provider = TestContextProvider::Create(); |
1160 context_provider->BindToCurrentThread(); | 1301 context_provider->BindToCurrentThread(); |
1161 TestGpuImageDecodeCache cache(context_provider.get()); | 1302 TestGpuImageDecodeCache cache(context_provider.get()); |
1162 bool is_decomposable = true; | 1303 bool is_decomposable = true; |
1163 SkFilterQuality quality = kHigh_SkFilterQuality; | 1304 SkFilterQuality quality = kHigh_SkFilterQuality; |
1164 | 1305 |
1165 // Create a downscaled image. | 1306 // Create a downscaled image. |
1166 sk_sp<SkImage> first_image = CreateImage(100, 100); | 1307 sk_sp<SkImage> first_image = CreateImage(100, 100); |
1167 DrawImage first_draw_image( | 1308 DrawImage first_draw_image( |
1168 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), | 1309 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1205 // deleted. | 1346 // deleted. |
1206 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); | 1347 TestTileTaskRunner::ProcessTask(first_task->dependencies()[0].get()); |
1207 TestTileTaskRunner::ProcessTask(first_task.get()); | 1348 TestTileTaskRunner::ProcessTask(first_task.get()); |
1208 cache.UnrefImage(first_draw_image); | 1349 cache.UnrefImage(first_draw_image); |
1209 | 1350 |
1210 // The budget should account for exactly one image. | 1351 // The budget should account for exactly one image. |
1211 EXPECT_EQ(cache.GetBytesUsedForTesting(), | 1352 EXPECT_EQ(cache.GetBytesUsedForTesting(), |
1212 cache.GetDrawImageSizeForTesting(second_draw_image)); | 1353 cache.GetDrawImageSizeForTesting(second_draw_image)); |
1213 } | 1354 } |
1214 | 1355 |
1215 TEST(GpuImageDecodeCacheTest, OrphanedZeroRefImagesImmediatelyDeleted) { | 1356 // crbug.com/697171. |
| 1357 #if defined(MEMORY_SANITIZER) |
| 1358 #define MAYBE_OrphanedZeroRefImagesImmediatelyDeleted \ |
| 1359 DISABLED_OrphanedZeroRefImagesImmediatelyDeleted |
| 1360 #else |
| 1361 #define MAYBE_OrphanedZeroRefImagesImmediatelyDeleted \ |
| 1362 OrphanedZeroRefImagesImmediatelyDeleted |
| 1363 #endif |
| 1364 TEST(GpuImageDecodeCacheTest, MAYBE_OrphanedZeroRefImagesImmediatelyDeleted) { |
1216 auto context_provider = TestContextProvider::Create(); | 1365 auto context_provider = TestContextProvider::Create(); |
1217 context_provider->BindToCurrentThread(); | 1366 context_provider->BindToCurrentThread(); |
1218 TestGpuImageDecodeCache cache(context_provider.get()); | 1367 TestGpuImageDecodeCache cache(context_provider.get()); |
1219 bool is_decomposable = true; | 1368 bool is_decomposable = true; |
1220 SkFilterQuality quality = kHigh_SkFilterQuality; | 1369 SkFilterQuality quality = kHigh_SkFilterQuality; |
1221 | 1370 |
1222 // Create a downscaled image. | 1371 // Create a downscaled image. |
1223 sk_sp<SkImage> first_image = CreateImage(100, 100); | 1372 sk_sp<SkImage> first_image = CreateImage(100, 100); |
1224 DrawImage first_draw_image( | 1373 DrawImage first_draw_image( |
1225 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), | 1374 first_image, SkIRect::MakeWH(first_image->width(), first_image->height()), |
(...skipping 29 matching lines...) Expand all Loading... |
1255 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); | 1404 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); |
1256 TestTileTaskRunner::ProcessTask(second_task.get()); | 1405 TestTileTaskRunner::ProcessTask(second_task.get()); |
1257 | 1406 |
1258 cache.UnrefImage(second_draw_image); | 1407 cache.UnrefImage(second_draw_image); |
1259 | 1408 |
1260 // The budget should account for exactly one image. | 1409 // The budget should account for exactly one image. |
1261 EXPECT_EQ(cache.GetBytesUsedForTesting(), | 1410 EXPECT_EQ(cache.GetBytesUsedForTesting(), |
1262 cache.GetDrawImageSizeForTesting(second_draw_image)); | 1411 cache.GetDrawImageSizeForTesting(second_draw_image)); |
1263 } | 1412 } |
1264 | 1413 |
1265 TEST(GpuImageDecodeCacheTest, QualityCappedAtMedium) { | 1414 // crbug.com/697171. |
| 1415 #if defined(MEMORY_SANITIZER) |
| 1416 #define MAYBE_QualityCappedAtMedium DISABLED_QualityCappedAtMedium |
| 1417 #else |
| 1418 #define MAYBE_QualityCappedAtMedium QualityCappedAtMedium |
| 1419 #endif |
| 1420 TEST(GpuImageDecodeCacheTest, MAYBE_QualityCappedAtMedium) { |
1266 auto context_provider = TestContextProvider::Create(); | 1421 auto context_provider = TestContextProvider::Create(); |
1267 context_provider->BindToCurrentThread(); | 1422 context_provider->BindToCurrentThread(); |
1268 TestGpuImageDecodeCache cache(context_provider.get()); | 1423 TestGpuImageDecodeCache cache(context_provider.get()); |
1269 sk_sp<SkImage> image = CreateImage(100, 100); | 1424 sk_sp<SkImage> image = CreateImage(100, 100); |
1270 bool is_decomposable = true; | 1425 bool is_decomposable = true; |
1271 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); | 1426 SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable); |
1272 | 1427 |
1273 // Create an image with kLow_FilterQuality. | 1428 // Create an image with kLow_FilterQuality. |
1274 DrawImage low_draw_image(image, | 1429 DrawImage low_draw_image(image, |
1275 SkIRect::MakeWH(image->width(), image->height()), | 1430 SkIRect::MakeWH(image->width(), image->height()), |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1681 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); | 1836 TestTileTaskRunner::ProcessTask(second_task->dependencies()[0].get()); |
1682 TestTileTaskRunner::ProcessTask(second_task.get()); | 1837 TestTileTaskRunner::ProcessTask(second_task.get()); |
1683 | 1838 |
1684 cache.UnrefImage(first_draw_image); | 1839 cache.UnrefImage(first_draw_image); |
1685 cache.UnrefImage(second_draw_image); | 1840 cache.UnrefImage(second_draw_image); |
1686 cache.UnrefImage(third_draw_image); | 1841 cache.UnrefImage(third_draw_image); |
1687 } | 1842 } |
1688 | 1843 |
1689 } // namespace | 1844 } // namespace |
1690 } // namespace cc | 1845 } // namespace cc |
OLD | NEW |