Index: cc/raster/one_copy_raster_buffer_provider.cc |
diff --git a/cc/raster/one_copy_raster_buffer_provider.cc b/cc/raster/one_copy_raster_buffer_provider.cc |
index f0f6b0f36b0dff08cc366b714cd47eea726680c9..618701ef2d8082a1de56e77fac4a43b443bca548 100644 |
--- a/cc/raster/one_copy_raster_buffer_provider.cc |
+++ b/cc/raster/one_copy_raster_buffer_provider.cc |
@@ -219,10 +219,7 @@ void OneCopyRasterBufferProvider::PlaybackToStagingBuffer( |
resource_provider_->gpu_memory_buffer_manager() |
->AllocateGpuMemoryBuffer( |
staging_buffer->size, BufferFormat(resource->format()), |
- use_partial_raster_ |
- ? gfx::BufferUsage::GPU_READ_CPU_READ_WRITE_PERSISTENT |
- : gfx::BufferUsage::GPU_READ_CPU_READ_WRITE, |
- gpu::kNullSurfaceHandle); |
+ StagingBufferUsage(), gpu::kNullSurfaceHandle); |
} |
gfx::Rect playback_rect = raster_full_rect; |
@@ -283,8 +280,8 @@ void OneCopyRasterBufferProvider::CopyOnWorkerThread( |
gl, resource_lock, async_worker_context_enabled_); |
unsigned resource_texture_id = scoped_texture.texture_id(); |
- unsigned image_target = |
- resource_provider_->GetImageTextureTarget(resource_lock->format()); |
+ unsigned image_target = resource_provider_->GetImageTextureTarget( |
+ StagingBufferUsage(), staging_buffer->format); |
// Create and bind staging texture. |
if (!staging_buffer->texture_id) { |
@@ -383,4 +380,10 @@ void OneCopyRasterBufferProvider::CopyOnWorkerThread( |
resource_lock->set_synchronized(!async_worker_context_enabled_); |
} |
+gfx::BufferUsage OneCopyRasterBufferProvider::StagingBufferUsage() const { |
+ return use_partial_raster_ |
+ ? gfx::BufferUsage::GPU_READ_CPU_READ_WRITE_PERSISTENT |
+ : gfx::BufferUsage::GPU_READ_CPU_READ_WRITE; |
+} |
+ |
} // namespace cc |