summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/feature_info_unittest.cc
diff options
context:
space:
mode:
authorbajones@chromium.org <bajones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-12 16:25:57 +0000
committerbajones@chromium.org <bajones@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-12 16:25:57 +0000
commitab4fd728dca3d8d59564dd5fb552eea244929363 (patch)
treee46ae4f2fefcb282c0212f96ec6d254739c66319 /gpu/command_buffer/service/feature_info_unittest.cc
parente9ec622093449d24d4f5182eb6c60f0266308eb3 (diff)
downloadchromium_src-ab4fd728dca3d8d59564dd5fb552eea244929363.zip
chromium_src-ab4fd728dca3d8d59564dd5fb552eea244929363.tar.gz
chromium_src-ab4fd728dca3d8d59564dd5fb552eea244929363.tar.bz2
Added emulation of the OES_vertex_array_object WebGL extension for devices that
do not support it natively, such as those using ANGLE. TEST=Visit https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/oes-vertex-array-object.html on an ANGLE device. All tests should pass. Review URL: https://chromiumcodereview.appspot.com/10983072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161589 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/feature_info_unittest.cc')
-rw-r--r--gpu/command_buffer/service/feature_info_unittest.cc37
1 files changed, 34 insertions, 3 deletions
diff --git a/gpu/command_buffer/service/feature_info_unittest.cc b/gpu/command_buffer/service/feature_info_unittest.cc
index f08d4ce..3d14e7c 100644
--- a/gpu/command_buffer/service/feature_info_unittest.cc
+++ b/gpu/command_buffer/service/feature_info_unittest.cc
@@ -9,6 +9,7 @@
#include "gpu/command_buffer/service/test_helper.h"
#include "gpu/command_buffer/service/texture_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gl/gl_implementation.h"
using ::gfx::MockGLInterface;
using ::testing::_;
@@ -88,9 +89,11 @@ TEST_F(FeatureInfoTest, Basic) {
).use_arb_occlusion_query2_for_occlusion_query_boolean);
EXPECT_FALSE(info_->feature_flags(
).use_arb_occlusion_query_for_occlusion_query_boolean);
+ EXPECT_FALSE(info_->feature_flags().native_vertex_array_object_);
EXPECT_FALSE(info_->feature_flags().is_intel);
EXPECT_FALSE(info_->feature_flags().is_nvidia);
EXPECT_FALSE(info_->feature_flags().is_amd);
+ EXPECT_FALSE(info_->feature_flags().is_mesa);
// Test good types.
{
@@ -765,7 +768,7 @@ TEST_F(FeatureInfoTest, InitializeOES_vertex_array_object) {
SetupInitExpectations("GL_OES_vertex_array_object");
info_->Initialize(NULL);
EXPECT_THAT(info_->extensions(),
- HasSubstr("GL_OES_vertex_array_object"));
+ HasSubstr("GL_OES_vertex_array_object"));
EXPECT_TRUE(info_->feature_flags().native_vertex_array_object_);
}
@@ -773,7 +776,7 @@ TEST_F(FeatureInfoTest, InitializeARB_vertex_array_object) {
SetupInitExpectations("GL_ARB_vertex_array_object");
info_->Initialize(NULL);
EXPECT_THAT(info_->extensions(),
- HasSubstr("GL_OES_vertex_array_object"));
+ HasSubstr("GL_OES_vertex_array_object"));
EXPECT_TRUE(info_->feature_flags().native_vertex_array_object_);
}
@@ -781,7 +784,7 @@ TEST_F(FeatureInfoTest, InitializeAPPLE_vertex_array_object) {
SetupInitExpectations("GL_APPLE_vertex_array_object");
info_->Initialize(NULL);
EXPECT_THAT(info_->extensions(),
- HasSubstr("GL_OES_vertex_array_object"));
+ HasSubstr("GL_OES_vertex_array_object"));
EXPECT_TRUE(info_->feature_flags().native_vertex_array_object_);
}
@@ -791,6 +794,8 @@ TEST_F(FeatureInfoTest, InitializeNo_vertex_array_object) {
// Even if the native extensions are not available the implementation
// may still emulate the GL_OES_vertex_array_object functionality. In this
// scenario native_vertex_array_object must be false.
+ EXPECT_THAT(info_->extensions(),
+ HasSubstr("GL_OES_vertex_array_object"));
EXPECT_FALSE(info_->feature_flags().native_vertex_array_object_);
}
@@ -800,6 +805,7 @@ TEST_F(FeatureInfoTest, IsIntel) {
EXPECT_TRUE(info_->feature_flags().is_intel);
EXPECT_FALSE(info_->feature_flags().is_nvidia);
EXPECT_FALSE(info_->feature_flags().is_amd);
+ EXPECT_FALSE(info_->feature_flags().is_mesa);
SetupInitExpectationsWithVendor("", "", "IntEl");
FeatureInfo::Ref feature_info(new FeatureInfo());
@@ -807,6 +813,7 @@ TEST_F(FeatureInfoTest, IsIntel) {
EXPECT_TRUE(feature_info->feature_flags().is_intel);
EXPECT_FALSE(feature_info->feature_flags().is_nvidia);
EXPECT_FALSE(feature_info->feature_flags().is_amd);
+ EXPECT_FALSE(info_->feature_flags().is_mesa);
}
TEST_F(FeatureInfoTest, IsNvidia) {
@@ -815,6 +822,7 @@ TEST_F(FeatureInfoTest, IsNvidia) {
EXPECT_FALSE(info_->feature_flags().is_intel);
EXPECT_TRUE(info_->feature_flags().is_nvidia);
EXPECT_FALSE(info_->feature_flags().is_amd);
+ EXPECT_FALSE(info_->feature_flags().is_mesa);
SetupInitExpectationsWithVendor("", "", "NViDiA");
{
@@ -823,6 +831,7 @@ TEST_F(FeatureInfoTest, IsNvidia) {
EXPECT_FALSE(feature_info->feature_flags().is_intel);
EXPECT_TRUE(feature_info->feature_flags().is_nvidia);
EXPECT_FALSE(feature_info->feature_flags().is_amd);
+ EXPECT_FALSE(feature_info->feature_flags().is_mesa);
}
SetupInitExpectationsWithVendor("", "NVIDIA Corporation", "");
@@ -832,6 +841,7 @@ TEST_F(FeatureInfoTest, IsNvidia) {
EXPECT_FALSE(feature_info->feature_flags().is_intel);
EXPECT_TRUE(feature_info->feature_flags().is_nvidia);
EXPECT_FALSE(feature_info->feature_flags().is_amd);
+ EXPECT_FALSE(feature_info->feature_flags().is_mesa);
}
}
@@ -841,6 +851,7 @@ TEST_F(FeatureInfoTest, IsAMD) {
EXPECT_FALSE(info_->feature_flags().is_intel);
EXPECT_FALSE(info_->feature_flags().is_nvidia);
EXPECT_TRUE(info_->feature_flags().is_amd);
+ EXPECT_FALSE(info_->feature_flags().is_mesa);
SetupInitExpectationsWithVendor("", "", "AmD");
FeatureInfo::Ref feature_info(new FeatureInfo());
@@ -848,6 +859,7 @@ TEST_F(FeatureInfoTest, IsAMD) {
EXPECT_FALSE(feature_info->feature_flags().is_intel);
EXPECT_FALSE(feature_info->feature_flags().is_nvidia);
EXPECT_TRUE(feature_info->feature_flags().is_amd);
+ EXPECT_FALSE(feature_info->feature_flags().is_mesa);
}
TEST_F(FeatureInfoTest, IsAMDATI) {
@@ -856,6 +868,7 @@ TEST_F(FeatureInfoTest, IsAMDATI) {
EXPECT_FALSE(info_->feature_flags().is_intel);
EXPECT_FALSE(info_->feature_flags().is_nvidia);
EXPECT_TRUE(info_->feature_flags().is_amd);
+ EXPECT_FALSE(info_->feature_flags().is_mesa);
SetupInitExpectationsWithVendor("", "", "AtI");
FeatureInfo::Ref feature_info(new FeatureInfo());
@@ -863,6 +876,24 @@ TEST_F(FeatureInfoTest, IsAMDATI) {
EXPECT_FALSE(feature_info->feature_flags().is_intel);
EXPECT_FALSE(feature_info->feature_flags().is_nvidia);
EXPECT_TRUE(feature_info->feature_flags().is_amd);
+ EXPECT_FALSE(feature_info->feature_flags().is_mesa);
+}
+
+TEST_F(FeatureInfoTest, IsMesa) {
+ SetupInitExpectationsWithVendor("", "MesA", "");
+ info_->Initialize(NULL);
+ EXPECT_FALSE(info_->feature_flags().is_intel);
+ EXPECT_FALSE(info_->feature_flags().is_nvidia);
+ EXPECT_FALSE(info_->feature_flags().is_amd);
+ EXPECT_TRUE(info_->feature_flags().is_mesa);
+
+ SetupInitExpectationsWithVendor("", "", "meSa");
+ FeatureInfo::Ref feature_info(new FeatureInfo());
+ feature_info->Initialize(NULL);
+ EXPECT_FALSE(feature_info->feature_flags().is_intel);
+ EXPECT_FALSE(feature_info->feature_flags().is_nvidia);
+ EXPECT_FALSE(feature_info->feature_flags().is_amd);
+ EXPECT_TRUE(feature_info->feature_flags().is_mesa);
}
} // namespace gles2