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/validationES2.cpp b/src/libANGLE/validationES2.cpp
index d9261c5..10c6e5c 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -2493,7 +2493,9 @@
}
}
- if (readFramebuffer->getSamples(context) != 0 &&
+ GLint samples = 0;
+ ANGLE_VALIDATION_TRY(readFramebuffer->getSamples(context, &samples));
+ if (samples != 0 &&
IsPartialBlit(context, readColorAttachment, drawColorAttachment, srcX0, srcY0,
srcX1, srcY1, dstX0, dstY0, dstX1, dstY1))
{
@@ -2542,9 +2544,9 @@
bool ValidateClear(Context *context, GLbitfield mask)
{
Framebuffer *fbo = context->getGLState().getDrawFramebuffer();
- if (fbo->checkStatus(context) != GL_FRAMEBUFFER_COMPLETE)
+
+ if (!ValidateFramebufferComplete(context, fbo, true))
{
- context->handleError(InvalidFramebufferOperation());
return false;
}