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

Side by Side Diff: gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc

Issue 888903002: Revert of Move AW renderer compositor context to gpu thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "gpu/command_buffer/service/async_pixel_transfer_manager_idle.h" 5 #include "gpu/command_buffer/service/async_pixel_transfer_manager_idle.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/lazy_instance.h" 8 #include "base/lazy_instance.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 AsyncMemoryParams mem_params) { 176 AsyncMemoryParams mem_params) {
177 TRACE_EVENT2("gpu", "PerformAsyncTexSubImage2D", 177 TRACE_EVENT2("gpu", "PerformAsyncTexSubImage2D",
178 "width", tex_params.width, 178 "width", tex_params.width,
179 "height", tex_params.height); 179 "height", tex_params.height);
180 180
181 void* data = mem_params.GetDataAddress(); 181 void* data = mem_params.GetDataAddress();
182 182
183 base::TimeTicks begin_time(base::TimeTicks::Now()); 183 base::TimeTicks begin_time(base::TimeTicks::Now());
184 gfx::ScopedTextureBinder texture_binder(tex_params.target, texture_id_); 184 gfx::ScopedTextureBinder texture_binder(tex_params.target, texture_id_);
185 185
186 if (shared_state_->use_teximage2d_over_texsubimage2d && 186 // If it's a full texture update, use glTexImage2D as it's faster.
187 tex_params.xoffset == 0 && 187 // TODO(epenner): Make this configurable (http://crbug.com/259924)
188 if (tex_params.xoffset == 0 &&
188 tex_params.yoffset == 0 && 189 tex_params.yoffset == 0 &&
189 tex_params.target == define_params_.target && 190 tex_params.target == define_params_.target &&
190 tex_params.level == define_params_.level && 191 tex_params.level == define_params_.level &&
191 tex_params.width == define_params_.width && 192 tex_params.width == define_params_.width &&
192 tex_params.height == define_params_.height) { 193 tex_params.height == define_params_.height) {
193 TRACE_EVENT0("gpu", "glTexImage2D"); 194 TRACE_EVENT0("gpu", "glTexImage2D");
194 glTexImage2D( 195 glTexImage2D(
195 define_params_.target, 196 define_params_.target,
196 define_params_.level, 197 define_params_.level,
197 define_params_.internal_format, 198 define_params_.internal_format,
(...skipping 28 matching lines...) Expand all
226 uint64 transfer_id, 227 uint64 transfer_id,
227 AsyncPixelTransferDelegate* delegate, 228 AsyncPixelTransferDelegate* delegate,
228 const base::Closure& task) 229 const base::Closure& task)
229 : transfer_id(transfer_id), 230 : transfer_id(transfer_id),
230 delegate(delegate), 231 delegate(delegate),
231 task(task) { 232 task(task) {
232 } 233 }
233 234
234 AsyncPixelTransferManagerIdle::Task::~Task() {} 235 AsyncPixelTransferManagerIdle::Task::~Task() {}
235 236
236 AsyncPixelTransferManagerIdle::SharedState::SharedState( 237 AsyncPixelTransferManagerIdle::SharedState::SharedState()
237 bool use_teximage2d_over_texsubimage2d) 238 : texture_upload_count(0) {}
238 : use_teximage2d_over_texsubimage2d(use_teximage2d_over_texsubimage2d),
239 texture_upload_count(0) {
240 }
241 239
242 AsyncPixelTransferManagerIdle::SharedState::~SharedState() {} 240 AsyncPixelTransferManagerIdle::SharedState::~SharedState() {}
243 241
244 void AsyncPixelTransferManagerIdle::SharedState::ProcessNotificationTasks() { 242 void AsyncPixelTransferManagerIdle::SharedState::ProcessNotificationTasks() {
245 while (!tasks.empty()) { 243 while (!tasks.empty()) {
246 // Stop when we reach a pixel transfer task. 244 // Stop when we reach a pixel transfer task.
247 if (tasks.front().transfer_id) 245 if (tasks.front().transfer_id)
248 return; 246 return;
249 247
250 tasks.front().task.Run(); 248 tasks.front().task.Run();
251 tasks.pop_front(); 249 tasks.pop_front();
252 } 250 }
253 } 251 }
254 252
255 AsyncPixelTransferManagerIdle::AsyncPixelTransferManagerIdle( 253 AsyncPixelTransferManagerIdle::AsyncPixelTransferManagerIdle()
256 bool use_teximage2d_over_texsubimage2d) 254 : shared_state_() {
257 : shared_state_(use_teximage2d_over_texsubimage2d) {
258 } 255 }
259 256
260 AsyncPixelTransferManagerIdle::~AsyncPixelTransferManagerIdle() {} 257 AsyncPixelTransferManagerIdle::~AsyncPixelTransferManagerIdle() {}
261 258
262 void AsyncPixelTransferManagerIdle::BindCompletedAsyncTransfers() { 259 void AsyncPixelTransferManagerIdle::BindCompletedAsyncTransfers() {
263 // Everything is already bound. 260 // Everything is already bound.
264 } 261 }
265 262
266 void AsyncPixelTransferManagerIdle::AsyncNotifyCompletion( 263 void AsyncPixelTransferManagerIdle::AsyncNotifyCompletion(
267 const AsyncMemoryParams& mem_params, 264 const AsyncMemoryParams& mem_params,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 AsyncPixelTransferDelegate* 313 AsyncPixelTransferDelegate*
317 AsyncPixelTransferManagerIdle::CreatePixelTransferDelegateImpl( 314 AsyncPixelTransferManagerIdle::CreatePixelTransferDelegateImpl(
318 gles2::TextureRef* ref, 315 gles2::TextureRef* ref,
319 const AsyncTexImage2DParams& define_params) { 316 const AsyncTexImage2DParams& define_params) {
320 return new AsyncPixelTransferDelegateIdle(&shared_state_, 317 return new AsyncPixelTransferDelegateIdle(&shared_state_,
321 ref->service_id(), 318 ref->service_id(),
322 define_params); 319 define_params);
323 } 320 }
324 321
325 } // namespace gpu 322 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698