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

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

Issue 820743002: cc: GPU rasterize tiles synchronously in PrepareToDraw. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: why wasn't that picked up by presubmit? Created 5 years, 11 months 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
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 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698