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

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

Issue 10989011: Defend against NULL pointer dereferences in buggy OpenGL drivers. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 3 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 707460639ebbf504d7a0579143f25e816793d05b..644dfbf591018d163de73624eca7508db830a3c8 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -1537,7 +1537,6 @@ class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>,
bool back_buffer_has_stencil_;
bool teximage2d_faster_than_texsubimage2d_;
- bool bufferdata_faster_than_buffersubdata_;
// The last error message set.
std::string last_error_;
@@ -1991,7 +1990,6 @@ GLES2DecoderImpl::GLES2DecoderImpl(ContextGroup* group)
back_buffer_has_depth_(false),
back_buffer_has_stencil_(false),
teximage2d_faster_than_texsubimage2d_(true),
- bufferdata_faster_than_buffersubdata_(true),
log_message_count_(0),
current_decoder_error_(error::kNoError),
use_shader_translator_(true),
@@ -2039,10 +2037,9 @@ GLES2DecoderImpl::GLES2DecoderImpl(ContextGroup* group)
use_shader_translator_ = false;
}
- // TODO(gman): Consider setting these based on GPU and/or driver.
+ // TODO(gman): Consider setting this based on GPU and/or driver.
if (IsAngle()) {
teximage2d_faster_than_texsubimage2d_ = false;
- bufferdata_faster_than_buffersubdata_ = false;
}
}
@@ -6860,19 +6857,14 @@ void GLES2DecoderImpl::DoBufferData(
data = zero.get();
}
- if (!bufferdata_faster_than_buffersubdata_ &&
- size == info->size() && usage == info->usage()) {
- glBufferSubData(target, 0, size, data);
- info->SetRange(0, size, data);
- return;
- }
-
CopyRealGLErrorsToWrapper();
glBufferData(target, size, data, usage);
GLenum error = PeekGLError();
if (error == GL_NO_ERROR) {
buffer_manager()->SetInfo(info, size, usage);
info->SetRange(0, size, data);
+ } else {
+ buffer_manager()->SetInfo(info, 0, usage);
}
}
@@ -6919,11 +6911,6 @@ void GLES2DecoderImpl::DoBufferSubData(
SetGLError(GL_INVALID_VALUE, "glBufferSubData", "out of range");
return;
}
- if (bufferdata_faster_than_buffersubdata_ &&
- offset == 0 && size == info->size()) {
- glBufferData(target, size, data, info->usage());
- return;
- }
glBufferSubData(target, offset, size, data);
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698