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

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

Issue 2507963003: Pass correct texture hint for GPU raster (Closed)
Patch Set: rebase Created 4 years 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
« no previous file with comments | « cc/resources/resource_pool.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 10 matching lines...) Expand all
21 public: 21 public:
22 void SetUp() override { 22 void SetUp() override {
23 context_provider_ = TestContextProvider::Create(); 23 context_provider_ = TestContextProvider::Create();
24 context_provider_->BindToCurrentThread(); 24 context_provider_->BindToCurrentThread();
25 shared_bitmap_manager_.reset(new TestSharedBitmapManager); 25 shared_bitmap_manager_.reset(new TestSharedBitmapManager);
26 resource_provider_ = FakeResourceProvider::Create( 26 resource_provider_ = FakeResourceProvider::Create(
27 context_provider_.get(), shared_bitmap_manager_.get()); 27 context_provider_.get(), shared_bitmap_manager_.get());
28 task_runner_ = base::ThreadTaskRunnerHandle::Get(); 28 task_runner_ = base::ThreadTaskRunnerHandle::Get();
29 resource_pool_ = 29 resource_pool_ =
30 ResourcePool::Create(resource_provider_.get(), task_runner_.get(), 30 ResourcePool::Create(resource_provider_.get(), task_runner_.get(),
31 ResourceProvider::TEXTURE_HINT_IMMUTABLE,
31 ResourcePool::kDefaultExpirationDelay); 32 ResourcePool::kDefaultExpirationDelay);
32 } 33 }
33 34
34 protected: 35 protected:
35 scoped_refptr<TestContextProvider> context_provider_; 36 scoped_refptr<TestContextProvider> context_provider_;
36 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 37 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
37 std::unique_ptr<ResourceProvider> resource_provider_; 38 std::unique_ptr<ResourceProvider> resource_provider_;
38 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 39 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
39 std::unique_ptr<ResourcePool> resource_pool_; 40 std::unique_ptr<ResourcePool> resource_pool_;
40 }; 41 };
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 resource_pool_->ReleaseResource(resource); 152 resource_pool_->ReleaseResource(resource);
152 resource_pool_->CheckBusyResources(); 153 resource_pool_->CheckBusyResources();
153 EXPECT_EQ(0u, resource_provider_->num_resources()); 154 EXPECT_EQ(0u, resource_provider_->num_resources());
154 } 155 }
155 156
156 TEST_F(ResourcePoolTest, BusyResourcesEventuallyFreed) { 157 TEST_F(ResourcePoolTest, BusyResourcesEventuallyFreed) {
157 // Set a quick resource expiration delay so that this test doesn't take long 158 // Set a quick resource expiration delay so that this test doesn't take long
158 // to run. 159 // to run.
159 resource_pool_ = 160 resource_pool_ =
160 ResourcePool::Create(resource_provider_.get(), task_runner_.get(), 161 ResourcePool::Create(resource_provider_.get(), task_runner_.get(),
162 ResourceProvider::TEXTURE_HINT_IMMUTABLE,
161 base::TimeDelta::FromMilliseconds(10)); 163 base::TimeDelta::FromMilliseconds(10));
162 164
163 // Limits high enough to not be hit by this test. 165 // Limits high enough to not be hit by this test.
164 size_t bytes_limit = 10 * 1024 * 1024; 166 size_t bytes_limit = 10 * 1024 * 1024;
165 size_t count_limit = 100; 167 size_t count_limit = 100;
166 resource_pool_->SetResourceUsageLimits(bytes_limit, count_limit); 168 resource_pool_->SetResourceUsageLimits(bytes_limit, count_limit);
167 169
168 gfx::Size size(100, 100); 170 gfx::Size size(100, 100);
169 ResourceFormat format = RGBA_8888; 171 ResourceFormat format = RGBA_8888;
170 gfx::ColorSpace color_space; 172 gfx::ColorSpace color_space;
(...skipping 20 matching lines...) Expand all
191 EXPECT_EQ(0u, resource_provider_->num_resources()); 193 EXPECT_EQ(0u, resource_provider_->num_resources());
192 EXPECT_EQ(0u, resource_pool_->GetTotalMemoryUsageForTesting()); 194 EXPECT_EQ(0u, resource_pool_->GetTotalMemoryUsageForTesting());
193 EXPECT_EQ(0u, resource_pool_->memory_usage_bytes()); 195 EXPECT_EQ(0u, resource_pool_->memory_usage_bytes());
194 } 196 }
195 197
196 TEST_F(ResourcePoolTest, UnusedResourcesEventuallyFreed) { 198 TEST_F(ResourcePoolTest, UnusedResourcesEventuallyFreed) {
197 // Set a quick resource expiration delay so that this test doesn't take long 199 // Set a quick resource expiration delay so that this test doesn't take long
198 // to run. 200 // to run.
199 resource_pool_ = 201 resource_pool_ =
200 ResourcePool::Create(resource_provider_.get(), task_runner_.get(), 202 ResourcePool::Create(resource_provider_.get(), task_runner_.get(),
203 ResourceProvider::TEXTURE_HINT_IMMUTABLE,
201 base::TimeDelta::FromMilliseconds(100)); 204 base::TimeDelta::FromMilliseconds(100));
202 205
203 // Limits high enough to not be hit by this test. 206 // Limits high enough to not be hit by this test.
204 size_t bytes_limit = 10 * 1024 * 1024; 207 size_t bytes_limit = 10 * 1024 * 1024;
205 size_t count_limit = 100; 208 size_t count_limit = 100;
206 resource_pool_->SetResourceUsageLimits(bytes_limit, count_limit); 209 resource_pool_->SetResourceUsageLimits(bytes_limit, count_limit);
207 210
208 gfx::Size size(100, 100); 211 gfx::Size size(100, 100);
209 ResourceFormat format = RGBA_8888; 212 ResourceFormat format = RGBA_8888;
210 gfx::ColorSpace color_space; 213 gfx::ColorSpace color_space;
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 resource_pool_->ReleaseResource(resource); 363 resource_pool_->ReleaseResource(resource);
361 EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting()); 364 EXPECT_EQ(1u, resource_pool_->GetTotalResourceCountForTesting());
362 EXPECT_EQ(1u, resource_pool_->GetBusyResourceCountForTesting()); 365 EXPECT_EQ(1u, resource_pool_->GetBusyResourceCountForTesting());
363 366
364 // Suspending should now free the busy resource. 367 // Suspending should now free the busy resource.
365 resource_pool_->OnMemoryStateChange(base::MemoryState::SUSPENDED); 368 resource_pool_->OnMemoryStateChange(base::MemoryState::SUSPENDED);
366 EXPECT_EQ(0u, resource_pool_->GetTotalResourceCountForTesting()); 369 EXPECT_EQ(0u, resource_pool_->GetTotalResourceCountForTesting());
367 EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting()); 370 EXPECT_EQ(0u, resource_pool_->GetBusyResourceCountForTesting());
368 } 371 }
369 372
373 TEST_F(ResourcePoolTest, TextureHintRespected) {
374 gfx::Size size(100, 100);
375 ResourceFormat format = RGBA_8888;
376 gfx::ColorSpace color_space;
377
378 resource_pool_ =
379 ResourcePool::Create(resource_provider_.get(), task_runner_.get(),
380 ResourceProvider::TEXTURE_HINT_IMMUTABLE,
381 base::TimeDelta::FromMilliseconds(100));
382 Resource* resource =
383 resource_pool_->AcquireResource(size, format, color_space);
384 EXPECT_TRUE(resource_provider_->IsImmutable(resource->id()));
385 resource_pool_->ReleaseResource(resource);
386
387 resource_pool_ =
388 ResourcePool::Create(resource_provider_.get(), task_runner_.get(),
389 ResourceProvider::TEXTURE_HINT_DEFAULT,
390 base::TimeDelta::FromMilliseconds(100));
391 resource = resource_pool_->AcquireResource(size, format, color_space);
392 EXPECT_FALSE(resource_provider_->IsImmutable(resource->id()));
393 resource_pool_->ReleaseResource(resource);
394 }
395
370 } // namespace cc 396 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/resource_pool.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698