Framebuffer: Handle errors in checkStatus.
This pipes a lot more errors around in the Validation, where
they now will be caught.
Bug: angleproject:2372
Change-Id: Ibb4e47ddc932995a02dd92e10578b7a4097182a9
Reviewed-on: https://chromium-review.googlesource.com/954406
Reviewed-by: Luc Ferron <lucferron@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index dd554a3..ad3dad0 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -1593,7 +1593,7 @@
*params = mCaps.maxGeometryShaderStorageBlocks;
break;
default:
- mGLState.getIntegerv(this, pname, params);
+ handleError(mGLState.getIntegerv(this, pname, params));
break;
}
}
@@ -3339,7 +3339,9 @@
Framebuffer *framebuffer = mGLState.getTargetFramebuffer(target);
ASSERT(framebuffer);
- if (framebuffer->checkStatus(this) != GL_FRAMEBUFFER_COMPLETE)
+ bool complete = false;
+ ANGLE_CONTEXT_TRY(framebuffer->isComplete(this, &complete));
+ if (!complete)
{
return;
}
@@ -3361,7 +3363,9 @@
Framebuffer *framebuffer = mGLState.getTargetFramebuffer(target);
ASSERT(framebuffer);
- if (framebuffer->checkStatus(this) != GL_FRAMEBUFFER_COMPLETE)
+ bool complete = false;
+ ANGLE_CONTEXT_TRY(framebuffer->isComplete(this, &complete));
+ if (!complete)
{
return;
}
@@ -4419,7 +4423,14 @@
Framebuffer *framebuffer = mGLState.getTargetFramebuffer(target);
ASSERT(framebuffer);
- return framebuffer->checkStatus(this);
+ GLenum status = GL_NONE;
+ Error err = framebuffer->checkStatus(this, &status);
+ if (err.isError())
+ {
+ handleError(err);
+ return 0;
+ }
+ return status;
}
void Context::compileShader(GLuint shader)