| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/test/layer_tree_pixel_resource_test.h" | 5 #include "cc/test/layer_tree_pixel_resource_test.h" |
| 6 | 6 |
| 7 #include "cc/layers/layer.h" | 7 #include "cc/layers/layer.h" |
| 8 #include "cc/resources/bitmap_tile_task_worker_pool.h" | 8 #include "cc/resources/bitmap_tile_task_worker_pool.h" |
| 9 #include "cc/resources/gpu_rasterizer.h" | 9 #include "cc/resources/gpu_rasterizer.h" |
| 10 #include "cc/resources/gpu_tile_task_worker_pool.h" | 10 #include "cc/resources/gpu_tile_task_worker_pool.h" |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 return SoftwareRasterizer::Create(); | 139 return SoftwareRasterizer::Create(); |
| 140 case GPU_TILE_TASK_WORKER_POOL: | 140 case GPU_TILE_TASK_WORKER_POOL: |
| 141 EXPECT_TRUE(context_provider); | 141 EXPECT_TRUE(context_provider); |
| 142 return GpuRasterizer::Create(context_provider, resource_provider, | 142 return GpuRasterizer::Create(context_provider, resource_provider, |
| 143 use_distance_field_text, false); | 143 use_distance_field_text, false); |
| 144 } | 144 } |
| 145 NOTREACHED(); | 145 NOTREACHED(); |
| 146 return nullptr; | 146 return nullptr; |
| 147 } | 147 } |
| 148 | 148 |
| 149 void LayerTreeHostPixelResourceTest::CreateResourceAndTileTaskWorkerPool( | 149 ResourceFormat |
| 150 LayerTreeHostPixelResourceTest::CreateResourceAndTileTaskWorkerPool( |
| 150 LayerTreeHostImpl* host_impl, | 151 LayerTreeHostImpl* host_impl, |
| 151 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, | 152 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, |
| 152 scoped_ptr<ResourcePool>* resource_pool, | 153 scoped_ptr<ResourcePool>* resource_pool, |
| 153 scoped_ptr<ResourcePool>* staging_resource_pool) { | 154 scoped_ptr<ResourcePool>* staging_resource_pool) { |
| 154 base::SingleThreadTaskRunner* task_runner = | 155 base::SingleThreadTaskRunner* task_runner = |
| 155 proxy()->HasImplThread() ? proxy()->ImplThreadTaskRunner() | 156 proxy()->HasImplThread() ? proxy()->ImplThreadTaskRunner() |
| 156 : proxy()->MainThreadTaskRunner(); | 157 : proxy()->MainThreadTaskRunner(); |
| 157 DCHECK(task_runner); | 158 DCHECK(task_runner); |
| 158 DCHECK(initialized_); | 159 DCHECK(initialized_); |
| 159 | 160 |
| 160 ContextProvider* context_provider = | 161 ContextProvider* context_provider = |
| 161 host_impl->output_surface()->context_provider(); | 162 host_impl->output_surface()->context_provider(); |
| 162 ResourceProvider* resource_provider = host_impl->resource_provider(); | 163 ResourceProvider* resource_provider = host_impl->resource_provider(); |
| 163 size_t max_transfer_buffer_usage_bytes = 1024u * 1024u * 60u; | 164 size_t max_transfer_buffer_usage_bytes = 1024u * 1024u * 60u; |
| 164 | 165 |
| 166 ResourceFormat resource_format = resource_provider->best_texture_format(); |
| 167 |
| 165 switch (resource_pool_option_) { | 168 switch (resource_pool_option_) { |
| 166 case BITMAP_TILE_TASK_WORKER_POOL: | 169 case BITMAP_TILE_TASK_WORKER_POOL: |
| 167 EXPECT_FALSE(context_provider); | 170 EXPECT_FALSE(context_provider); |
| 168 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_); | 171 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_); |
| 169 *resource_pool = | 172 *resource_pool = |
| 170 ResourcePool::Create(resource_provider, | 173 ResourcePool::Create(resource_provider, |
| 171 draw_texture_target_, | 174 draw_texture_target_); |
| 172 resource_provider->best_texture_format()); | |
| 173 | 175 |
| 174 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( | 176 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( |
| 175 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), | 177 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 176 resource_provider); | 178 resource_provider); |
| 177 break; | 179 break; |
| 178 case GPU_TILE_TASK_WORKER_POOL: | 180 case GPU_TILE_TASK_WORKER_POOL: |
| 179 EXPECT_TRUE(context_provider); | 181 EXPECT_TRUE(context_provider); |
| 180 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 182 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
| 181 *resource_pool = | 183 *resource_pool = |
| 182 ResourcePool::Create(resource_provider, | 184 ResourcePool::Create(resource_provider, |
| 183 draw_texture_target_, | 185 draw_texture_target_); |
| 184 resource_provider->best_texture_format()); | |
| 185 | 186 |
| 186 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( | 187 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( |
| 187 task_runner, TileTaskWorkerPool::GetTaskGraphRunner()); | 188 task_runner, TileTaskWorkerPool::GetTaskGraphRunner()); |
| 188 break; | 189 break; |
| 189 case ZERO_COPY_TILE_TASK_WORKER_POOL: | 190 case ZERO_COPY_TILE_TASK_WORKER_POOL: |
| 190 EXPECT_TRUE(context_provider); | 191 EXPECT_TRUE(context_provider); |
| 191 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 192 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
| 192 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); | 193 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); |
| 193 *resource_pool = | 194 *resource_pool = |
| 194 ResourcePool::Create(resource_provider, | 195 ResourcePool::Create(resource_provider, draw_texture_target_); |
| 195 draw_texture_target_, | |
| 196 resource_provider->best_texture_format()); | |
| 197 | 196 |
| 198 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( | 197 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( |
| 199 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), | 198 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 200 resource_provider); | 199 resource_provider); |
| 201 break; | 200 break; |
| 202 case ONE_COPY_TILE_TASK_WORKER_POOL: | 201 case ONE_COPY_TILE_TASK_WORKER_POOL: |
| 203 EXPECT_TRUE(context_provider); | 202 EXPECT_TRUE(context_provider); |
| 204 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 203 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
| 205 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); | 204 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); |
| 206 // We need to create a staging resource pool when using copy rasterizer. | 205 // We need to create a staging resource pool when using copy rasterizer. |
| 207 *staging_resource_pool = | 206 *staging_resource_pool = |
| 208 ResourcePool::Create(resource_provider, | 207 ResourcePool::Create(resource_provider, staging_texture_target_); |
| 209 staging_texture_target_, | |
| 210 resource_provider->best_texture_format()); | |
| 211 *resource_pool = | 208 *resource_pool = |
| 212 ResourcePool::Create(resource_provider, | 209 ResourcePool::Create(resource_provider, draw_texture_target_); |
| 213 draw_texture_target_, | |
| 214 resource_provider->best_texture_format()); | |
| 215 | 210 |
| 216 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( | 211 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( |
| 217 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), | 212 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 218 context_provider, resource_provider, staging_resource_pool->get()); | 213 context_provider, resource_provider, staging_resource_pool->get(), |
| 214 resource_format); |
| 219 break; | 215 break; |
| 220 case PIXEL_BUFFER_TILE_TASK_WORKER_POOL: | 216 case PIXEL_BUFFER_TILE_TASK_WORKER_POOL: |
| 221 EXPECT_TRUE(context_provider); | 217 EXPECT_TRUE(context_provider); |
| 222 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 218 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
| 219 resource_format = resource_provider->memory_efficient_texture_format(); |
| 223 *resource_pool = ResourcePool::Create( | 220 *resource_pool = ResourcePool::Create( |
| 224 resource_provider, | 221 resource_provider, draw_texture_target_); |
| 225 draw_texture_target_, | |
| 226 resource_provider->memory_efficient_texture_format()); | |
| 227 | 222 |
| 228 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create( | 223 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create( |
| 229 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), | 224 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 230 context_provider, resource_provider, max_transfer_buffer_usage_bytes); | 225 context_provider, resource_provider, max_transfer_buffer_usage_bytes); |
| 231 break; | 226 break; |
| 232 } | 227 } |
| 228 |
| 229 return resource_format; |
| 233 } | 230 } |
| 234 | 231 |
| 235 void LayerTreeHostPixelResourceTest::RunPixelResourceTest( | 232 void LayerTreeHostPixelResourceTest::RunPixelResourceTest( |
| 236 scoped_refptr<Layer> content_root, | 233 scoped_refptr<Layer> content_root, |
| 237 base::FilePath file_name) { | 234 base::FilePath file_name) { |
| 238 if (!IsTestCaseSupported(test_case_)) | 235 if (!IsTestCaseSupported(test_case_)) |
| 239 return; | 236 return; |
| 240 RunPixelTest(test_type_, content_root, file_name); | 237 RunPixelTest(test_type_, content_root, file_name); |
| 241 | 238 |
| 242 if (layer_tree_host()) | 239 if (layer_tree_host()) |
| 243 EXPECT_TRUE(layer_tree_host()->settings().impl_side_painting); | 240 EXPECT_TRUE(layer_tree_host()->settings().impl_side_painting); |
| 244 } | 241 } |
| 245 | 242 |
| 246 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest() | 243 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest() |
| 247 : LayerTreeHostPixelResourceTest(GetParam()) { | 244 : LayerTreeHostPixelResourceTest(GetParam()) { |
| 248 } | 245 } |
| 249 | 246 |
| 250 } // namespace cc | 247 } // namespace cc |
| OLD | NEW |