| Index: cc/tiles/gpu_image_decode_cache_unittest.cc
|
| diff --git a/cc/tiles/gpu_image_decode_cache_unittest.cc b/cc/tiles/gpu_image_decode_cache_unittest.cc
|
| index d46fa18a461bf426c8d5d5195800bbe5ca2c6a23..fb2f91bceaf15d604ab0cd4ed19a5d42c088b144 100644
|
| --- a/cc/tiles/gpu_image_decode_cache_unittest.cc
|
| +++ b/cc/tiles/gpu_image_decode_cache_unittest.cc
|
| @@ -8,6 +8,7 @@
|
| #include "cc/test/test_context_provider.h"
|
| #include "cc/test/test_tile_task_runner.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| +#include "third_party/skia/include/core/SkImageGenerator.h"
|
| #include "third_party/skia/include/core/SkRefCnt.h"
|
|
|
| namespace cc {
|
| @@ -26,20 +27,39 @@ PaintImage CreatePaintImage(sk_sp<SkImage> image) {
|
| size_t kGpuMemoryLimitBytes = 96 * 1024 * 1024;
|
| class TestGpuImageDecodeCache : public GpuImageDecodeCache {
|
| public:
|
| - explicit TestGpuImageDecodeCache(ContextProvider* context)
|
| + explicit TestGpuImageDecodeCache(ContextProvider* context,
|
| + ResourceFormat format)
|
| : GpuImageDecodeCache(context,
|
| - ResourceFormat::RGBA_8888,
|
| + format,
|
| kGpuMemoryLimitBytes,
|
| kGpuMemoryLimitBytes) {}
|
| };
|
|
|
| +class TestImageGenerator : public SkImageGenerator {
|
| + public:
|
| + explicit TestImageGenerator(const SkImageInfo& info)
|
| + : SkImageGenerator(info),
|
| + image_backing_memory_(info.getSafeSize(info.minRowBytes()), 0),
|
| + image_pixmap_(info, image_backing_memory_.data(), info.minRowBytes()) {}
|
| +
|
| + protected:
|
| + bool onGetPixels(const SkImageInfo& info,
|
| + void* pixels,
|
| + size_t rowBytes,
|
| + const Options&) override {
|
| + return image_pixmap_.readPixels(info, pixels, rowBytes, 0, 0);
|
| + }
|
| +
|
| + private:
|
| + std::vector<uint8_t> image_backing_memory_;
|
| + SkPixmap image_pixmap_;
|
| +};
|
| +
|
| sk_sp<SkImage> CreateImage(int width, int height) {
|
| - SkBitmap bitmap;
|
| gfx::ColorSpace color_space = gfx::ColorSpace::CreateSRGB();
|
| - bitmap.allocPixels(
|
| - SkImageInfo::MakeN32Premul(width, height, color_space.ToSkColorSpace()));
|
| - bitmap.eraseColor(0);
|
| - return SkImage::MakeFromBitmap(bitmap);
|
| + std::unique_ptr<TestImageGenerator> generator(new TestImageGenerator(
|
| + SkImageInfo::MakeN32Premul(width, height, color_space.ToSkColorSpace())));
|
| + return SkImage::MakeFromGenerator(std::move(generator));
|
| }
|
|
|
| SkMatrix CreateMatrix(const SkSize& scale, bool is_decomposable) {
|
| @@ -54,10 +74,12 @@ SkMatrix CreateMatrix(const SkSize& scale, bool is_decomposable) {
|
| return matrix;
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageSameImage) {
|
| +using GpuImageDecodeCacheTest = ::testing::TestWithParam<ResourceFormat>;
|
| +
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageSameImage) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| sk_sp<SkImage> image = CreateImage(100, 100);
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
| @@ -89,10 +111,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageSameImage) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageSmallerScale) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageSmallerScale) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| sk_sp<SkImage> image = CreateImage(100, 100);
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
| @@ -124,10 +146,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageSmallerScale) {
|
| cache.UnrefImage(another_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageLowerQuality) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageLowerQuality) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| sk_sp<SkImage> image = CreateImage(100, 100);
|
| bool is_decomposable = true;
|
| SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable);
|
| @@ -157,10 +179,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageLowerQuality) {
|
| cache.UnrefImage(another_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageDifferentImage) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageDifferentImage) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -198,10 +220,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageDifferentImage) {
|
| cache.UnrefImage(second_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageLargerScale) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageLargerScale) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -252,10 +274,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageLargerScale) {
|
| cache.UnrefImage(third_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageLargerScaleNoReuse) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageLargerScaleNoReuse) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -304,10 +326,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageLargerScaleNoReuse) {
|
| cache.UnrefImage(third_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageHigherQuality) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageHigherQuality) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable);
|
|
|
| @@ -344,10 +366,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageHigherQuality) {
|
| cache.UnrefImage(second_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedAndLocked) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedAndLocked) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -390,10 +412,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedAndLocked) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedNotLocked) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedNotLocked) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -436,10 +458,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyDecodedNotLocked) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyUploaded) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageAlreadyUploaded) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -472,10 +494,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageAlreadyUploaded) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledGetsNewTask) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageCanceledGetsNewTask) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -520,10 +542,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledGetsNewTask) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledWhileReffedGetsNewTask) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageCanceledWhileReffedGetsNewTask) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -572,10 +594,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledWhileReffedGetsNewTask) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, NoTaskForImageAlreadyFailedDecoding) {
|
| +TEST_P(GpuImageDecodeCacheTest, NoTaskForImageAlreadyFailedDecoding) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -606,10 +628,10 @@ TEST(GpuImageDecodeCacheTest, NoTaskForImageAlreadyFailedDecoding) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetDecodedImageForDraw) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetDecodedImageForDraw) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -641,10 +663,10 @@ TEST(GpuImageDecodeCacheTest, GetDecodedImageForDraw) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetLargeDecodedImageForDraw) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetLargeDecodedImageForDraw) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -677,10 +699,10 @@ TEST(GpuImageDecodeCacheTest, GetLargeDecodedImageForDraw) {
|
| EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image));
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawAtRasterDecode) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetDecodedImageForDrawAtRasterDecode) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -711,10 +733,10 @@ TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawAtRasterDecode) {
|
| cache.DrawWithImageFinished(draw_image, decoded_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawLargerScale) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetDecodedImageForDrawLargerScale) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -770,10 +792,10 @@ TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawLargerScale) {
|
| cache.UnrefImage(larger_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawHigherQuality) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetDecodedImageForDrawHigherQuality) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkMatrix matrix = CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable);
|
|
|
| @@ -828,10 +850,10 @@ TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawHigherQuality) {
|
| cache.UnrefImage(higher_quality_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawNegative) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetDecodedImageForDrawNegative) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -865,10 +887,10 @@ TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawNegative) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetLargeScaledDecodedImageForDraw) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetLargeScaledDecodedImageForDraw) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -904,10 +926,10 @@ TEST(GpuImageDecodeCacheTest, GetLargeScaledDecodedImageForDraw) {
|
| EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image));
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, AtRasterUsedDirectlyIfSpaceAllows) {
|
| +TEST_P(GpuImageDecodeCacheTest, AtRasterUsedDirectlyIfSpaceAllows) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -949,11 +971,11 @@ TEST(GpuImageDecodeCacheTest, AtRasterUsedDirectlyIfSpaceAllows) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest,
|
| - GetDecodedImageForDrawAtRasterDecodeMultipleTimes) {
|
| +TEST_P(GpuImageDecodeCacheTest,
|
| + GetDecodedImageForDrawAtRasterDecodeMultipleTimes) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -984,11 +1006,11 @@ TEST(GpuImageDecodeCacheTest,
|
| cache.DrawWithImageFinished(draw_image, another_decoded_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest,
|
| - GetLargeDecodedImageForDrawAtRasterDecodeMultipleTimes) {
|
| +TEST_P(GpuImageDecodeCacheTest,
|
| + GetLargeDecodedImageForDrawAtRasterDecodeMultipleTimes) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1022,10 +1044,10 @@ TEST(GpuImageDecodeCacheTest,
|
| EXPECT_FALSE(cache.DiscardableIsLockedForTesting(draw_image));
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, ZeroSizedImagesAreSkipped) {
|
| +TEST_P(GpuImageDecodeCacheTest, ZeroSizedImagesAreSkipped) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1051,10 +1073,10 @@ TEST(GpuImageDecodeCacheTest, ZeroSizedImagesAreSkipped) {
|
| cache.DrawWithImageFinished(draw_image, decoded_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, NonOverlappingSrcRectImagesAreSkipped) {
|
| +TEST_P(GpuImageDecodeCacheTest, NonOverlappingSrcRectImagesAreSkipped) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1081,10 +1103,10 @@ TEST(GpuImageDecodeCacheTest, NonOverlappingSrcRectImagesAreSkipped) {
|
| cache.DrawWithImageFinished(draw_image, decoded_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, CanceledTasksDoNotCountAgainstBudget) {
|
| +TEST_P(GpuImageDecodeCacheTest, CanceledTasksDoNotCountAgainstBudget) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1111,10 +1133,10 @@ TEST(GpuImageDecodeCacheTest, CanceledTasksDoNotCountAgainstBudget) {
|
| EXPECT_EQ(0u, cache.GetBytesUsedForTesting());
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, ShouldAggressivelyFreeResources) {
|
| +TEST_P(GpuImageDecodeCacheTest, ShouldAggressivelyFreeResources) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1175,10 +1197,10 @@ TEST(GpuImageDecodeCacheTest, ShouldAggressivelyFreeResources) {
|
| }
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, OrphanedImagesFreeOnReachingZeroRefs) {
|
| +TEST_P(GpuImageDecodeCacheTest, OrphanedImagesFreeOnReachingZeroRefs) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1234,10 +1256,10 @@ TEST(GpuImageDecodeCacheTest, OrphanedImagesFreeOnReachingZeroRefs) {
|
| cache.GetDrawImageSizeForTesting(second_draw_image));
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, OrphanedZeroRefImagesImmediatelyDeleted) {
|
| +TEST_P(GpuImageDecodeCacheTest, OrphanedZeroRefImagesImmediatelyDeleted) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1286,10 +1308,10 @@ TEST(GpuImageDecodeCacheTest, OrphanedZeroRefImagesImmediatelyDeleted) {
|
| cache.GetDrawImageSizeForTesting(second_draw_image));
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, QualityCappedAtMedium) {
|
| +TEST_P(GpuImageDecodeCacheTest, QualityCappedAtMedium) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| sk_sp<SkImage> image = CreateImage(100, 100);
|
| bool is_decomposable = true;
|
| SkMatrix matrix = CreateMatrix(SkSize::Make(0.4f, 0.4f), is_decomposable);
|
| @@ -1338,10 +1360,10 @@ TEST(GpuImageDecodeCacheTest, QualityCappedAtMedium) {
|
|
|
| // Ensure that switching to a mipped version of an image after the initial
|
| // cache entry creation doesn't cause a buffer overflow/crash.
|
| -TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawMipUsageChange) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetDecodedImageForDrawMipUsageChange) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1379,10 +1401,10 @@ TEST(GpuImageDecodeCacheTest, GetDecodedImageForDrawMipUsageChange) {
|
| cache.DrawWithImageFinished(draw_image_mips, decoded_draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, MemoryStateSuspended) {
|
| +TEST_P(GpuImageDecodeCacheTest, MemoryStateSuspended) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
|
|
| // First Insert an image into our cache.
|
| sk_sp<SkImage> image = CreateImage(1, 1);
|
| @@ -1450,10 +1472,10 @@ TEST(GpuImageDecodeCacheTest, MemoryStateSuspended) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, OutOfRasterDecodeTask) {
|
| +TEST_P(GpuImageDecodeCacheTest, OutOfRasterDecodeTask) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
|
|
| sk_sp<SkImage> image = CreateImage(1, 1);
|
| bool is_decomposable = true;
|
| @@ -1477,7 +1499,7 @@ TEST(GpuImageDecodeCacheTest, OutOfRasterDecodeTask) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, ZeroCacheNormalWorkingSet) {
|
| +TEST_P(GpuImageDecodeCacheTest, ZeroCacheNormalWorkingSet) {
|
| // Setup - Image cache has a normal working set, but zero cache size.
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| @@ -1532,7 +1554,7 @@ TEST(GpuImageDecodeCacheTest, ZeroCacheNormalWorkingSet) {
|
| cache.UnrefImage(draw_image);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, SmallCacheNormalWorkingSet) {
|
| +TEST_P(GpuImageDecodeCacheTest, SmallCacheNormalWorkingSet) {
|
| // Cache will fit one (but not two) 100x100 images.
|
| size_t cache_size = 190 * 100 * 4;
|
|
|
| @@ -1626,10 +1648,10 @@ TEST(GpuImageDecodeCacheTest, SmallCacheNormalWorkingSet) {
|
| }
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, ClearCache) {
|
| +TEST_P(GpuImageDecodeCacheTest, ClearCache) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1662,10 +1684,10 @@ TEST(GpuImageDecodeCacheTest, ClearCache) {
|
| EXPECT_EQ(cache.GetNumCacheEntriesForTesting(), 0u);
|
| }
|
|
|
| -TEST(GpuImageDecodeCacheTest, GetTaskForImageDifferentColorSpace) {
|
| +TEST_P(GpuImageDecodeCacheTest, GetTaskForImageDifferentColorSpace) {
|
| auto context_provider = TestContextProvider::Create();
|
| context_provider->BindToCurrentThread();
|
| - TestGpuImageDecodeCache cache(context_provider.get());
|
| + TestGpuImageDecodeCache cache(context_provider.get(), GetParam());
|
| bool is_decomposable = true;
|
| SkFilterQuality quality = kHigh_SkFilterQuality;
|
|
|
| @@ -1714,5 +1736,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageDifferentColorSpace) {
|
| cache.UnrefImage(third_draw_image);
|
| }
|
|
|
| +INSTANTIATE_TEST_CASE_P(GpuImageDecodeCacheTests,
|
| + GpuImageDecodeCacheTest,
|
| + ::testing::Values(ResourceFormat::RGBA_8888,
|
| + ResourceFormat::RGBA_4444));
|
| +
|
| } // namespace
|
| } // namespace cc
|
|
|