| 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_raster_worker_pool.h" | 8 #include "cc/resources/bitmap_raster_worker_pool.h" |
| 9 #include "cc/resources/gpu_raster_worker_pool.h" | 9 #include "cc/resources/gpu_raster_worker_pool.h" |
| 10 #include "cc/resources/one_copy_raster_worker_pool.h" | 10 #include "cc/resources/one_copy_raster_worker_pool.h" |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 case GL_ASYNC_UPLOAD_2D_DRAW: | 105 case GL_ASYNC_UPLOAD_2D_DRAW: |
| 106 test_type_ = PIXEL_TEST_GL; | 106 test_type_ = PIXEL_TEST_GL; |
| 107 staging_texture_target_ = GL_INVALID_VALUE; | 107 staging_texture_target_ = GL_INVALID_VALUE; |
| 108 draw_texture_target_ = GL_TEXTURE_2D; | 108 draw_texture_target_ = GL_TEXTURE_2D; |
| 109 resource_pool_option_ = PIXEL_BUFFER_RASTER_WORKER_POOL; | 109 resource_pool_option_ = PIXEL_BUFFER_RASTER_WORKER_POOL; |
| 110 return; | 110 return; |
| 111 } | 111 } |
| 112 NOTREACHED(); | 112 NOTREACHED(); |
| 113 } | 113 } |
| 114 | 114 |
| 115 void LayerTreeHostPixelResourceTest::CreateResourceAndRasterWorkerPool( | 115 void LayerTreeHostPixelResourceTest::CreateResourceAndTileTaskWorkerPool( |
| 116 LayerTreeHostImpl* host_impl, | 116 LayerTreeHostImpl* host_impl, |
| 117 scoped_ptr<RasterWorkerPool>* raster_worker_pool, | 117 scoped_ptr<TileTaskWorkerPool>* raster_worker_pool, |
| 118 scoped_ptr<ResourcePool>* resource_pool, | 118 scoped_ptr<ResourcePool>* resource_pool, |
| 119 scoped_ptr<ResourcePool>* staging_resource_pool) { | 119 scoped_ptr<ResourcePool>* staging_resource_pool) { |
| 120 base::SingleThreadTaskRunner* task_runner = | 120 base::SingleThreadTaskRunner* task_runner = |
| 121 proxy()->HasImplThread() ? proxy()->ImplThreadTaskRunner() | 121 proxy()->HasImplThread() ? proxy()->ImplThreadTaskRunner() |
| 122 : proxy()->MainThreadTaskRunner(); | 122 : proxy()->MainThreadTaskRunner(); |
| 123 DCHECK(task_runner); | 123 DCHECK(task_runner); |
| 124 | 124 |
| 125 ContextProvider* context_provider = | 125 ContextProvider* context_provider = |
| 126 host_impl->output_surface()->context_provider(); | 126 host_impl->output_surface()->context_provider(); |
| 127 ResourceProvider* resource_provider = host_impl->resource_provider(); | 127 ResourceProvider* resource_provider = host_impl->resource_provider(); |
| 128 bool use_distance_field_text = false; | 128 bool use_distance_field_text = false; |
| 129 size_t max_transfer_buffer_usage_bytes = 1024u * 1024u * 60u; | 129 size_t max_transfer_buffer_usage_bytes = 1024u * 1024u * 60u; |
| 130 | 130 |
| 131 switch (resource_pool_option_) { | 131 switch (resource_pool_option_) { |
| 132 case BITMAP_RASTER_WORKER_POOL: | 132 case BITMAP_RASTER_WORKER_POOL: |
| 133 EXPECT_FALSE(context_provider); | 133 EXPECT_FALSE(context_provider); |
| 134 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_); | 134 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_); |
| 135 *resource_pool = | 135 *resource_pool = |
| 136 ResourcePool::Create(resource_provider, | 136 ResourcePool::Create(resource_provider, |
| 137 draw_texture_target_, | 137 draw_texture_target_, |
| 138 resource_provider->best_texture_format()); | 138 resource_provider->best_texture_format()); |
| 139 | 139 |
| 140 *raster_worker_pool = | 140 *raster_worker_pool = BitmapTileTaskWorkerPool::Create( |
| 141 BitmapRasterWorkerPool::Create(task_runner, | 141 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 142 RasterWorkerPool::GetTaskGraphRunner(), | 142 resource_provider); |
| 143 resource_provider); | |
| 144 break; | 143 break; |
| 145 case GPU_RASTER_WORKER_POOL: | 144 case GPU_RASTER_WORKER_POOL: |
| 146 EXPECT_TRUE(context_provider); | 145 EXPECT_TRUE(context_provider); |
| 147 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 146 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
| 148 *resource_pool = | 147 *resource_pool = |
| 149 ResourcePool::Create(resource_provider, | 148 ResourcePool::Create(resource_provider, |
| 150 draw_texture_target_, | 149 draw_texture_target_, |
| 151 resource_provider->best_texture_format()); | 150 resource_provider->best_texture_format()); |
| 152 | 151 |
| 153 *raster_worker_pool = | 152 *raster_worker_pool = GpuTileTaskWorkerPool::Create( |
| 154 GpuRasterWorkerPool::Create(task_runner, | 153 task_runner, context_provider, resource_provider, |
| 155 context_provider, | 154 use_distance_field_text); |
| 156 resource_provider, | |
| 157 use_distance_field_text); | |
| 158 break; | 155 break; |
| 159 case ZERO_COPY_RASTER_WORKER_POOL: | 156 case ZERO_COPY_RASTER_WORKER_POOL: |
| 160 EXPECT_TRUE(context_provider); | 157 EXPECT_TRUE(context_provider); |
| 161 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 158 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
| 162 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); | 159 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); |
| 163 *resource_pool = | 160 *resource_pool = |
| 164 ResourcePool::Create(resource_provider, | 161 ResourcePool::Create(resource_provider, |
| 165 draw_texture_target_, | 162 draw_texture_target_, |
| 166 resource_provider->best_texture_format()); | 163 resource_provider->best_texture_format()); |
| 167 | 164 |
| 168 *raster_worker_pool = ZeroCopyRasterWorkerPool::Create( | 165 *raster_worker_pool = ZeroCopyTileTaskWorkerPool::Create( |
| 169 task_runner, | 166 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 170 RasterWorkerPool::GetTaskGraphRunner(), | |
| 171 resource_provider); | 167 resource_provider); |
| 172 break; | 168 break; |
| 173 case ONE_COPY_RASTER_WORKER_POOL: | 169 case ONE_COPY_RASTER_WORKER_POOL: |
| 174 EXPECT_TRUE(context_provider); | 170 EXPECT_TRUE(context_provider); |
| 175 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 171 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
| 176 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); | 172 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); |
| 177 // We need to create a staging resource pool when using copy rasterizer. | 173 // We need to create a staging resource pool when using copy rasterizer. |
| 178 *staging_resource_pool = | 174 *staging_resource_pool = |
| 179 ResourcePool::Create(resource_provider, | 175 ResourcePool::Create(resource_provider, |
| 180 staging_texture_target_, | 176 staging_texture_target_, |
| 181 resource_provider->best_texture_format()); | 177 resource_provider->best_texture_format()); |
| 182 *resource_pool = | 178 *resource_pool = |
| 183 ResourcePool::Create(resource_provider, | 179 ResourcePool::Create(resource_provider, |
| 184 draw_texture_target_, | 180 draw_texture_target_, |
| 185 resource_provider->best_texture_format()); | 181 resource_provider->best_texture_format()); |
| 186 | 182 |
| 187 *raster_worker_pool = OneCopyRasterWorkerPool::Create( | 183 *raster_worker_pool = OneCopyTileTaskWorkerPool::Create( |
| 188 task_runner, | 184 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 189 RasterWorkerPool::GetTaskGraphRunner(), | 185 context_provider, resource_provider, staging_resource_pool->get()); |
| 190 context_provider, | |
| 191 resource_provider, | |
| 192 staging_resource_pool->get()); | |
| 193 break; | 186 break; |
| 194 case PIXEL_BUFFER_RASTER_WORKER_POOL: | 187 case PIXEL_BUFFER_RASTER_WORKER_POOL: |
| 195 EXPECT_TRUE(context_provider); | 188 EXPECT_TRUE(context_provider); |
| 196 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 189 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
| 197 *resource_pool = ResourcePool::Create( | 190 *resource_pool = ResourcePool::Create( |
| 198 resource_provider, | 191 resource_provider, |
| 199 draw_texture_target_, | 192 draw_texture_target_, |
| 200 resource_provider->memory_efficient_texture_format()); | 193 resource_provider->memory_efficient_texture_format()); |
| 201 | 194 |
| 202 *raster_worker_pool = PixelBufferRasterWorkerPool::Create( | 195 *raster_worker_pool = PixelBufferTileTaskWorkerPool::Create( |
| 203 task_runner, | 196 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
| 204 RasterWorkerPool::GetTaskGraphRunner(), | 197 context_provider, resource_provider, max_transfer_buffer_usage_bytes); |
| 205 context_provider, | |
| 206 resource_provider, | |
| 207 max_transfer_buffer_usage_bytes); | |
| 208 break; | 198 break; |
| 209 } | 199 } |
| 210 } | 200 } |
| 211 | 201 |
| 212 void LayerTreeHostPixelResourceTest::RunPixelResourceTest( | 202 void LayerTreeHostPixelResourceTest::RunPixelResourceTest( |
| 213 scoped_refptr<Layer> content_root, | 203 scoped_refptr<Layer> content_root, |
| 214 base::FilePath file_name) { | 204 base::FilePath file_name) { |
| 215 if (!IsTestCaseSupported(test_case_)) | 205 if (!IsTestCaseSupported(test_case_)) |
| 216 return; | 206 return; |
| 217 RunPixelTest(test_type_, content_root, file_name); | 207 RunPixelTest(test_type_, content_root, file_name); |
| 218 } | 208 } |
| 219 | 209 |
| 220 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest() | 210 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest() |
| 221 : LayerTreeHostPixelResourceTest(GetParam()) { | 211 : LayerTreeHostPixelResourceTest(GetParam()) { |
| 222 } | 212 } |
| 223 | 213 |
| 224 } // namespace cc | 214 } // namespace cc |
| OLD | NEW |