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

Unified Diff: cc/tiles/gpu_image_decode_cache_unittest.cc

Issue 2949303002: Handle RGBA_4444 scales in > max texture size images (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/tiles/gpu_image_decode_cache.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « cc/tiles/gpu_image_decode_cache.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698