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

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

Issue 116863003: gpu: Reuse transfer buffers more aggresively (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: [WIP] Introduced internal SetAsyncToken command buffer command Created 6 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 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/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 AsyncPixelTransferManagerIdle::AsyncPixelTransferManagerIdle() 276 AsyncPixelTransferManagerIdle::AsyncPixelTransferManagerIdle()
277 : shared_state_() { 277 : shared_state_() {
278 } 278 }
279 279
280 AsyncPixelTransferManagerIdle::~AsyncPixelTransferManagerIdle() {} 280 AsyncPixelTransferManagerIdle::~AsyncPixelTransferManagerIdle() {}
281 281
282 void AsyncPixelTransferManagerIdle::BindCompletedAsyncTransfers() { 282 void AsyncPixelTransferManagerIdle::BindCompletedAsyncTransfers() {
283 // Everything is already bound. 283 // Everything is already bound.
284 } 284 }
285 285
286 void AsyncPixelTransferManagerIdle::AsyncRunWhenCompleted(
287 base::Callback<void()> callback) {
288 shared_state_.tasks.push_back(
289 Task(0, // 0 transfer_id for notification tasks.
290 base::Bind(callback)));
291 }
292
286 void AsyncPixelTransferManagerIdle::AsyncNotifyCompletion( 293 void AsyncPixelTransferManagerIdle::AsyncNotifyCompletion(
287 const AsyncMemoryParams& mem_params, 294 const AsyncMemoryParams& mem_params,
288 AsyncPixelTransferCompletionObserver* observer) { 295 AsyncPixelTransferCompletionObserver* observer) {
289 if (shared_state_.tasks.empty()) { 296 if (shared_state_.tasks.empty()) {
290 observer->DidComplete(mem_params); 297 observer->DidComplete(mem_params);
291 return; 298 return;
292 } 299 }
293 300
294 shared_state_.tasks.push_back( 301 shared_state_.tasks.push_back(
295 Task(0, // 0 transfer_id for notification tasks. 302 Task(0, // 0 transfer_id for notification tasks.
296 base::Bind( 303 base::Bind(
297 &PerformNotifyCompletion, 304 &PerformNotifyCompletion,
298 mem_params, 305 mem_params,
299 base::Owned(new ScopedSafeSharedMemory(safe_shared_memory_pool(), 306 base::Owned(new ScopedSafeSharedMemory(safe_shared_memory_pool(),
300 mem_params.shared_memory, 307 mem_params.shared_memory,
301 mem_params.shm_size)), 308 mem_params.shm_size)),
302 make_scoped_refptr(observer)))); 309 make_scoped_refptr(observer))));
reveman 2014/01/22 17:30:04 Would be nice to use AsyncRun here instead of push
303 } 310 }
304 311
305 uint32 AsyncPixelTransferManagerIdle::GetTextureUploadCount() { 312 uint32 AsyncPixelTransferManagerIdle::GetTextureUploadCount() {
306 return shared_state_.texture_upload_count; 313 return shared_state_.texture_upload_count;
307 } 314 }
308 315
309 base::TimeDelta AsyncPixelTransferManagerIdle::GetTotalTextureUploadTime() { 316 base::TimeDelta AsyncPixelTransferManagerIdle::GetTotalTextureUploadTime() {
310 return shared_state_.total_texture_upload_time; 317 return shared_state_.total_texture_upload_time;
311 } 318 }
312 319
(...skipping 16 matching lines...) Expand all
329 AsyncPixelTransferDelegate* 336 AsyncPixelTransferDelegate*
330 AsyncPixelTransferManagerIdle::CreatePixelTransferDelegateImpl( 337 AsyncPixelTransferManagerIdle::CreatePixelTransferDelegateImpl(
331 gles2::TextureRef* ref, 338 gles2::TextureRef* ref,
332 const AsyncTexImage2DParams& define_params) { 339 const AsyncTexImage2DParams& define_params) {
333 return new AsyncPixelTransferDelegateIdle(&shared_state_, 340 return new AsyncPixelTransferDelegateIdle(&shared_state_,
334 ref->service_id(), 341 ref->service_id(),
335 define_params); 342 define_params);
336 } 343 }
337 344
338 } // namespace gpu 345 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698