Index: gpu/command_buffer/service/buffer_manager.cc |
diff --git a/gpu/command_buffer/service/buffer_manager.cc b/gpu/command_buffer/service/buffer_manager.cc |
index 4e3d8644df86958db3482ecd029145852bfd6b3c..e1a2171e1bd122f16e261b7a66fe072f1464f9b1 100644 |
--- a/gpu/command_buffer/service/buffer_manager.cc |
+++ b/gpu/command_buffer/service/buffer_manager.cc |
@@ -106,12 +106,13 @@ void BufferManager::StopTracking(Buffer* buffer) { |
Buffer::MappedRange::MappedRange( |
GLintptr offset, GLsizeiptr size, GLenum access, void* pointer, |
- scoped_refptr<gpu::Buffer> shm) |
+ scoped_refptr<gpu::Buffer> shm, unsigned int shm_offset) |
: offset(offset), |
size(size), |
access(access), |
pointer(pointer), |
- shm(shm) { |
+ shm(shm), |
+ shm_offset(shm_offset) { |
DCHECK(pointer); |
DCHECK(shm.get() && GetShmPointer()); |
} |
@@ -121,8 +122,7 @@ Buffer::MappedRange::~MappedRange() { |
void* Buffer::MappedRange::GetShmPointer() const { |
DCHECK(shm.get()); |
- return shm->GetDataAddress(static_cast<unsigned int>(offset), |
- static_cast<unsigned int>(size)); |
+ return shm->GetDataAddress(shm_offset, static_cast<unsigned int>(size)); |
} |
Buffer::Buffer(BufferManager* manager, GLuint service_id) |
@@ -569,11 +569,11 @@ void BufferManager::DoCopyBufferSubData( |
GLsizeiptr size) { |
DCHECK(readbuffer); |
DCHECK(writebuffer); |
- const bool use_shadow = UseShadowBuffer(writetarget, writebuffer->usage()); |
- if (use_shadow) { |
+ if (writebuffer->shadowed()) { |
const void* data = readbuffer->GetRange(readoffset, size); |
DCHECK(data); |
- writebuffer->SetRange(writeoffset, size, data); |
+ bool success = writebuffer->SetRange(writeoffset, size, data); |
+ DCHECK(success); |
} |
glCopyBufferSubData(readtarget, writetarget, readoffset, writeoffset, size); |