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 44e38458cb05731b40a769f3a390a7b10bd40c85..9b97b723df37939277750d3b08db262546797907 100644 |
--- a/cc/raster/one_copy_raster_buffer_provider.cc |
+++ b/cc/raster/one_copy_raster_buffer_provider.cc |
@@ -216,10 +216,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; |
@@ -280,8 +277,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) { |
@@ -380,4 +377,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 |