summaryrefslogtreecommitdiffstats
path: root/gpu
diff options
context:
space:
mode:
authorzmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-30 17:05:31 +0000
committerzmo@google.com <zmo@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-30 17:05:31 +0000
commit69e65f8629e511cf4d3aec8f7277ace4b47a6d15 (patch)
tree6bdd7fa91eb262314318b773403b4e39840d0b21 /gpu
parent3fdb52a943286cdf2d77dcb93a91aed3cd6de6db (diff)
downloadchromium_src-69e65f8629e511cf4d3aec8f7277ace4b47a6d15.zip
chromium_src-69e65f8629e511cf4d3aec8f7277ace4b47a6d15.tar.gz
chromium_src-69e65f8629e511cf4d3aec8f7277ace4b47a6d15.tar.bz2
Revert 129819 - Add CHECK on non-generated ids in command buffer.
For Chrome and WebGL we require that all ids are generated. This is especially important for the threaded compositor as it may be using ids that are getting deleted and those ids will get auto-reused on bind. BUG=121139 TEST=ran webgl conformance tests Review URL: http://codereview.chromium.org/9903029 TBR=gman@chromium.org Review URL: https://chromiumcodereview.appspot.com/9956023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129879 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc23
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc12
2 files changed, 19 insertions, 16 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 90fc797..95aedaa 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -3131,8 +3131,8 @@ void GLES2DecoderImpl::DoBindBuffer(GLenum target, GLuint client_id) {
info = GetBufferInfo(client_id);
if (!info) {
if (!group_->bind_generates_resource()) {
- LOG(ERROR) << "glBindBuffer: id not generated by glGenBuffers";
- current_decoder_error_ = error::kGenericError;
+ SetGLError(GL_INVALID_VALUE,
+ "glBindBuffer: id not generated by glGenBuffers");
return;
}
@@ -3226,10 +3226,9 @@ void GLES2DecoderImpl::DoBindFramebuffer(GLenum target, GLuint client_id) {
info = GetFramebufferInfo(client_id);
if (!info) {
if (!group_->bind_generates_resource()) {
- LOG(ERROR)
- << "glBindFramebuffer: id not generated by glGenFramebuffers";
- current_decoder_error_ = error::kGenericError;
- return;
+ SetGLError(GL_INVALID_VALUE,
+ "glBindFramebuffer: id not generated by glGenFramebuffers");
+ return;
}
// It's a new id so make a framebuffer info for it.
@@ -3270,9 +3269,9 @@ void GLES2DecoderImpl::DoBindRenderbuffer(GLenum target, GLuint client_id) {
info = GetRenderbufferInfo(client_id);
if (!info) {
if (!group_->bind_generates_resource()) {
- LOG(ERROR)
- << "glBindRenderbuffer: id not generated by glGenRenderbuffers";
- current_decoder_error_ = error::kGenericError;
+ SetGLError(
+ GL_INVALID_VALUE,
+ "glBindRenderbuffer: id not generated by glGenRenderbuffers");
return;
}
@@ -3299,9 +3298,9 @@ void GLES2DecoderImpl::DoBindTexture(GLenum target, GLuint client_id) {
info = GetTextureInfo(client_id);
if (!info) {
if (!group_->bind_generates_resource()) {
- LOG(ERROR) << "glBindTexture: id not generated by glGenTextures";
- current_decoder_error_ = error::kGenericError;
- return;
+ SetGLError(GL_INVALID_VALUE,
+ "glBindTexture: id not generated by glGenTextures");
+ return;
}
// It's a new id so make a texture info for it.
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
index 16246f5..ca1d5c6 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
@@ -5199,19 +5199,23 @@ TEST_F(GLES2DecoderManualInitTest, BindGeneratesResourceFalse) {
BindTexture cmd1;
cmd1.Init(GL_TEXTURE_2D, kInvalidClientId);
- EXPECT_NE(error::kNoError, ExecuteCmd(cmd1));
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
BindBuffer cmd2;
cmd2.Init(GL_ARRAY_BUFFER, kInvalidClientId);
- EXPECT_NE(error::kNoError, ExecuteCmd(cmd2));
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
BindFramebuffer cmd3;
cmd3.Init(GL_FRAMEBUFFER, kInvalidClientId);
- EXPECT_NE(error::kNoError, ExecuteCmd(cmd3));
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3));
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
BindRenderbuffer cmd4;
cmd4.Init(GL_RENDERBUFFER, kInvalidClientId);
- EXPECT_NE(error::kNoError, ExecuteCmd(cmd4));
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd4));
+ EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
}
TEST_F(GLES2DecoderManualInitTest, CreateStreamTextureCHROMIUM) {