WebGL requires GL_FRAMEBUFFER_UNSUPPORTED for identical FBO attachments.
If the same level of a texture is attached to multiple color
attachments of a framebuffer object, for example, the WebGL
conformance tests require generating a GL_FRAMEBUFFER_UNSUPPORTED
error. The Direct3D backend already had this restriction; apply it to
all backends when the WebGL compatibility extension is enabled.
Fixes the following WebGL conformance tests with the pass-through
command decoder in Chrome:
conformance/extensions/webgl-draw-buffers-framebuffer-unsupported
conformance2/rendering/framebuffer-unsupported
BUG=angleproject:2168
Change-Id: I340d06ca0ee969989c6c5725512b1b9542281477
Reviewed-on: https://chromium-review.googlesource.com/699856
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/gl/FramebufferGL.cpp b/src/libANGLE/renderer/gl/FramebufferGL.cpp
index 221af40..1343b0d 100644
--- a/src/libANGLE/renderer/gl/FramebufferGL.cpp
+++ b/src/libANGLE/renderer/gl/FramebufferGL.cpp
@@ -594,7 +594,7 @@
return gl::NoError();
}
-bool FramebufferGL::checkStatus() const
+bool FramebufferGL::checkStatus(const gl::Context *context) const
{
mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
GLenum status = mFunctions->checkFramebufferStatus(GL_FRAMEBUFFER);