| 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 |