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_tile_task_worker_pool.h" | 10 #include "cc/resources/gpu_tile_task_worker_pool.h" |
10 #include "cc/resources/one_copy_tile_task_worker_pool.h" | 11 #include "cc/resources/one_copy_tile_task_worker_pool.h" |
11 #include "cc/resources/pixel_buffer_tile_task_worker_pool.h" | 12 #include "cc/resources/pixel_buffer_tile_task_worker_pool.h" |
12 #include "cc/resources/resource_pool.h" | 13 #include "cc/resources/resource_pool.h" |
| 14 #include "cc/resources/software_rasterizer.h" |
13 #include "cc/resources/tile_task_worker_pool.h" | 15 #include "cc/resources/tile_task_worker_pool.h" |
14 #include "cc/resources/zero_copy_tile_task_worker_pool.h" | 16 #include "cc/resources/zero_copy_tile_task_worker_pool.h" |
15 #include "cc/test/fake_output_surface.h" | 17 #include "cc/test/fake_output_surface.h" |
16 #include "gpu/GLES2/gl2extchromium.h" | 18 #include "gpu/GLES2/gl2extchromium.h" |
17 | 19 |
18 namespace cc { | 20 namespace cc { |
19 | 21 |
20 namespace { | 22 namespace { |
21 | 23 |
22 bool IsTestCaseSupported(PixelResourceTestCase test_case) { | 24 bool IsTestCaseSupported(PixelResourceTestCase test_case) { |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 case GL_ASYNC_UPLOAD_2D_DRAW: | 118 case GL_ASYNC_UPLOAD_2D_DRAW: |
117 test_type_ = PIXEL_TEST_GL; | 119 test_type_ = PIXEL_TEST_GL; |
118 staging_texture_target_ = GL_INVALID_VALUE; | 120 staging_texture_target_ = GL_INVALID_VALUE; |
119 draw_texture_target_ = GL_TEXTURE_2D; | 121 draw_texture_target_ = GL_TEXTURE_2D; |
120 resource_pool_option_ = PIXEL_BUFFER_TILE_TASK_WORKER_POOL; | 122 resource_pool_option_ = PIXEL_BUFFER_TILE_TASK_WORKER_POOL; |
121 return; | 123 return; |
122 } | 124 } |
123 NOTREACHED(); | 125 NOTREACHED(); |
124 } | 126 } |
125 | 127 |
| 128 void LayerTreeHostPixelResourceTest::CreateRasterizer( |
| 129 LayerTreeHostImpl* host_impl, |
| 130 scoped_ptr<Rasterizer>* rasterizer) { |
| 131 bool use_distance_field_text = false; |
| 132 ContextProvider* context_provider = |
| 133 host_impl->output_surface()->context_provider(); |
| 134 ResourceProvider* resource_provider = host_impl->resource_provider(); |
| 135 switch (resource_pool_option_) { |
| 136 case BITMAP_TILE_TASK_WORKER_POOL: |
| 137 case ZERO_COPY_TILE_TASK_WORKER_POOL: |
| 138 case ONE_COPY_TILE_TASK_WORKER_POOL: |
| 139 case PIXEL_BUFFER_TILE_TASK_WORKER_POOL: |
| 140 *rasterizer = SoftwareRasterizer::Create(); |
| 141 break; |
| 142 case GPU_TILE_TASK_WORKER_POOL: |
| 143 EXPECT_TRUE(context_provider); |
| 144 *rasterizer = GpuRasterizer::Create(context_provider, resource_provider, |
| 145 use_distance_field_text, false); |
| 146 break; |
| 147 } |
| 148 } |
| 149 |
126 void LayerTreeHostPixelResourceTest::CreateResourceAndTileTaskWorkerPool( | 150 void LayerTreeHostPixelResourceTest::CreateResourceAndTileTaskWorkerPool( |
127 LayerTreeHostImpl* host_impl, | 151 LayerTreeHostImpl* host_impl, |
128 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, | 152 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, |
129 scoped_ptr<ResourcePool>* resource_pool, | 153 scoped_ptr<ResourcePool>* resource_pool, |
130 scoped_ptr<ResourcePool>* staging_resource_pool) { | 154 scoped_ptr<ResourcePool>* staging_resource_pool) { |
131 base::SingleThreadTaskRunner* task_runner = | 155 base::SingleThreadTaskRunner* task_runner = |
132 proxy()->HasImplThread() ? proxy()->ImplThreadTaskRunner() | 156 proxy()->HasImplThread() ? proxy()->ImplThreadTaskRunner() |
133 : proxy()->MainThreadTaskRunner(); | 157 : proxy()->MainThreadTaskRunner(); |
134 DCHECK(task_runner); | 158 DCHECK(task_runner); |
135 DCHECK(initialized_); | 159 DCHECK(initialized_); |
136 | 160 |
137 ContextProvider* context_provider = | 161 ContextProvider* context_provider = |
138 host_impl->output_surface()->context_provider(); | 162 host_impl->output_surface()->context_provider(); |
139 ResourceProvider* resource_provider = host_impl->resource_provider(); | 163 ResourceProvider* resource_provider = host_impl->resource_provider(); |
140 bool use_distance_field_text = false; | |
141 size_t max_transfer_buffer_usage_bytes = 1024u * 1024u * 60u; | 164 size_t max_transfer_buffer_usage_bytes = 1024u * 1024u * 60u; |
142 | 165 |
143 switch (resource_pool_option_) { | 166 switch (resource_pool_option_) { |
144 case BITMAP_TILE_TASK_WORKER_POOL: | 167 case BITMAP_TILE_TASK_WORKER_POOL: |
145 EXPECT_FALSE(context_provider); | 168 EXPECT_FALSE(context_provider); |
146 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_); | 169 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_); |
147 *resource_pool = | 170 *resource_pool = |
148 ResourcePool::Create(resource_provider, | 171 ResourcePool::Create(resource_provider, |
149 draw_texture_target_, | 172 draw_texture_target_, |
150 resource_provider->best_texture_format()); | 173 resource_provider->best_texture_format()); |
151 | 174 |
152 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( | 175 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( |
153 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), | 176 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
154 resource_provider); | 177 resource_provider); |
155 break; | 178 break; |
156 case GPU_TILE_TASK_WORKER_POOL: | 179 case GPU_TILE_TASK_WORKER_POOL: |
157 EXPECT_TRUE(context_provider); | 180 EXPECT_TRUE(context_provider); |
158 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 181 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
159 *resource_pool = | 182 *resource_pool = |
160 ResourcePool::Create(resource_provider, | 183 ResourcePool::Create(resource_provider, |
161 draw_texture_target_, | 184 draw_texture_target_, |
162 resource_provider->best_texture_format()); | 185 resource_provider->best_texture_format()); |
163 | 186 |
164 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( | 187 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( |
165 task_runner, context_provider, resource_provider, | 188 task_runner, TileTaskWorkerPool::GetTaskGraphRunner()); |
166 use_distance_field_text); | |
167 break; | 189 break; |
168 case ZERO_COPY_TILE_TASK_WORKER_POOL: | 190 case ZERO_COPY_TILE_TASK_WORKER_POOL: |
169 EXPECT_TRUE(context_provider); | 191 EXPECT_TRUE(context_provider); |
170 EXPECT_EQ(PIXEL_TEST_GL, test_type_); | 192 EXPECT_EQ(PIXEL_TEST_GL, test_type_); |
171 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); | 193 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); |
172 *resource_pool = | 194 *resource_pool = |
173 ResourcePool::Create(resource_provider, | 195 ResourcePool::Create(resource_provider, |
174 draw_texture_target_, | 196 draw_texture_target_, |
175 resource_provider->best_texture_format()); | 197 resource_provider->best_texture_format()); |
176 | 198 |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 | 242 |
221 if (layer_tree_host()) | 243 if (layer_tree_host()) |
222 EXPECT_TRUE(layer_tree_host()->settings().impl_side_painting); | 244 EXPECT_TRUE(layer_tree_host()->settings().impl_side_painting); |
223 } | 245 } |
224 | 246 |
225 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest() | 247 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest() |
226 : LayerTreeHostPixelResourceTest(GetParam()) { | 248 : LayerTreeHostPixelResourceTest(GetParam()) { |
227 } | 249 } |
228 | 250 |
229 } // namespace cc | 251 } // namespace cc |
OLD | NEW |