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 // 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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |