Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
=================================================================== |
--- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 98533) |
+++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy) |
@@ -2672,12 +2672,6 @@ |
if (client_id != 0) { |
info = GetBufferInfo(client_id); |
if (!info) { |
- if (!group_->bind_generates_resource()) { |
- SetGLError(GL_INVALID_VALUE, |
- "glBindBuffer: id not generated by glGenBuffers"); |
- return; |
- } |
- |
// It's a new id so make a buffer info for it. |
glGenBuffersARB(1, &service_id); |
CreateBufferInfo(client_id, service_id); |
@@ -2757,12 +2751,6 @@ |
if (client_id != 0) { |
info = GetFramebufferInfo(client_id); |
if (!info) { |
- if (!group_->bind_generates_resource()) { |
- SetGLError(GL_INVALID_VALUE, |
- "glBindFramebuffer: id not generated by glGenFramebuffers"); |
- return; |
- } |
- |
// It's a new id so make a framebuffer info for it. |
glGenFramebuffersEXT(1, &service_id); |
CreateFramebufferInfo(client_id, service_id); |
@@ -2802,13 +2790,6 @@ |
if (client_id != 0) { |
info = GetRenderbufferInfo(client_id); |
if (!info) { |
- if (!group_->bind_generates_resource()) { |
- SetGLError( |
- GL_INVALID_VALUE, |
- "glBindRenderbuffer: id not generated by glGenRenderbuffers"); |
- return; |
- } |
- |
// It's a new id so make a renderbuffer info for it. |
glGenRenderbuffersEXT(1, &service_id); |
CreateRenderbufferInfo(client_id, service_id); |
@@ -2831,12 +2812,6 @@ |
if (client_id != 0) { |
info = GetTextureInfo(client_id); |
if (!info) { |
- if (!group_->bind_generates_resource()) { |
- SetGLError(GL_INVALID_VALUE, |
- "glBindTexture: id not generated by glGenTextures"); |
- return; |
- } |
- |
// It's a new id so make a texture info for it. |
glGenTextures(1, &service_id); |
CreateTextureInfo(client_id, service_id); |
@@ -4684,7 +4659,7 @@ |
ProgramManager::ProgramInfo* info = GetProgramInfoNotShader( |
program, "glGetProgramInfoLog"); |
if (!info || !info->log_info()) { |
- bucket->SetFromString(""); |
+ bucket->SetSize(0); |
return error::kNoError; |
} |
bucket->SetFromString(info->log_info()->c_str()); |
@@ -4699,7 +4674,7 @@ |
ShaderManager::ShaderInfo* info = GetShaderInfoNotProgram( |
shader, "glGetShaderInfoLog"); |
if (!info || !info->log_info()) { |
- bucket->SetFromString(""); |
+ bucket->SetSize(0); |
return error::kNoError; |
} |
bucket->SetFromString(info->log_info()->c_str()); |
@@ -6749,9 +6724,17 @@ |
Bucket* bucket = CreateBucket(bucket_id); |
bucket->SetSize(sizeof(ProgramInfoHeader)); // in case we fail. |
ProgramManager::ProgramInfo* info = NULL; |
- info = GetProgramInfo(program); |
- if (!info || !info->IsValid()) { |
- return error::kNoError; |
+ if (program) { |
+ info = GetProgramInfoNotShader(program, "glGetProgramInfoCHROMIUM"); |
+ if (!info) { |
+ return error::kNoError; |
+ } |
+ if (!info->IsValid()) { |
+ // Program was not linked successfully. (ie, glLinkProgram) |
+ SetGLError(GL_INVALID_OPERATION, |
+ "glGetProgramInfoCHROMIUM: program not linked"); |
+ return error::kNoError; |
+ } |
} |
info->GetProgramInfo(bucket); |
return error::kNoError; |