| Index: gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc
|
| diff --git a/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc b/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc
|
| index 58748ddb6e28beee3129d93db4643bf3654b5b1c..40ec87f689688e6b5941bc18dc3d704af000f480 100644
|
| --- a/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc
|
| +++ b/gpu/command_buffer/service/async_pixel_transfer_manager_idle.cc
|
| @@ -89,6 +89,7 @@ void AsyncPixelTransferDelegateIdle::AsyncTexImage2D(
|
|
|
| shared_state_->tasks.push_back(AsyncPixelTransferManagerIdle::Task(
|
| id_,
|
| + this,
|
| base::Bind(&AsyncPixelTransferDelegateIdle::PerformAsyncTexImage2D,
|
| AsWeakPtr(),
|
| tex_params,
|
| @@ -106,6 +107,7 @@ void AsyncPixelTransferDelegateIdle::AsyncTexSubImage2D(
|
|
|
| shared_state_->tasks.push_back(AsyncPixelTransferManagerIdle::Task(
|
| id_,
|
| + this,
|
| base::Bind(&AsyncPixelTransferDelegateIdle::PerformAsyncTexSubImage2D,
|
| AsWeakPtr(),
|
| tex_params,
|
| @@ -224,8 +226,11 @@ void AsyncPixelTransferDelegateIdle::PerformAsyncTexSubImage2D(
|
| }
|
|
|
| AsyncPixelTransferManagerIdle::Task::Task(
|
| - uint64 transfer_id, const base::Closure& task)
|
| + uint64 transfer_id,
|
| + AsyncPixelTransferDelegate* delegate,
|
| + const base::Closure& task)
|
| : transfer_id(transfer_id),
|
| + delegate(delegate),
|
| task(task) {
|
| }
|
|
|
| @@ -267,6 +272,7 @@ void AsyncPixelTransferManagerIdle::AsyncNotifyCompletion(
|
|
|
| shared_state_.tasks.push_back(
|
| Task(0, // 0 transfer_id for notification tasks.
|
| + NULL,
|
| base::Bind(
|
| &PerformNotifyCompletion,
|
| mem_params,
|
| @@ -297,6 +303,15 @@ bool AsyncPixelTransferManagerIdle::NeedsProcessMorePendingTransfers() {
|
| return !shared_state_.tasks.empty();
|
| }
|
|
|
| +void AsyncPixelTransferManagerIdle::WaitAllAsyncTexImage2D() {
|
| + if (shared_state_.tasks.empty())
|
| + return;
|
| +
|
| + const Task& task = shared_state_.tasks.back();
|
| + if (task.delegate)
|
| + task.delegate->WaitForTransferCompletion();
|
| +}
|
| +
|
| AsyncPixelTransferDelegate*
|
| AsyncPixelTransferManagerIdle::CreatePixelTransferDelegateImpl(
|
| gles2::TextureRef* ref,
|
|
|