Index: cc/resources/resource_provider.cc |
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc |
index db1b35eb0ccaadeaa428bd4540771b2cc1f71e91..1c0b554a4e8861dd4b29d7eeae119cfd6c7d4ba5 100644 |
--- a/cc/resources/resource_provider.cc |
+++ b/cc/resources/resource_provider.cc |
@@ -1088,16 +1088,17 @@ ResourceProvider::ScopedWriteLockGpuMemoryBuffer:: |
resource_->read_lock_fences_enabled = true; |
} |
-gfx::GpuMemoryBuffer* |
-ResourceProvider::ScopedWriteLockGpuMemoryBuffer::GetGpuMemoryBuffer() { |
- if (!gpu_memory_buffer_) { |
- scoped_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer = |
- gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer( |
- size_, ToGpuMemoryBufferFormat(format_), gfx::GpuMemoryBuffer::MAP); |
- gpu_memory_buffer_ = gpu_memory_buffer.release(); |
- } |
- |
- return gpu_memory_buffer_; |
+bool ResourceProvider::ScopedWriteLockGpuMemoryBuffer::AllocateGpuMemoryBuffer( |
+ bool persistent) { |
+ DCHECK(!gpu_memory_buffer_); |
+ gfx::GpuMemoryBuffer::Usage usage = persistent |
+ ? gfx::GpuMemoryBuffer::PERSISTENT_MAP |
+ : gfx::GpuMemoryBuffer::MAP; |
+ scoped_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer = |
+ gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer( |
+ size_, ToGpuMemoryBufferFormat(format_), usage); |
+ gpu_memory_buffer_ = gpu_memory_buffer.release(); |
+ return !!gpu_memory_buffer_; |
} |
ResourceProvider::ScopedWriteLockGr::ScopedWriteLockGr( |