OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "gpu/command_buffer/service/feature_info.h" | 5 #include "gpu/command_buffer/service/feature_info.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "gpu/command_buffer/service/gpu_service_test.h" | 10 #include "gpu/command_buffer/service/gpu_service_test.h" |
| 11 #include "gpu/command_buffer/service/gpu_switches.h" |
11 #include "gpu/command_buffer/service/test_helper.h" | 12 #include "gpu/command_buffer/service/test_helper.h" |
12 #include "gpu/command_buffer/service/texture_manager.h" | 13 #include "gpu/command_buffer/service/texture_manager.h" |
13 #include "gpu/config/gpu_driver_bug_workaround_type.h" | 14 #include "gpu/config/gpu_driver_bug_workaround_type.h" |
14 #include "gpu/config/gpu_switches.h" | 15 #include "gpu/config/gpu_switches.h" |
15 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
16 #include "ui/gl/gl_fence.h" | 17 #include "ui/gl/gl_fence.h" |
17 #include "ui/gl/gl_implementation.h" | 18 #include "ui/gl/gl_implementation.h" |
18 #include "ui/gl/gl_mock.h" | 19 #include "ui/gl/gl_mock.h" |
19 | 20 |
20 using ::testing::_; | 21 using ::testing::_; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 | 71 |
71 void SetupInitExpectationsWithGLVersion( | 72 void SetupInitExpectationsWithGLVersion( |
72 const char* extensions, const char* renderer, const char* version) { | 73 const char* extensions, const char* renderer, const char* version) { |
73 GpuServiceTest::SetUpWithGLVersion(version, extensions); | 74 GpuServiceTest::SetUpWithGLVersion(version, extensions); |
74 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( | 75 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
75 gl_.get(), extensions, renderer, version); | 76 gl_.get(), extensions, renderer, version); |
76 info_ = new FeatureInfo(); | 77 info_ = new FeatureInfo(); |
77 info_->Initialize(); | 78 info_->Initialize(); |
78 } | 79 } |
79 | 80 |
| 81 void SetupInitExpectationsWithGLVersionAndCommandLine( |
| 82 const char* extensions, |
| 83 const char* renderer, |
| 84 const char* version, |
| 85 const base::CommandLine& command_line) { |
| 86 GpuServiceTest::SetUpWithGLVersion(version, extensions); |
| 87 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
| 88 gl_.get(), extensions, renderer, version); |
| 89 info_ = new FeatureInfo(command_line); |
| 90 info_->Initialize(); |
| 91 } |
| 92 |
80 void SetupWithCommandLine(const base::CommandLine& command_line) { | 93 void SetupWithCommandLine(const base::CommandLine& command_line) { |
81 GpuServiceTest::SetUp(); | 94 GpuServiceTest::SetUp(); |
82 info_ = new FeatureInfo(command_line); | 95 info_ = new FeatureInfo(command_line); |
83 } | 96 } |
84 | 97 |
85 void SetupInitExpectationsWithCommandLine( | 98 void SetupInitExpectationsWithCommandLine( |
86 const char* extensions, | 99 const char* extensions, |
87 const base::CommandLine& command_line) { | 100 const base::CommandLine& command_line) { |
88 GpuServiceTest::SetUpWithGLVersion("2.0", extensions); | 101 GpuServiceTest::SetUpWithGLVersion("2.0", extensions); |
89 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( | 102 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
(...skipping 1094 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1184 command_line.AppendSwitchASCII( | 1197 command_line.AppendSwitchASCII( |
1185 switches::kGpuDriverBugWorkarounds, | 1198 switches::kGpuDriverBugWorkarounds, |
1186 base::IntToString(gpu::DISABLE_BLEND_EQUATION_ADVANCED)); | 1199 base::IntToString(gpu::DISABLE_BLEND_EQUATION_ADVANCED)); |
1187 SetupInitExpectationsWithCommandLine( | 1200 SetupInitExpectationsWithCommandLine( |
1188 "GL_KHR_blend_equation_advanced_coherent GL_KHR_blend_equation_advanced", | 1201 "GL_KHR_blend_equation_advanced_coherent GL_KHR_blend_equation_advanced", |
1189 command_line); | 1202 command_line); |
1190 EXPECT_FALSE(info_->feature_flags().blend_equation_advanced); | 1203 EXPECT_FALSE(info_->feature_flags().blend_equation_advanced); |
1191 EXPECT_FALSE(info_->feature_flags().blend_equation_advanced_coherent); | 1204 EXPECT_FALSE(info_->feature_flags().blend_equation_advanced_coherent); |
1192 } | 1205 } |
1193 | 1206 |
1194 TEST_P(FeatureInfoTest, InitializeCHROMIUM_path_rendering) { | 1207 TEST_P(FeatureInfoTest, InitializeCHROMIUM_path_rendering_no_cmdline_switch) { |
1195 SetupInitExpectationsWithGLVersion( | 1208 SetupInitExpectationsWithGLVersion( |
1196 "GL_ARB_compatibility GL_NV_path_rendering GL_EXT_direct_state_access", | 1209 "GL_ARB_compatibility GL_NV_path_rendering GL_EXT_direct_state_access", |
1197 "", "4.3"); | 1210 "", "4.3"); |
| 1211 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); |
| 1212 EXPECT_THAT(info_->extensions(), |
| 1213 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); |
| 1214 } |
| 1215 |
| 1216 TEST_P(FeatureInfoTest, InitializeCHROMIUM_path_rendering) { |
| 1217 base::CommandLine command_line(0, NULL); |
| 1218 command_line.AppendSwitch(switches::kEnableGLPathRendering); |
| 1219 SetupInitExpectationsWithGLVersionAndCommandLine( |
| 1220 "GL_ARB_compatibility GL_NV_path_rendering GL_EXT_direct_state_access", |
| 1221 "", "4.3", command_line); |
1198 EXPECT_TRUE(info_->feature_flags().chromium_path_rendering); | 1222 EXPECT_TRUE(info_->feature_flags().chromium_path_rendering); |
1199 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_path_rendering")); | 1223 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_path_rendering")); |
1200 } | 1224 } |
1201 | 1225 |
1202 TEST_P(FeatureInfoTest, InitializeCHROMIUM_path_rendering2) { | 1226 TEST_P(FeatureInfoTest, InitializeCHROMIUM_path_rendering2) { |
1203 SetupInitExpectationsWithGLVersion( | 1227 base::CommandLine command_line(0, NULL); |
1204 "GL_NV_path_rendering", "", "OpenGL ES 3.1"); | 1228 command_line.AppendSwitch(switches::kEnableGLPathRendering); |
| 1229 SetupInitExpectationsWithGLVersionAndCommandLine( |
| 1230 "GL_NV_path_rendering", "", "OpenGL ES 3.1", command_line); |
1205 EXPECT_TRUE(info_->feature_flags().chromium_path_rendering); | 1231 EXPECT_TRUE(info_->feature_flags().chromium_path_rendering); |
1206 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_path_rendering")); | 1232 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_path_rendering")); |
1207 } | 1233 } |
1208 | 1234 |
1209 TEST_P(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering) { | 1235 TEST_P(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering) { |
1210 SetupInitExpectationsWithGLVersion("GL_ARB_compatibility", "", "4.3"); | 1236 base::CommandLine command_line(0, NULL); |
| 1237 command_line.AppendSwitch(switches::kEnableGLPathRendering); |
| 1238 SetupInitExpectationsWithGLVersionAndCommandLine("GL_ARB_compatibility", "", |
| 1239 "4.3", command_line); |
1211 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); | 1240 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); |
1212 EXPECT_THAT(info_->extensions(), | 1241 EXPECT_THAT(info_->extensions(), |
1213 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); | 1242 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); |
1214 } | 1243 } |
1215 | 1244 |
1216 TEST_P(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering2) { | 1245 TEST_P(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering2) { |
1217 SetupInitExpectationsWithGLVersion( | 1246 base::CommandLine command_line(0, NULL); |
1218 "GL_ARB_compatibility GL_NV_path_rendering", "", "4.3"); | 1247 command_line.AppendSwitch(switches::kEnableGLPathRendering); |
| 1248 SetupInitExpectationsWithGLVersionAndCommandLine( |
| 1249 "GL_ARB_compatibility GL_NV_path_rendering", "", "4.3", command_line); |
1219 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); | 1250 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); |
1220 EXPECT_THAT(info_->extensions(), | 1251 EXPECT_THAT(info_->extensions(), |
1221 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); | 1252 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); |
1222 } | 1253 } |
1223 | 1254 |
1224 TEST_P(FeatureInfoTest, InitializeNoKHR_blend_equation_advanced) { | 1255 TEST_P(FeatureInfoTest, InitializeNoKHR_blend_equation_advanced) { |
1225 SetupInitExpectationsWithGLVersion("GL_ARB_compatibility", "", "4.3"); | 1256 SetupInitExpectationsWithGLVersion("GL_ARB_compatibility", "", "4.3"); |
1226 EXPECT_FALSE(info_->feature_flags().blend_equation_advanced); | 1257 EXPECT_FALSE(info_->feature_flags().blend_equation_advanced); |
1227 EXPECT_THAT(info_->extensions(), | 1258 EXPECT_THAT(info_->extensions(), |
1228 Not(HasSubstr("GL_KHR_blend_equation_advanced"))); | 1259 Not(HasSubstr("GL_KHR_blend_equation_advanced"))); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1279 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(GL_RED_EXT)); | 1310 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(GL_RED_EXT)); |
1280 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(GL_RG_EXT)); | 1311 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(GL_RG_EXT)); |
1281 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid(GL_RED_EXT)); | 1312 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid(GL_RED_EXT)); |
1282 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid(GL_RG_EXT)); | 1313 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid(GL_RG_EXT)); |
1283 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid(GL_R8_EXT)); | 1314 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid(GL_R8_EXT)); |
1284 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid(GL_RG8_EXT)); | 1315 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid(GL_RG8_EXT)); |
1285 } | 1316 } |
1286 | 1317 |
1287 } // namespace gles2 | 1318 } // namespace gles2 |
1288 } // namespace gpu | 1319 } // namespace gpu |
OLD | NEW |