Use the FormatCaps for multisample validation and queries.
BUG=angle:658
Change-Id: Ic9fa53fb62d7eff62f07b68d7ddada461ecad859
Reviewed-on: https://chromium-review.googlesource.com/206832
Tested-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/validationES.cpp b/src/libGLESv2/validationES.cpp
index 309c4da..e963098 100644
--- a/src/libGLESv2/validationES.cpp
+++ b/src/libGLESv2/validationES.cpp
@@ -335,14 +335,21 @@
// internal format.
if (angleExtension)
{
- if (samples > context->getMaxSupportedSamples())
+ ASSERT(context->getExtensions().framebufferMultisample);
+ if (static_cast<GLuint>(samples) > context->getExtensions().maxSamples)
{
return gl::error(GL_INVALID_VALUE, false);
}
+
+ // Check if this specific format supports enough samples
+ if (static_cast<GLuint>(samples) > formatCaps.getMaxSamples())
+ {
+ return gl::error(GL_OUT_OF_MEMORY, false);
+ }
}
else
{
- if (samples > context->getMaxSupportedFormatSamples(internalformat))
+ if (static_cast<GLuint>(samples) > formatCaps.getMaxSamples())
{
return gl::error(GL_INVALID_VALUE, false);
}