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

Unified Diff: tests/ResourceCacheTest.cpp

Issue 1623653002: skia: Add support for CHROMIUM_image backed textures. (Closed) Base URL: https://chromium.googlesource.com/skia.git@master
Patch Set: Comments from bsalomon, round four. Created 4 years, 11 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
Index: tests/ResourceCacheTest.cpp
diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp
index ee8d7c7eea7bbe39cdba373b7e9fa1d42b75c4fd..f9ba18fcdd79680fd71a5422f16c07b0bf36aec4 100644
--- a/tests/ResourceCacheTest.cpp
+++ b/tests/ResourceCacheTest.cpp
@@ -250,7 +250,8 @@ public:
: INHERITED(gpu, lifeCycle)
, fToDelete(nullptr)
, fSize(size)
- , fProperty(kA_SimulatedProperty) {
+ , fProperty(kA_SimulatedProperty)
+ , fReuseable(true) {
++fNumAlive;
this->registerWithCache();
}
@@ -259,7 +260,8 @@ public:
: INHERITED(gpu, lifeCycle)
, fToDelete(nullptr)
, fSize(kDefaultSize)
- , fProperty(kA_SimulatedProperty) {
+ , fProperty(kA_SimulatedProperty)
+ , fReuseable(true) {
++fNumAlive;
this->registerWithCache();
}
@@ -268,13 +270,15 @@ public:
: INHERITED(gpu, kCached_LifeCycle)
, fToDelete(nullptr)
, fSize(kDefaultSize)
- , fProperty(kA_SimulatedProperty) {
+ , fProperty(kA_SimulatedProperty)
+ , fReuseable(true) {
++fNumAlive;
this->registerWithCache();
}
- static TestResource* CreateScratch(GrGpu* gpu, SimulatedProperty property, bool cached = true) {
- return new TestResource(gpu, property, cached, kScratchConstructor);
+ static TestResource* CreateScratch(GrGpu* gpu, SimulatedProperty property, bool cached = true,
+ bool reuseable = true) {
+ return new TestResource(gpu, property, cached, kScratchConstructor, reuseable);
}
~TestResource() {
@@ -308,11 +312,13 @@ public:
private:
static const int kScratchKeyFieldCnt = 6;
- TestResource(GrGpu* gpu, SimulatedProperty property, bool cached, ScratchConstructor)
+ TestResource(GrGpu* gpu, SimulatedProperty property, bool cached, ScratchConstructor,
+ bool reuseable)
: INHERITED(gpu, cached ? kCached_LifeCycle : kUncached_LifeCycle)
, fToDelete(nullptr)
, fSize(kDefaultSize)
- , fProperty(property) {
+ , fProperty(property)
+ , fReuseable(reuseable) {
GrScratchKey scratchKey;
ComputeScratchKey(fProperty, &scratchKey);
this->setScratchKey(scratchKey);
@@ -321,11 +327,13 @@ private:
}
size_t onGpuMemorySize() const override { return fSize; }
+ bool reuseable() const override { return fReuseable; }
TestResource* fToDelete;
size_t fSize;
static int fNumAlive;
SimulatedProperty fProperty;
+ bool fReuseable;
typedef GrGpuResource INHERITED;
};
int TestResource::fNumAlive = 0;
@@ -1188,6 +1196,23 @@ static void test_flush(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, 0 == cache->getResourceCount());
}
+static void test_reuseable_resources(skiatest::Reporter* reporter) {
+ Mock mock(1000, 1000);
+ GrContext* context = mock.context();
+ TestResource* scratch = TestResource::CreateScratch(context->getGpu(),
+ TestResource::kB_SimulatedProperty, true, true);
+ scratch->unref();
+ REPORTER_ASSERT(reporter, TestResource::NumAlive() == 1);
+ scratch = TestResource::CreateScratch(context->getGpu(),
+ TestResource::kB_SimulatedProperty, false, true);
+ scratch->unref();
+ REPORTER_ASSERT(reporter, TestResource::NumAlive() == 2);
+ scratch = TestResource::CreateScratch(context->getGpu(),
+ TestResource::kB_SimulatedProperty, false, false);
+ scratch->unref();
+ REPORTER_ASSERT(reporter, TestResource::NumAlive() == 2);
+}
+
static void test_large_resource_count(skiatest::Reporter* reporter) {
// Set the cache size to double the resource count because we're going to create 2x that number
// resources, using two different key domains. Add a little slop to the bytes because we resize
@@ -1309,6 +1334,7 @@ DEF_GPUTEST(ResourceCacheMisc, reporter, factory) {
test_resource_size_changed(reporter);
test_timestamp_wrap(reporter);
test_flush(reporter);
+ test_reuseable_resources(reporter);
test_large_resource_count(reporter);
test_custom_data(reporter);
test_abandoned(reporter);

Powered by Google App Engine
This is Rietveld 408576698