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

Side by Side Diff: cc/test/layer_tree_pixel_resource_test.cc

Issue 807233002: cc: GPU rasterize tiles synchronously in PrepareToDraw. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Missed 2 lines when splitting this from patch 743023002. Created 6 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/test/layer_tree_pixel_resource_test.h ('k') | cc/test/layer_tree_test.h » ('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 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 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
126 void LayerTreeHostPixelResourceTest::CreateResourceAndTileTaskWorkerPool( 128 void LayerTreeHostPixelResourceTest::CreateResourceAndTileTaskWorkerPool(
127 LayerTreeHostImpl* host_impl, 129 LayerTreeHostImpl* host_impl,
128 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, 130 scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool,
131 scoped_ptr<Rasterizer>* rasterizer,
129 scoped_ptr<ResourcePool>* resource_pool, 132 scoped_ptr<ResourcePool>* resource_pool,
130 scoped_ptr<ResourcePool>* staging_resource_pool) { 133 scoped_ptr<ResourcePool>* staging_resource_pool) {
131 base::SingleThreadTaskRunner* task_runner = 134 base::SingleThreadTaskRunner* task_runner =
132 proxy()->HasImplThread() ? proxy()->ImplThreadTaskRunner() 135 proxy()->HasImplThread() ? proxy()->ImplThreadTaskRunner()
133 : proxy()->MainThreadTaskRunner(); 136 : proxy()->MainThreadTaskRunner();
134 DCHECK(task_runner); 137 DCHECK(task_runner);
135 DCHECK(initialized_); 138 DCHECK(initialized_);
136 139
137 ContextProvider* context_provider = 140 ContextProvider* context_provider =
138 host_impl->output_surface()->context_provider(); 141 host_impl->output_surface()->context_provider();
139 ResourceProvider* resource_provider = host_impl->resource_provider(); 142 ResourceProvider* resource_provider = host_impl->resource_provider();
140 bool use_distance_field_text = false; 143 bool use_distance_field_text = false;
141 size_t max_transfer_buffer_usage_bytes = 1024u * 1024u * 60u; 144 size_t max_transfer_buffer_usage_bytes = 1024u * 1024u * 60u;
142 145
143 switch (resource_pool_option_) { 146 switch (resource_pool_option_) {
144 case BITMAP_TILE_TASK_WORKER_POOL: 147 case BITMAP_TILE_TASK_WORKER_POOL:
145 EXPECT_FALSE(context_provider); 148 EXPECT_FALSE(context_provider);
146 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_); 149 EXPECT_EQ(PIXEL_TEST_SOFTWARE, test_type_);
147 *resource_pool = 150 *resource_pool =
148 ResourcePool::Create(resource_provider, 151 ResourcePool::Create(resource_provider,
149 draw_texture_target_, 152 draw_texture_target_,
150 resource_provider->best_texture_format()); 153 resource_provider->best_texture_format());
151 154
152 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( 155 *tile_task_worker_pool = BitmapTileTaskWorkerPool::Create(
153 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), 156 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(),
154 resource_provider); 157 resource_provider);
158
159 *rasterizer = SoftwareRasterizer::Create();
155 break; 160 break;
156 case GPU_TILE_TASK_WORKER_POOL: 161 case GPU_TILE_TASK_WORKER_POOL:
157 EXPECT_TRUE(context_provider); 162 EXPECT_TRUE(context_provider);
158 EXPECT_EQ(PIXEL_TEST_GL, test_type_); 163 EXPECT_EQ(PIXEL_TEST_GL, test_type_);
159 *resource_pool = 164 *resource_pool =
160 ResourcePool::Create(resource_provider, 165 ResourcePool::Create(resource_provider,
161 draw_texture_target_, 166 draw_texture_target_,
162 resource_provider->best_texture_format()); 167 resource_provider->best_texture_format());
163 168
164 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create( 169 *tile_task_worker_pool = GpuTileTaskWorkerPool::Create(
165 task_runner, context_provider, resource_provider, 170 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(),
166 use_distance_field_text); 171 context_provider, resource_provider, use_distance_field_text);
172
173 // TODO(vmiura): Need to pass settings_.use_distance_field_text to
174 // GpuRasterizer?
175 *rasterizer = GpuRasterizer::Create(context_provider, resource_provider,
176 false, false);
167 break; 177 break;
168 case ZERO_COPY_TILE_TASK_WORKER_POOL: 178 case ZERO_COPY_TILE_TASK_WORKER_POOL:
169 EXPECT_TRUE(context_provider); 179 EXPECT_TRUE(context_provider);
170 EXPECT_EQ(PIXEL_TEST_GL, test_type_); 180 EXPECT_EQ(PIXEL_TEST_GL, test_type_);
171 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); 181 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image);
172 *resource_pool = 182 *resource_pool =
173 ResourcePool::Create(resource_provider, 183 ResourcePool::Create(resource_provider,
174 draw_texture_target_, 184 draw_texture_target_,
175 resource_provider->best_texture_format()); 185 resource_provider->best_texture_format());
176 186
177 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( 187 *tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create(
178 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), 188 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(),
179 resource_provider); 189 resource_provider);
190
191 *rasterizer = SoftwareRasterizer::Create();
180 break; 192 break;
181 case ONE_COPY_TILE_TASK_WORKER_POOL: 193 case ONE_COPY_TILE_TASK_WORKER_POOL:
182 EXPECT_TRUE(context_provider); 194 EXPECT_TRUE(context_provider);
183 EXPECT_EQ(PIXEL_TEST_GL, test_type_); 195 EXPECT_EQ(PIXEL_TEST_GL, test_type_);
184 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image); 196 EXPECT_TRUE(host_impl->GetRendererCapabilities().using_image);
185 // We need to create a staging resource pool when using copy rasterizer. 197 // We need to create a staging resource pool when using copy rasterizer.
186 *staging_resource_pool = 198 *staging_resource_pool =
187 ResourcePool::Create(resource_provider, 199 ResourcePool::Create(resource_provider,
188 staging_texture_target_, 200 staging_texture_target_,
189 resource_provider->best_texture_format()); 201 resource_provider->best_texture_format());
190 *resource_pool = 202 *resource_pool =
191 ResourcePool::Create(resource_provider, 203 ResourcePool::Create(resource_provider,
192 draw_texture_target_, 204 draw_texture_target_,
193 resource_provider->best_texture_format()); 205 resource_provider->best_texture_format());
194 206
195 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( 207 *tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create(
196 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), 208 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(),
197 context_provider, resource_provider, staging_resource_pool->get()); 209 context_provider, resource_provider, staging_resource_pool->get());
210
211 *rasterizer = SoftwareRasterizer::Create();
198 break; 212 break;
199 case PIXEL_BUFFER_TILE_TASK_WORKER_POOL: 213 case PIXEL_BUFFER_TILE_TASK_WORKER_POOL:
200 EXPECT_TRUE(context_provider); 214 EXPECT_TRUE(context_provider);
201 EXPECT_EQ(PIXEL_TEST_GL, test_type_); 215 EXPECT_EQ(PIXEL_TEST_GL, test_type_);
202 *resource_pool = ResourcePool::Create( 216 *resource_pool = ResourcePool::Create(
203 resource_provider, 217 resource_provider,
204 draw_texture_target_, 218 draw_texture_target_,
205 resource_provider->memory_efficient_texture_format()); 219 resource_provider->memory_efficient_texture_format());
206 220
207 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create( 221 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create(
208 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), 222 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(),
209 context_provider, resource_provider, max_transfer_buffer_usage_bytes); 223 context_provider, resource_provider, max_transfer_buffer_usage_bytes);
224
225 *rasterizer = SoftwareRasterizer::Create();
210 break; 226 break;
211 } 227 }
212 } 228 }
213 229
214 void LayerTreeHostPixelResourceTest::RunPixelResourceTest( 230 void LayerTreeHostPixelResourceTest::RunPixelResourceTest(
215 scoped_refptr<Layer> content_root, 231 scoped_refptr<Layer> content_root,
216 base::FilePath file_name) { 232 base::FilePath file_name) {
217 if (!IsTestCaseSupported(test_case_)) 233 if (!IsTestCaseSupported(test_case_))
218 return; 234 return;
219 RunPixelTest(test_type_, content_root, file_name); 235 RunPixelTest(test_type_, content_root, file_name);
220 236
221 if (layer_tree_host()) 237 if (layer_tree_host())
222 EXPECT_TRUE(layer_tree_host()->settings().impl_side_painting); 238 EXPECT_TRUE(layer_tree_host()->settings().impl_side_painting);
223 } 239 }
224 240
225 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest() 241 ParameterizedPixelResourceTest::ParameterizedPixelResourceTest()
226 : LayerTreeHostPixelResourceTest(GetParam()) { 242 : LayerTreeHostPixelResourceTest(GetParam()) {
227 } 243 }
228 244
229 } // namespace cc 245 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_pixel_resource_test.h ('k') | cc/test/layer_tree_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698