Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2349)

Unified Diff: gpu/command_buffer/service/buffer_manager.cc

Issue 2383333002: Update shadowed data in MapBufferRange path. (Closed)
Patch Set: This should work Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/buffer_manager.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « gpu/command_buffer/service/buffer_manager.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698