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/validationES3.cpp b/src/libANGLE/validationES3.cpp
index 2840482..07f8058 100644
--- a/src/libANGLE/validationES3.cpp
+++ b/src/libANGLE/validationES3.cpp
@@ -808,15 +808,13 @@
gl::Framebuffer *framebuffer = state.getReadFramebuffer();
GLuint readFramebufferID = framebuffer->id();
- if (framebuffer->checkStatus(context) != GL_FRAMEBUFFER_COMPLETE)
+ if (!ValidateFramebufferComplete(context, framebuffer, true))
{
- context->handleError(InvalidFramebufferOperation());
return false;
}
- if (readFramebufferID != 0 && framebuffer->getSamples(context) != 0)
+ if (readFramebufferID != 0 && !ValidateFramebufferNotMultisampled(context, framebuffer))
{
- context->handleError(InvalidOperation());
return false;
}
@@ -1246,9 +1244,8 @@
return false;
}
- if (context->getGLState().getDrawFramebuffer()->checkStatus(context) != GL_FRAMEBUFFER_COMPLETE)
+ if (!ValidateFramebufferComplete(context, context->getGLState().getDrawFramebuffer(), true))
{
- context->handleError(InvalidFramebufferOperation());
return false;
}