OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/prioritized_resource.h" | 5 #include "cc/resources/prioritized_resource.h" |
6 | 6 |
7 #include "cc/resources/prioritized_resource_manager.h" | 7 #include "cc/resources/prioritized_resource_manager.h" |
8 #include "cc/resources/resource.h" | 8 #include "cc/resources/resource.h" |
9 #include "cc/test/fake_output_surface.h" | 9 #include "cc/test/fake_output_surface.h" |
10 #include "cc/test/fake_proxy.h" | 10 #include "cc/test/fake_proxy.h" |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 EXPECT_EQ(TexturesMemorySize(4), resource_manager->MemoryAboveCutoffBytes()); | 255 EXPECT_EQ(TexturesMemorySize(4), resource_manager->MemoryAboveCutoffBytes()); |
256 | 256 |
257 // Do a one-time eviction for one more texture based on priority cutoff | 257 // Do a one-time eviction for one more texture based on priority cutoff |
258 PrioritizedResourceManager::BackingList evicted_backings; | 258 PrioritizedResourceManager::BackingList evicted_backings; |
259 resource_manager->UnlinkAndClearEvictedBackings(); | 259 resource_manager->UnlinkAndClearEvictedBackings(); |
260 { | 260 { |
261 DebugScopedSetImplThreadAndMainThreadBlocked | 261 DebugScopedSetImplThreadAndMainThreadBlocked |
262 impl_thread_and_main_thread_blocked(&proxy_); | 262 impl_thread_and_main_thread_blocked(&proxy_); |
263 resource_manager->ReduceMemoryOnImplThread( | 263 resource_manager->ReduceMemoryOnImplThread( |
264 TexturesMemorySize(8), 104, ResourceProvider()); | 264 TexturesMemorySize(8), 104, ResourceProvider()); |
265 EXPECT_EQ(0u, EvictedBackingCount(resource_manager.get())); | 265 EXPECT_EQ(0, EvictedBackingCount(resource_manager.get())); |
266 resource_manager->ReduceMemoryOnImplThread( | 266 resource_manager->ReduceMemoryOnImplThread( |
267 TexturesMemorySize(8), 103, ResourceProvider()); | 267 TexturesMemorySize(8), 103, ResourceProvider()); |
268 EXPECT_EQ(1u, EvictedBackingCount(resource_manager.get())); | 268 EXPECT_EQ(1, EvictedBackingCount(resource_manager.get())); |
269 } | 269 } |
270 resource_manager->UnlinkAndClearEvictedBackings(); | 270 resource_manager->UnlinkAndClearEvictedBackings(); |
271 EXPECT_EQ(TexturesMemorySize(3), resource_manager->MemoryUseBytes()); | 271 EXPECT_EQ(TexturesMemorySize(3), resource_manager->MemoryUseBytes()); |
272 | 272 |
273 // Re-allocate the the texture after the one-time drop. | 273 // Re-allocate the the texture after the one-time drop. |
274 PrioritizeTexturesAndBackings(resource_manager.get()); | 274 PrioritizeTexturesAndBackings(resource_manager.get()); |
275 for (size_t i = 0; i < kMaxTextures; ++i) | 275 for (size_t i = 0; i < kMaxTextures; ++i) |
276 EXPECT_EQ(ValidateTexture(textures[i].get(), false), i < 4); | 276 EXPECT_EQ(ValidateTexture(textures[i].get(), false), i < 4); |
277 { | 277 { |
278 DebugScopedSetImplThreadAndMainThreadBlocked | 278 DebugScopedSetImplThreadAndMainThreadBlocked |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
697 const ResourceUpdate upload = ResourceUpdate::Create( | 697 const ResourceUpdate upload = ResourceUpdate::Create( |
698 textures[i].get(), NULL, gfx::Rect(), gfx::Rect(), gfx::Vector2d()); | 698 textures[i].get(), NULL, gfx::Rect(), gfx::Rect(), gfx::Vector2d()); |
699 queue.AppendFullUpload(upload); | 699 queue.AppendFullUpload(upload); |
700 } | 700 } |
701 | 701 |
702 // Make sure that we have backings for all of the textures. | 702 // Make sure that we have backings for all of the textures. |
703 for (size_t i = 0; i < kMaxTextures; ++i) | 703 for (size_t i = 0; i < kMaxTextures; ++i) |
704 EXPECT_TRUE(textures[i]->have_backing_texture()); | 704 EXPECT_TRUE(textures[i]->have_backing_texture()); |
705 | 705 |
706 queue.ClearUploadsToEvictedResources(); | 706 queue.ClearUploadsToEvictedResources(); |
707 EXPECT_EQ(4u, queue.FullUploadSize()); | 707 EXPECT_EQ(4, queue.FullUploadSize()); |
708 | 708 |
709 resource_manager->ReduceMemoryOnImplThread( | 709 resource_manager->ReduceMemoryOnImplThread( |
710 TexturesMemorySize(1), | 710 TexturesMemorySize(1), |
711 PriorityCalculator::AllowEverythingCutoff(), | 711 PriorityCalculator::AllowEverythingCutoff(), |
712 ResourceProvider()); | 712 ResourceProvider()); |
713 queue.ClearUploadsToEvictedResources(); | 713 queue.ClearUploadsToEvictedResources(); |
714 EXPECT_EQ(1u, queue.FullUploadSize()); | 714 EXPECT_EQ(1, queue.FullUploadSize()); |
715 | 715 |
716 resource_manager->ReduceMemoryOnImplThread( | 716 resource_manager->ReduceMemoryOnImplThread( |
717 0, PriorityCalculator::AllowEverythingCutoff(), ResourceProvider()); | 717 0, PriorityCalculator::AllowEverythingCutoff(), ResourceProvider()); |
718 queue.ClearUploadsToEvictedResources(); | 718 queue.ClearUploadsToEvictedResources(); |
719 EXPECT_EQ(0u, queue.FullUploadSize()); | 719 EXPECT_EQ(0, queue.FullUploadSize()); |
720 } | 720 } |
721 | 721 |
722 TEST_F(PrioritizedResourceTest, UsageStatistics) { | 722 TEST_F(PrioritizedResourceTest, UsageStatistics) { |
723 const size_t kMaxTextures = 5; | 723 const size_t kMaxTextures = 5; |
724 scoped_ptr<PrioritizedResourceManager> resource_manager = | 724 scoped_ptr<PrioritizedResourceManager> resource_manager = |
725 CreateManager(kMaxTextures); | 725 CreateManager(kMaxTextures); |
726 scoped_ptr<PrioritizedResource> textures[kMaxTextures]; | 726 scoped_ptr<PrioritizedResource> textures[kMaxTextures]; |
727 | 727 |
728 for (size_t i = 0; i < kMaxTextures; ++i) { | 728 for (size_t i = 0; i < kMaxTextures; ++i) { |
729 textures[i] = | 729 textures[i] = |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
793 resource_manager->MemoryVisibleAndNearbyBytes()); | 793 resource_manager->MemoryVisibleAndNearbyBytes()); |
794 } | 794 } |
795 | 795 |
796 DebugScopedSetImplThreadAndMainThreadBlocked | 796 DebugScopedSetImplThreadAndMainThreadBlocked |
797 impl_thread_and_main_thread_blocked(&proxy_); | 797 impl_thread_and_main_thread_blocked(&proxy_); |
798 resource_manager->ClearAllMemory(ResourceProvider()); | 798 resource_manager->ClearAllMemory(ResourceProvider()); |
799 } | 799 } |
800 | 800 |
801 } // namespace | 801 } // namespace |
802 } // namespace cc | 802 } // namespace cc |
OLD | NEW |