| 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;
|
|
|