Implement GL_ANGLE_texture_multisample API part
Support GL_ANGLE_texture_multisample extension.
This patch adds enums of multisampled texture and texStorage2DMultisampleANGLE
API.
TEST=angle_end2end_tests.exe --gtest_filter=TextureMultisampleTest*
TEST=angle_end2end_tests.exe --gtest_filter=NegativeTextureMultisampleTest.Negtive*
BUG=angleproject:2275
Change-Id: I2cab997edc33aa2d0be6082381545335423f64e0
Reviewed-on: https://chromium-review.googlesource.com/c/804613
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 2bcfd24..8db6a85 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -1133,8 +1133,9 @@
break;
case TextureType::_2DMultisample:
- ASSERT(context->getClientVersion() < Version(3, 1));
- ANGLE_VALIDATION_ERR(context, InvalidEnum(), ES31Required);
+ ASSERT(context->getClientVersion() < Version(3, 1) &&
+ !context->getExtensions().textureMultisample);
+ ANGLE_VALIDATION_ERR(context, InvalidEnum(), MultisampleTextureExtensionOrES31Required);
break;
case TextureType::_2DMultisampleArray:
@@ -6035,9 +6036,11 @@
case TextureTarget::_2DMultisample:
{
- if (context->getClientVersion() < ES_3_1)
+ if (context->getClientVersion() < ES_3_1 &&
+ !context->getExtensions().textureMultisample)
{
- ANGLE_VALIDATION_ERR(context, InvalidOperation(), ES31Required);
+ ANGLE_VALIDATION_ERR(context, InvalidOperation(),
+ MultisampleTextureExtensionOrES31Required);
return false;
}