Framebuffer completeness multisample fix
Framebuffer completeness, usually verified through
glCheckFramebufferStatus, should return
GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE when the number of
samples is not the same for all attached renderbuffers.
Change-Id: I8d29895c6d4ded26847ce47fbd2581bbf06ed1bf
Reviewed-on: https://swiftshader-review.googlesource.com/4363
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGLESv2/Framebuffer.cpp b/src/OpenGL/libGLESv2/Framebuffer.cpp
index 5e4e808..272a26d 100644
--- a/src/OpenGL/libGLESv2/Framebuffer.cpp
+++ b/src/OpenGL/libGLESv2/Framebuffer.cpp
@@ -314,7 +314,16 @@
width = colorbuffer->getWidth();
height = colorbuffer->getHeight();
- samples = colorbuffer->getSamples();
+
+ if(samples == -1)
+ {
+ samples = colorbuffer->getSamples();
+ }
+ else if(samples != colorbuffer->getSamples())
+ {
+ return GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE;
+ }
+
}
}