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

Side by Side Diff: cc/resources/resource_pool_unittest.cc

Issue 2664703002: Move purging from OnMemoryState to OnPurgeMemory() in cc/ (Closed)
Patch Set: Don't call OnPurgeMemory() in OnStateChange() Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/resources/resource_pool.h" 5 #include "cc/resources/resource_pool.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 346
347 gfx::Size size(100, 100); 347 gfx::Size size(100, 100);
348 ResourceFormat format = RGBA_8888; 348 ResourceFormat format = RGBA_8888;
349 gfx::ColorSpace color_space = gfx::ColorSpace::CreateSRGB(); 349 gfx::ColorSpace color_space = gfx::ColorSpace::CreateSRGB();
350 Resource* resource = 350 Resource* resource =
351 resource_pool_->AcquireResource(size, format, color_space); 351 resource_pool_->AcquireResource(size, format, color_space);
352 352
353 EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting()); 353 EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting());
354 EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting()); 354 EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting());
355 355
356 // Suspending should not impact an in-use resource. 356 // Purging and suspending should not impact an in-use resource.
357 resource_pool_->OnPurgeMemory();
357 resource_pool_->OnMemoryStateChange(base::MemoryState::SUSPENDED); 358 resource_pool_->OnMemoryStateChange(base::MemoryState::SUSPENDED);
358 EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting()); 359 EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting());
359 EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting()); 360 EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting());
360 resource_pool_->OnMemoryStateChange(base::MemoryState::NORMAL); 361 resource_pool_->OnMemoryStateChange(base::MemoryState::NORMAL);
361 362
362 // Release the resource making it busy. 363 // Release the resource making it busy.
363 resource_pool_->ReleaseResource(resource); 364 resource_pool_->ReleaseResource(resource);
364 EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting()); 365 EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting());
365 EXPECT_EQ(1u, resource_pool_->GetBusyResourceCountForTesting()); 366 EXPECT_EQ(1u, resource_pool_->GetBusyResourceCountForTesting());
366 367
367 // Suspending should now free the busy resource. 368 // Purging and suspending should now free the busy resource.
369 resource_pool_->OnPurgeMemory();
368 resource_pool_->OnMemoryStateChange(base::MemoryState::SUSPENDED); 370 resource_pool_->OnMemoryStateChange(base::MemoryState::SUSPENDED);
369 EXPECT_EQ(0u, resource_pool_->GetTotalResourceCountForTesting()); 371 EXPECT_EQ(0u, resource_pool_->GetTotalResourceCountForTesting());
370 EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting()); 372 EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting());
371 } 373 }
372 374
373 TEST_F(ResourcePoolTest, TextureHintRespected) { 375 TEST_F(ResourcePoolTest, TextureHintRespected) {
374 gfx::Size size(100, 100); 376 gfx::Size size(100, 100);
375 ResourceFormat format = RGBA_8888; 377 ResourceFormat format = RGBA_8888;
376 gfx::ColorSpace color_space; 378 gfx::ColorSpace color_space;
377 379
378 resource_pool_ = 380 resource_pool_ =
379 ResourcePool::Create(resource_provider_.get(), task_runner_.get(), 381 ResourcePool::Create(resource_provider_.get(), task_runner_.get(),
380 ResourceProvider::TEXTURE_HINT_IMMUTABLE, 382 ResourceProvider::TEXTURE_HINT_IMMUTABLE,
381 base::TimeDelta::FromMilliseconds(100)); 383 base::TimeDelta::FromMilliseconds(100));
382 Resource* resource = 384 Resource* resource =
383 resource_pool_->AcquireResource(size, format, color_space); 385 resource_pool_->AcquireResource(size, format, color_space);
384 EXPECT_TRUE(resource_provider_->IsImmutable(resource->id())); 386 EXPECT_TRUE(resource_provider_->IsImmutable(resource->id()));
385 resource_pool_->ReleaseResource(resource); 387 resource_pool_->ReleaseResource(resource);
386 388
387 resource_pool_ = 389 resource_pool_ =
388 ResourcePool::Create(resource_provider_.get(), task_runner_.get(), 390 ResourcePool::Create(resource_provider_.get(), task_runner_.get(),
389 ResourceProvider::TEXTURE_HINT_DEFAULT, 391 ResourceProvider::TEXTURE_HINT_DEFAULT,
390 base::TimeDelta::FromMilliseconds(100)); 392 base::TimeDelta::FromMilliseconds(100));
391 resource = resource_pool_->AcquireResource(size, format, color_space); 393 resource = resource_pool_->AcquireResource(size, format, color_space);
392 EXPECT_FALSE(resource_provider_->IsImmutable(resource->id())); 394 EXPECT_FALSE(resource_provider_->IsImmutable(resource->id()));
393 resource_pool_->ReleaseResource(resource); 395 resource_pool_->ReleaseResource(resource);
394 } 396 }
395 397
396 } // namespace cc 398 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698