| 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_switches.h" | 10 #include "gpu/command_buffer/service/gpu_switches.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 } | 38 } |
| 39 | 39 |
| 40 void SetupInitExpectations(const char* extensions) { | 40 void SetupInitExpectations(const char* extensions) { |
| 41 SetupInitExpectationsWithGLVersion(extensions, ""); | 41 SetupInitExpectationsWithGLVersion(extensions, ""); |
| 42 } | 42 } |
| 43 | 43 |
| 44 void SetupInitExpectationsWithGLVersion( | 44 void SetupInitExpectationsWithGLVersion( |
| 45 const char* extensions, const char* version) { | 45 const char* extensions, const char* version) { |
| 46 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( | 46 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
| 47 gl_.get(), extensions, version); | 47 gl_.get(), extensions, version); |
| 48 info_ = new FeatureInfo(); |
| 49 info_->Initialize(); |
| 50 } |
| 51 |
| 52 void SetupWithCommandLine(const CommandLine& command_line) { |
| 53 info_ = new FeatureInfo(command_line); |
| 54 } |
| 55 |
| 56 void SetupInitExpectationsWithCommandLine( |
| 57 const char* extensions, const CommandLine& command_line) { |
| 58 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
| 59 gl_.get(), extensions, ""); |
| 60 info_ = new FeatureInfo(command_line); |
| 61 info_->Initialize(); |
| 62 } |
| 63 |
| 64 void SetupWithoutInit() { |
| 65 info_ = new FeatureInfo(); |
| 48 } | 66 } |
| 49 | 67 |
| 50 protected: | 68 protected: |
| 51 virtual void SetUp() { | 69 virtual void SetUp() { |
| 52 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); | 70 gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); |
| 53 ::gfx::GLInterface::SetGLInterface(gl_.get()); | 71 ::gfx::GLInterface::SetGLInterface(gl_.get()); |
| 54 info_ = new FeatureInfo(); | |
| 55 } | 72 } |
| 56 | 73 |
| 57 virtual void TearDown() { | 74 virtual void TearDown() { |
| 58 info_ = NULL; | 75 info_ = NULL; |
| 59 ::gfx::GLInterface::SetGLInterface(NULL); | 76 ::gfx::GLInterface::SetGLInterface(NULL); |
| 60 gl_.reset(); | 77 gl_.reset(); |
| 61 } | 78 } |
| 62 | 79 |
| 63 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_; | 80 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_; |
| 64 scoped_refptr<FeatureInfo> info_; | 81 scoped_refptr<FeatureInfo> info_; |
| 65 }; | 82 }; |
| 66 | 83 |
| 67 namespace { | 84 namespace { |
| 68 | 85 |
| 69 struct FormatInfo { | 86 struct FormatInfo { |
| 70 GLenum format; | 87 GLenum format; |
| 71 const GLenum* types; | 88 const GLenum* types; |
| 72 size_t count; | 89 size_t count; |
| 73 }; | 90 }; |
| 74 | 91 |
| 75 } // anonymous namespace. | 92 } // anonymous namespace. |
| 76 | 93 |
| 77 TEST_F(FeatureInfoTest, Basic) { | 94 TEST_F(FeatureInfoTest, Basic) { |
| 95 SetupWithoutInit(); |
| 78 // Test it starts off uninitialized. | 96 // Test it starts off uninitialized. |
| 79 EXPECT_FALSE(info_->feature_flags().chromium_framebuffer_multisample); | 97 EXPECT_FALSE(info_->feature_flags().chromium_framebuffer_multisample); |
| 80 EXPECT_FALSE(info_->feature_flags().multisampled_render_to_texture); | 98 EXPECT_FALSE(info_->feature_flags().multisampled_render_to_texture); |
| 81 EXPECT_FALSE(info_->feature_flags( | 99 EXPECT_FALSE(info_->feature_flags( |
| 82 ).use_img_for_multisampled_render_to_texture); | 100 ).use_img_for_multisampled_render_to_texture); |
| 83 EXPECT_FALSE(info_->feature_flags().oes_standard_derivatives); | 101 EXPECT_FALSE(info_->feature_flags().oes_standard_derivatives); |
| 84 EXPECT_FALSE(info_->feature_flags().npot_ok); | 102 EXPECT_FALSE(info_->feature_flags().npot_ok); |
| 85 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); | 103 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); |
| 86 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); | 104 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); |
| 87 EXPECT_FALSE(info_->feature_flags().oes_egl_image_external); | 105 EXPECT_FALSE(info_->feature_flags().oes_egl_image_external); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 info_->GetTextureFormatValidator(info.format); | 210 info_->GetTextureFormatValidator(info.format); |
| 193 for (size_t jj = 0; jj < info.count; ++jj) { | 211 for (size_t jj = 0; jj < info.count; ++jj) { |
| 194 EXPECT_FALSE(validator.IsValid(info.types[jj])); | 212 EXPECT_FALSE(validator.IsValid(info.types[jj])); |
| 195 } | 213 } |
| 196 } | 214 } |
| 197 } | 215 } |
| 198 } | 216 } |
| 199 | 217 |
| 200 TEST_F(FeatureInfoTest, InitializeNoExtensions) { | 218 TEST_F(FeatureInfoTest, InitializeNoExtensions) { |
| 201 SetupInitExpectations(""); | 219 SetupInitExpectations(""); |
| 202 info_->Initialize(NULL); | |
| 203 // Check default extensions are there | 220 // Check default extensions are there |
| 204 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_resource_safe")); | 221 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_resource_safe")); |
| 205 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_strict_attribs")); | 222 EXPECT_THAT(info_->extensions(), HasSubstr("GL_CHROMIUM_strict_attribs")); |
| 206 EXPECT_THAT(info_->extensions(), | 223 EXPECT_THAT(info_->extensions(), |
| 207 HasSubstr("GL_ANGLE_translated_shader_source")); | 224 HasSubstr("GL_ANGLE_translated_shader_source")); |
| 208 | 225 |
| 209 // Check a couple of random extensions that should not be there. | 226 // Check a couple of random extensions that should not be there. |
| 210 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_npot"))); | 227 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_npot"))); |
| 211 EXPECT_THAT(info_->extensions(), | 228 EXPECT_THAT(info_->extensions(), |
| 212 Not(HasSubstr("GL_EXT_texture_compression_dxt1"))); | 229 Not(HasSubstr("GL_EXT_texture_compression_dxt1"))); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( | 282 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 266 GL_DEPTH_COMPONENT16)); | 283 GL_DEPTH_COMPONENT16)); |
| 267 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( | 284 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 268 GL_DEPTH_COMPONENT32_OES)); | 285 GL_DEPTH_COMPONENT32_OES)); |
| 269 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( | 286 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 270 GL_DEPTH24_STENCIL8_OES)); | 287 GL_DEPTH24_STENCIL8_OES)); |
| 271 } | 288 } |
| 272 | 289 |
| 273 TEST_F(FeatureInfoTest, InitializeNPOTExtensionGLES) { | 290 TEST_F(FeatureInfoTest, InitializeNPOTExtensionGLES) { |
| 274 SetupInitExpectations("GL_OES_texture_npot"); | 291 SetupInitExpectations("GL_OES_texture_npot"); |
| 275 info_->Initialize(NULL); | |
| 276 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_npot")); | 292 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_npot")); |
| 277 EXPECT_TRUE(info_->feature_flags().npot_ok); | 293 EXPECT_TRUE(info_->feature_flags().npot_ok); |
| 278 } | 294 } |
| 279 | 295 |
| 280 TEST_F(FeatureInfoTest, InitializeNPOTExtensionGL) { | 296 TEST_F(FeatureInfoTest, InitializeNPOTExtensionGL) { |
| 281 SetupInitExpectations("GL_ARB_texture_non_power_of_two"); | 297 SetupInitExpectations("GL_ARB_texture_non_power_of_two"); |
| 282 info_->Initialize(NULL); | |
| 283 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_npot")); | 298 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_npot")); |
| 284 EXPECT_TRUE(info_->feature_flags().npot_ok); | 299 EXPECT_TRUE(info_->feature_flags().npot_ok); |
| 285 } | 300 } |
| 286 | 301 |
| 287 TEST_F(FeatureInfoTest, InitializeDXTExtensionGLES2) { | 302 TEST_F(FeatureInfoTest, InitializeDXTExtensionGLES2) { |
| 288 SetupInitExpectations("GL_EXT_texture_compression_dxt1"); | 303 SetupInitExpectations("GL_EXT_texture_compression_dxt1"); |
| 289 info_->Initialize(NULL); | |
| 290 EXPECT_THAT(info_->extensions(), | 304 EXPECT_THAT(info_->extensions(), |
| 291 HasSubstr("GL_EXT_texture_compression_dxt1")); | 305 HasSubstr("GL_EXT_texture_compression_dxt1")); |
| 292 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( | 306 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( |
| 293 GL_COMPRESSED_RGB_S3TC_DXT1_EXT)); | 307 GL_COMPRESSED_RGB_S3TC_DXT1_EXT)); |
| 294 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( | 308 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( |
| 295 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT)); | 309 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT)); |
| 296 EXPECT_FALSE(info_->validators()->compressed_texture_format.IsValid( | 310 EXPECT_FALSE(info_->validators()->compressed_texture_format.IsValid( |
| 297 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT)); | 311 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT)); |
| 298 EXPECT_FALSE(info_->validators()->compressed_texture_format.IsValid( | 312 EXPECT_FALSE(info_->validators()->compressed_texture_format.IsValid( |
| 299 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)); | 313 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)); |
| 300 } | 314 } |
| 301 | 315 |
| 302 TEST_F(FeatureInfoTest, InitializeDXTExtensionGL) { | 316 TEST_F(FeatureInfoTest, InitializeDXTExtensionGL) { |
| 303 SetupInitExpectations("GL_EXT_texture_compression_s3tc"); | 317 SetupInitExpectations("GL_EXT_texture_compression_s3tc"); |
| 304 info_->Initialize(NULL); | |
| 305 EXPECT_THAT(info_->extensions(), | 318 EXPECT_THAT(info_->extensions(), |
| 306 HasSubstr("GL_EXT_texture_compression_dxt1")); | 319 HasSubstr("GL_EXT_texture_compression_dxt1")); |
| 307 EXPECT_THAT(info_->extensions(), | 320 EXPECT_THAT(info_->extensions(), |
| 308 HasSubstr("GL_CHROMIUM_texture_compression_dxt3")); | 321 HasSubstr("GL_CHROMIUM_texture_compression_dxt3")); |
| 309 EXPECT_THAT(info_->extensions(), | 322 EXPECT_THAT(info_->extensions(), |
| 310 HasSubstr("GL_CHROMIUM_texture_compression_dxt5")); | 323 HasSubstr("GL_CHROMIUM_texture_compression_dxt5")); |
| 311 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( | 324 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( |
| 312 GL_COMPRESSED_RGB_S3TC_DXT1_EXT)); | 325 GL_COMPRESSED_RGB_S3TC_DXT1_EXT)); |
| 313 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( | 326 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( |
| 314 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT)); | 327 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT)); |
| 315 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( | 328 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( |
| 316 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT)); | 329 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT)); |
| 317 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( | 330 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( |
| 318 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)); | 331 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)); |
| 319 } | 332 } |
| 320 | 333 |
| 321 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888GLES2) { | 334 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888GLES2) { |
| 322 SetupInitExpectations("GL_EXT_texture_format_BGRA8888"); | 335 SetupInitExpectations("GL_EXT_texture_format_BGRA8888"); |
| 323 info_->Initialize(NULL); | |
| 324 EXPECT_THAT(info_->extensions(), | 336 EXPECT_THAT(info_->extensions(), |
| 325 HasSubstr("GL_EXT_texture_format_BGRA8888")); | 337 HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 326 EXPECT_TRUE(info_->validators()->texture_format.IsValid( | 338 EXPECT_TRUE(info_->validators()->texture_format.IsValid( |
| 327 GL_BGRA_EXT)); | 339 GL_BGRA_EXT)); |
| 328 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 340 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
| 329 GL_BGRA_EXT)); | 341 GL_BGRA_EXT)); |
| 330 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid( | 342 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid( |
| 331 GL_UNSIGNED_BYTE)); | 343 GL_UNSIGNED_BYTE)); |
| 332 } | 344 } |
| 333 | 345 |
| 334 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888GL) { | 346 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888GL) { |
| 335 SetupInitExpectations("GL_EXT_bgra"); | 347 SetupInitExpectations("GL_EXT_bgra"); |
| 336 info_->Initialize(NULL); | |
| 337 EXPECT_THAT(info_->extensions(), | 348 EXPECT_THAT(info_->extensions(), |
| 338 HasSubstr("GL_EXT_texture_format_BGRA8888")); | 349 HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 339 EXPECT_THAT(info_->extensions(), | 350 EXPECT_THAT(info_->extensions(), |
| 340 HasSubstr("GL_EXT_read_format_bgra")); | 351 HasSubstr("GL_EXT_read_format_bgra")); |
| 341 EXPECT_TRUE(info_->validators()->texture_format.IsValid( | 352 EXPECT_TRUE(info_->validators()->texture_format.IsValid( |
| 342 GL_BGRA_EXT)); | 353 GL_BGRA_EXT)); |
| 343 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 354 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
| 344 GL_BGRA_EXT)); | 355 GL_BGRA_EXT)); |
| 345 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( | 356 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( |
| 346 GL_BGRA_EXT)); | 357 GL_BGRA_EXT)); |
| 347 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid( | 358 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid( |
| 348 GL_UNSIGNED_BYTE)); | 359 GL_UNSIGNED_BYTE)); |
| 349 } | 360 } |
| 350 | 361 |
| 351 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888Apple) { | 362 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888Apple) { |
| 352 SetupInitExpectations("GL_APPLE_texture_format_BGRA8888"); | 363 SetupInitExpectations("GL_APPLE_texture_format_BGRA8888"); |
| 353 info_->Initialize(NULL); | |
| 354 EXPECT_THAT(info_->extensions(), | 364 EXPECT_THAT(info_->extensions(), |
| 355 HasSubstr("GL_EXT_texture_format_BGRA8888")); | 365 HasSubstr("GL_EXT_texture_format_BGRA8888")); |
| 356 EXPECT_TRUE(info_->validators()->texture_format.IsValid( | 366 EXPECT_TRUE(info_->validators()->texture_format.IsValid( |
| 357 GL_BGRA_EXT)); | 367 GL_BGRA_EXT)); |
| 358 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 368 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
| 359 GL_BGRA_EXT)); | 369 GL_BGRA_EXT)); |
| 360 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid( | 370 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid( |
| 361 GL_UNSIGNED_BYTE)); | 371 GL_UNSIGNED_BYTE)); |
| 362 } | 372 } |
| 363 | 373 |
| 364 TEST_F(FeatureInfoTest, InitializeEXT_read_format_bgra) { | 374 TEST_F(FeatureInfoTest, InitializeEXT_read_format_bgra) { |
| 365 SetupInitExpectations("GL_EXT_read_format_bgra"); | 375 SetupInitExpectations("GL_EXT_read_format_bgra"); |
| 366 info_->Initialize(NULL); | |
| 367 EXPECT_THAT(info_->extensions(), | 376 EXPECT_THAT(info_->extensions(), |
| 368 HasSubstr("GL_EXT_read_format_bgra")); | 377 HasSubstr("GL_EXT_read_format_bgra")); |
| 369 EXPECT_FALSE(info_->validators()->texture_format.IsValid( | 378 EXPECT_FALSE(info_->validators()->texture_format.IsValid( |
| 370 GL_BGRA_EXT)); | 379 GL_BGRA_EXT)); |
| 371 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( | 380 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( |
| 372 GL_BGRA_EXT)); | 381 GL_BGRA_EXT)); |
| 373 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( | 382 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( |
| 374 GL_BGRA_EXT)); | 383 GL_BGRA_EXT)); |
| 375 } | 384 } |
| 376 | 385 |
| 377 TEST_F(FeatureInfoTest, InitializeOES_texture_floatGLES2) { | 386 TEST_F(FeatureInfoTest, InitializeOES_texture_floatGLES2) { |
| 378 SetupInitExpectations("GL_OES_texture_float"); | 387 SetupInitExpectations("GL_OES_texture_float"); |
| 379 info_->Initialize(NULL); | |
| 380 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); | 388 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); |
| 381 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); | 389 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); |
| 382 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float")); | 390 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float")); |
| 383 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_half_float"))); | 391 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_half_float"))); |
| 384 EXPECT_THAT(info_->extensions(), | 392 EXPECT_THAT(info_->extensions(), |
| 385 Not(HasSubstr("GL_OES_texture_float_linear"))); | 393 Not(HasSubstr("GL_OES_texture_float_linear"))); |
| 386 EXPECT_THAT(info_->extensions(), | 394 EXPECT_THAT(info_->extensions(), |
| 387 Not(HasSubstr("GL_OES_texture_half_float_linear"))); | 395 Not(HasSubstr("GL_OES_texture_half_float_linear"))); |
| 388 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); | 396 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); |
| 389 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); | 397 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 404 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGBA).IsValid( | 412 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGBA).IsValid( |
| 405 GL_HALF_FLOAT_OES)); | 413 GL_HALF_FLOAT_OES)); |
| 406 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid( | 414 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid( |
| 407 GL_HALF_FLOAT_OES)); | 415 GL_HALF_FLOAT_OES)); |
| 408 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid( | 416 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid( |
| 409 GL_HALF_FLOAT_OES)); | 417 GL_HALF_FLOAT_OES)); |
| 410 } | 418 } |
| 411 | 419 |
| 412 TEST_F(FeatureInfoTest, InitializeOES_texture_float_linearGLES2) { | 420 TEST_F(FeatureInfoTest, InitializeOES_texture_float_linearGLES2) { |
| 413 SetupInitExpectations("GL_OES_texture_float GL_OES_texture_float_linear"); | 421 SetupInitExpectations("GL_OES_texture_float GL_OES_texture_float_linear"); |
| 414 info_->Initialize(NULL); | |
| 415 EXPECT_TRUE(info_->feature_flags().enable_texture_float_linear); | 422 EXPECT_TRUE(info_->feature_flags().enable_texture_float_linear); |
| 416 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); | 423 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); |
| 417 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float")); | 424 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float")); |
| 418 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_half_float"))); | 425 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_half_float"))); |
| 419 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float_linear")); | 426 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float_linear")); |
| 420 EXPECT_THAT(info_->extensions(), | 427 EXPECT_THAT(info_->extensions(), |
| 421 Not(HasSubstr("GL_OES_texture_half_float_linear"))); | 428 Not(HasSubstr("GL_OES_texture_half_float_linear"))); |
| 422 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); | 429 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); |
| 423 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); | 430 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); |
| 424 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid( | 431 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_ALPHA).IsValid( |
| (...skipping 13 matching lines...) Expand all Loading... |
| 438 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGBA).IsValid( | 445 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_RGBA).IsValid( |
| 439 GL_HALF_FLOAT_OES)); | 446 GL_HALF_FLOAT_OES)); |
| 440 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid( | 447 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid( |
| 441 GL_HALF_FLOAT_OES)); | 448 GL_HALF_FLOAT_OES)); |
| 442 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid( | 449 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid( |
| 443 GL_HALF_FLOAT_OES)); | 450 GL_HALF_FLOAT_OES)); |
| 444 } | 451 } |
| 445 | 452 |
| 446 TEST_F(FeatureInfoTest, InitializeOES_texture_half_floatGLES2) { | 453 TEST_F(FeatureInfoTest, InitializeOES_texture_half_floatGLES2) { |
| 447 SetupInitExpectations("GL_OES_texture_half_float"); | 454 SetupInitExpectations("GL_OES_texture_half_float"); |
| 448 info_->Initialize(NULL); | |
| 449 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); | 455 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); |
| 450 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); | 456 EXPECT_FALSE(info_->feature_flags().enable_texture_half_float_linear); |
| 451 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_float"))); | 457 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_float"))); |
| 452 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float")); | 458 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float")); |
| 453 EXPECT_THAT(info_->extensions(), | 459 EXPECT_THAT(info_->extensions(), |
| 454 Not(HasSubstr("GL_OES_texture_float_linear"))); | 460 Not(HasSubstr("GL_OES_texture_float_linear"))); |
| 455 EXPECT_THAT(info_->extensions(), | 461 EXPECT_THAT(info_->extensions(), |
| 456 Not(HasSubstr("GL_OES_texture_half_float_linear"))); | 462 Not(HasSubstr("GL_OES_texture_half_float_linear"))); |
| 457 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); | 463 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); |
| 458 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); | 464 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 474 GL_HALF_FLOAT_OES)); | 480 GL_HALF_FLOAT_OES)); |
| 475 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid( | 481 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid( |
| 476 GL_HALF_FLOAT_OES)); | 482 GL_HALF_FLOAT_OES)); |
| 477 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid( | 483 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid( |
| 478 GL_HALF_FLOAT_OES)); | 484 GL_HALF_FLOAT_OES)); |
| 479 } | 485 } |
| 480 | 486 |
| 481 TEST_F(FeatureInfoTest, InitializeOES_texture_half_float_linearGLES2) { | 487 TEST_F(FeatureInfoTest, InitializeOES_texture_half_float_linearGLES2) { |
| 482 SetupInitExpectations( | 488 SetupInitExpectations( |
| 483 "GL_OES_texture_half_float GL_OES_texture_half_float_linear"); | 489 "GL_OES_texture_half_float GL_OES_texture_half_float_linear"); |
| 484 info_->Initialize(NULL); | |
| 485 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); | 490 EXPECT_FALSE(info_->feature_flags().enable_texture_float_linear); |
| 486 EXPECT_TRUE(info_->feature_flags().enable_texture_half_float_linear); | 491 EXPECT_TRUE(info_->feature_flags().enable_texture_half_float_linear); |
| 487 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_float"))); | 492 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_OES_texture_float"))); |
| 488 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float")); | 493 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float")); |
| 489 EXPECT_THAT(info_->extensions(), | 494 EXPECT_THAT(info_->extensions(), |
| 490 Not(HasSubstr("GL_OES_texture_float_linear"))); | 495 Not(HasSubstr("GL_OES_texture_float_linear"))); |
| 491 EXPECT_THAT(info_->extensions(), | 496 EXPECT_THAT(info_->extensions(), |
| 492 HasSubstr("GL_OES_texture_half_float_linear")); | 497 HasSubstr("GL_OES_texture_half_float_linear")); |
| 493 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); | 498 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_FLOAT)); |
| 494 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); | 499 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_HALF_FLOAT_OES)); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 509 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGBA).IsValid( | 514 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_RGBA).IsValid( |
| 510 GL_HALF_FLOAT_OES)); | 515 GL_HALF_FLOAT_OES)); |
| 511 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid( | 516 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE).IsValid( |
| 512 GL_HALF_FLOAT_OES)); | 517 GL_HALF_FLOAT_OES)); |
| 513 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid( | 518 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_LUMINANCE_ALPHA).IsValid( |
| 514 GL_HALF_FLOAT_OES)); | 519 GL_HALF_FLOAT_OES)); |
| 515 } | 520 } |
| 516 | 521 |
| 517 TEST_F(FeatureInfoTest, InitializeEXT_framebuffer_multisample) { | 522 TEST_F(FeatureInfoTest, InitializeEXT_framebuffer_multisample) { |
| 518 SetupInitExpectations("GL_EXT_framebuffer_multisample"); | 523 SetupInitExpectations("GL_EXT_framebuffer_multisample"); |
| 519 info_->Initialize(NULL); | |
| 520 EXPECT_TRUE(info_->feature_flags().chromium_framebuffer_multisample); | 524 EXPECT_TRUE(info_->feature_flags().chromium_framebuffer_multisample); |
| 521 EXPECT_THAT(info_->extensions(), | 525 EXPECT_THAT(info_->extensions(), |
| 522 HasSubstr("GL_CHROMIUM_framebuffer_multisample")); | 526 HasSubstr("GL_CHROMIUM_framebuffer_multisample")); |
| 523 EXPECT_TRUE(info_->validators()->frame_buffer_target.IsValid( | 527 EXPECT_TRUE(info_->validators()->frame_buffer_target.IsValid( |
| 524 GL_READ_FRAMEBUFFER_EXT)); | 528 GL_READ_FRAMEBUFFER_EXT)); |
| 525 EXPECT_TRUE(info_->validators()->frame_buffer_target.IsValid( | 529 EXPECT_TRUE(info_->validators()->frame_buffer_target.IsValid( |
| 526 GL_DRAW_FRAMEBUFFER_EXT)); | 530 GL_DRAW_FRAMEBUFFER_EXT)); |
| 527 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( | 531 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( |
| 528 GL_READ_FRAMEBUFFER_BINDING_EXT)); | 532 GL_READ_FRAMEBUFFER_BINDING_EXT)); |
| 529 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( | 533 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( |
| 530 GL_MAX_SAMPLES_EXT)); | 534 GL_MAX_SAMPLES_EXT)); |
| 531 EXPECT_TRUE(info_->validators()->render_buffer_parameter.IsValid( | 535 EXPECT_TRUE(info_->validators()->render_buffer_parameter.IsValid( |
| 532 GL_RENDERBUFFER_SAMPLES_EXT)); | 536 GL_RENDERBUFFER_SAMPLES_EXT)); |
| 533 } | 537 } |
| 534 | 538 |
| 535 TEST_F(FeatureInfoTest, InitializeEXT_multisampled_render_to_texture) { | 539 TEST_F(FeatureInfoTest, InitializeEXT_multisampled_render_to_texture) { |
| 536 SetupInitExpectations("GL_EXT_multisampled_render_to_texture"); | 540 SetupInitExpectations("GL_EXT_multisampled_render_to_texture"); |
| 537 info_->Initialize(NULL); | |
| 538 EXPECT_TRUE(info_->feature_flags( | 541 EXPECT_TRUE(info_->feature_flags( |
| 539 ).multisampled_render_to_texture); | 542 ).multisampled_render_to_texture); |
| 540 EXPECT_FALSE(info_->feature_flags( | 543 EXPECT_FALSE(info_->feature_flags( |
| 541 ).use_img_for_multisampled_render_to_texture); | 544 ).use_img_for_multisampled_render_to_texture); |
| 542 EXPECT_THAT(info_->extensions(), | 545 EXPECT_THAT(info_->extensions(), |
| 543 HasSubstr("GL_EXT_multisampled_render_to_texture")); | 546 HasSubstr("GL_EXT_multisampled_render_to_texture")); |
| 544 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( | 547 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( |
| 545 GL_MAX_SAMPLES_EXT)); | 548 GL_MAX_SAMPLES_EXT)); |
| 546 EXPECT_TRUE(info_->validators()->render_buffer_parameter.IsValid( | 549 EXPECT_TRUE(info_->validators()->render_buffer_parameter.IsValid( |
| 547 GL_RENDERBUFFER_SAMPLES_EXT)); | 550 GL_RENDERBUFFER_SAMPLES_EXT)); |
| 548 EXPECT_TRUE(info_->validators()->frame_buffer_parameter.IsValid( | 551 EXPECT_TRUE(info_->validators()->frame_buffer_parameter.IsValid( |
| 549 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT)); | 552 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT)); |
| 550 } | 553 } |
| 551 | 554 |
| 552 TEST_F(FeatureInfoTest, InitializeIMG_multisampled_render_to_texture) { | 555 TEST_F(FeatureInfoTest, InitializeIMG_multisampled_render_to_texture) { |
| 553 SetupInitExpectations("GL_IMG_multisampled_render_to_texture"); | 556 SetupInitExpectations("GL_IMG_multisampled_render_to_texture"); |
| 554 info_->Initialize(NULL); | |
| 555 EXPECT_TRUE(info_->feature_flags( | 557 EXPECT_TRUE(info_->feature_flags( |
| 556 ).use_img_for_multisampled_render_to_texture); | 558 ).use_img_for_multisampled_render_to_texture); |
| 557 EXPECT_TRUE(info_->feature_flags( | 559 EXPECT_TRUE(info_->feature_flags( |
| 558 ).use_img_for_multisampled_render_to_texture); | 560 ).use_img_for_multisampled_render_to_texture); |
| 559 EXPECT_THAT(info_->extensions(), | 561 EXPECT_THAT(info_->extensions(), |
| 560 HasSubstr("GL_EXT_multisampled_render_to_texture")); | 562 HasSubstr("GL_EXT_multisampled_render_to_texture")); |
| 561 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( | 563 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( |
| 562 GL_MAX_SAMPLES_EXT)); | 564 GL_MAX_SAMPLES_EXT)); |
| 563 EXPECT_TRUE(info_->validators()->render_buffer_parameter.IsValid( | 565 EXPECT_TRUE(info_->validators()->render_buffer_parameter.IsValid( |
| 564 GL_RENDERBUFFER_SAMPLES_EXT)); | 566 GL_RENDERBUFFER_SAMPLES_EXT)); |
| 565 EXPECT_TRUE(info_->validators()->frame_buffer_parameter.IsValid( | 567 EXPECT_TRUE(info_->validators()->frame_buffer_parameter.IsValid( |
| 566 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT)); | 568 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT)); |
| 567 } | 569 } |
| 568 | 570 |
| 569 TEST_F(FeatureInfoTest, InitializeEXT_texture_filter_anisotropic) { | 571 TEST_F(FeatureInfoTest, InitializeEXT_texture_filter_anisotropic) { |
| 570 SetupInitExpectations("GL_EXT_texture_filter_anisotropic"); | 572 SetupInitExpectations("GL_EXT_texture_filter_anisotropic"); |
| 571 info_->Initialize(NULL); | |
| 572 EXPECT_THAT(info_->extensions(), | 573 EXPECT_THAT(info_->extensions(), |
| 573 HasSubstr("GL_EXT_texture_filter_anisotropic")); | 574 HasSubstr("GL_EXT_texture_filter_anisotropic")); |
| 574 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid( | 575 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid( |
| 575 GL_TEXTURE_MAX_ANISOTROPY_EXT)); | 576 GL_TEXTURE_MAX_ANISOTROPY_EXT)); |
| 576 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( | 577 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( |
| 577 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT)); | 578 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT)); |
| 578 } | 579 } |
| 579 | 580 |
| 580 TEST_F(FeatureInfoTest, InitializeEXT_ARB_depth_texture) { | 581 TEST_F(FeatureInfoTest, InitializeEXT_ARB_depth_texture) { |
| 581 SetupInitExpectations("GL_ARB_depth_texture"); | 582 SetupInitExpectations("GL_ARB_depth_texture"); |
| 582 info_->Initialize(NULL); | |
| 583 EXPECT_THAT(info_->extensions(), | 583 EXPECT_THAT(info_->extensions(), |
| 584 HasSubstr("GL_GOOGLE_depth_texture")); | 584 HasSubstr("GL_GOOGLE_depth_texture")); |
| 585 EXPECT_THAT(info_->extensions(), | 585 EXPECT_THAT(info_->extensions(), |
| 586 HasSubstr("GL_CHROMIUM_depth_texture")); | 586 HasSubstr("GL_CHROMIUM_depth_texture")); |
| 587 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 587 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
| 588 GL_DEPTH_COMPONENT)); | 588 GL_DEPTH_COMPONENT)); |
| 589 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); | 589 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); |
| 590 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL)); | 590 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL)); |
| 591 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); | 591 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); |
| 592 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); | 592 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); |
| 593 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( | 593 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( |
| 594 GL_UNSIGNED_SHORT)); | 594 GL_UNSIGNED_SHORT)); |
| 595 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( | 595 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( |
| 596 GL_UNSIGNED_INT)); | 596 GL_UNSIGNED_INT)); |
| 597 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid( | 597 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid( |
| 598 GL_UNSIGNED_INT_24_8)); | 598 GL_UNSIGNED_INT_24_8)); |
| 599 } | 599 } |
| 600 | 600 |
| 601 TEST_F(FeatureInfoTest, InitializeOES_ARB_depth_texture) { | 601 TEST_F(FeatureInfoTest, InitializeOES_ARB_depth_texture) { |
| 602 SetupInitExpectations("GL_OES_depth_texture"); | 602 SetupInitExpectations("GL_OES_depth_texture"); |
| 603 info_->Initialize(NULL); | |
| 604 EXPECT_THAT(info_->extensions(), | 603 EXPECT_THAT(info_->extensions(), |
| 605 HasSubstr("GL_GOOGLE_depth_texture")); | 604 HasSubstr("GL_GOOGLE_depth_texture")); |
| 606 EXPECT_THAT(info_->extensions(), | 605 EXPECT_THAT(info_->extensions(), |
| 607 HasSubstr("GL_CHROMIUM_depth_texture")); | 606 HasSubstr("GL_CHROMIUM_depth_texture")); |
| 608 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 607 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
| 609 GL_DEPTH_COMPONENT)); | 608 GL_DEPTH_COMPONENT)); |
| 610 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); | 609 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); |
| 611 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL)); | 610 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL)); |
| 612 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); | 611 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); |
| 613 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); | 612 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); |
| 614 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( | 613 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( |
| 615 GL_UNSIGNED_SHORT)); | 614 GL_UNSIGNED_SHORT)); |
| 616 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( | 615 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( |
| 617 GL_UNSIGNED_INT)); | 616 GL_UNSIGNED_INT)); |
| 618 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid( | 617 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid( |
| 619 GL_UNSIGNED_INT_24_8)); | 618 GL_UNSIGNED_INT_24_8)); |
| 620 } | 619 } |
| 621 | 620 |
| 622 TEST_F(FeatureInfoTest, InitializeANGLE_depth_texture) { | 621 TEST_F(FeatureInfoTest, InitializeANGLE_depth_texture) { |
| 623 SetupInitExpectations("GL_ANGLE_depth_texture"); | 622 SetupInitExpectations("GL_ANGLE_depth_texture"); |
| 624 info_->Initialize(NULL); | |
| 625 EXPECT_THAT(info_->extensions(), | 623 EXPECT_THAT(info_->extensions(), |
| 626 HasSubstr("GL_GOOGLE_depth_texture")); | 624 HasSubstr("GL_GOOGLE_depth_texture")); |
| 627 EXPECT_THAT(info_->extensions(), | 625 EXPECT_THAT(info_->extensions(), |
| 628 HasSubstr("GL_CHROMIUM_depth_texture")); | 626 HasSubstr("GL_CHROMIUM_depth_texture")); |
| 629 EXPECT_THAT(info_->extensions(), | 627 EXPECT_THAT(info_->extensions(), |
| 630 Not(HasSubstr("GL_ANGLE_depth_texture"))); | 628 Not(HasSubstr("GL_ANGLE_depth_texture"))); |
| 631 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 629 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
| 632 GL_DEPTH_COMPONENT)); | 630 GL_DEPTH_COMPONENT)); |
| 633 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); | 631 EXPECT_TRUE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); |
| 634 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL)); | 632 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_STENCIL)); |
| 635 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); | 633 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); |
| 636 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); | 634 EXPECT_TRUE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); |
| 637 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( | 635 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 638 GL_DEPTH_COMPONENT16)); | 636 GL_DEPTH_COMPONENT16)); |
| 639 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( | 637 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 640 GL_DEPTH_COMPONENT32_OES)); | 638 GL_DEPTH_COMPONENT32_OES)); |
| 641 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( | 639 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid( |
| 642 GL_DEPTH24_STENCIL8_OES)); | 640 GL_DEPTH24_STENCIL8_OES)); |
| 643 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( | 641 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( |
| 644 GL_UNSIGNED_SHORT)); | 642 GL_UNSIGNED_SHORT)); |
| 645 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( | 643 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( |
| 646 GL_UNSIGNED_INT)); | 644 GL_UNSIGNED_INT)); |
| 647 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid( | 645 EXPECT_FALSE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid( |
| 648 GL_UNSIGNED_INT_24_8)); | 646 GL_UNSIGNED_INT_24_8)); |
| 649 } | 647 } |
| 650 | 648 |
| 651 TEST_F(FeatureInfoTest, InitializeEXT_packed_depth_stencil) { | 649 TEST_F(FeatureInfoTest, InitializeEXT_packed_depth_stencil) { |
| 652 SetupInitExpectations("GL_EXT_packed_depth_stencil"); | 650 SetupInitExpectations("GL_EXT_packed_depth_stencil"); |
| 653 info_->Initialize(NULL); | |
| 654 EXPECT_THAT(info_->extensions(), | 651 EXPECT_THAT(info_->extensions(), |
| 655 HasSubstr("GL_OES_packed_depth_stencil")); | 652 HasSubstr("GL_OES_packed_depth_stencil")); |
| 656 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( | 653 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( |
| 657 GL_DEPTH24_STENCIL8)); | 654 GL_DEPTH24_STENCIL8)); |
| 658 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( | 655 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( |
| 659 GL_DEPTH_COMPONENT)); | 656 GL_DEPTH_COMPONENT)); |
| 660 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); | 657 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); |
| 661 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); | 658 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); |
| 662 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); | 659 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); |
| 663 } | 660 } |
| 664 | 661 |
| 665 TEST_F(FeatureInfoTest, InitializeOES_packed_depth_stencil) { | 662 TEST_F(FeatureInfoTest, InitializeOES_packed_depth_stencil) { |
| 666 SetupInitExpectations("GL_OES_packed_depth_stencil"); | 663 SetupInitExpectations("GL_OES_packed_depth_stencil"); |
| 667 info_->Initialize(NULL); | |
| 668 EXPECT_THAT(info_->extensions(), | 664 EXPECT_THAT(info_->extensions(), |
| 669 HasSubstr("GL_OES_packed_depth_stencil")); | 665 HasSubstr("GL_OES_packed_depth_stencil")); |
| 670 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( | 666 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( |
| 671 GL_DEPTH24_STENCIL8)); | 667 GL_DEPTH24_STENCIL8)); |
| 672 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( | 668 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( |
| 673 GL_DEPTH_COMPONENT)); | 669 GL_DEPTH_COMPONENT)); |
| 674 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); | 670 EXPECT_FALSE(info_->validators()->texture_format.IsValid(GL_DEPTH_COMPONENT)); |
| 675 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); | 671 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_SHORT)); |
| 676 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); | 672 EXPECT_FALSE(info_->validators()->pixel_type.IsValid(GL_UNSIGNED_INT)); |
| 677 } | 673 } |
| 678 | 674 |
| 679 TEST_F(FeatureInfoTest, | 675 TEST_F(FeatureInfoTest, |
| 680 InitializeOES_packed_depth_stencil_and_GL_ARB_depth_texture) { | 676 InitializeOES_packed_depth_stencil_and_GL_ARB_depth_texture) { |
| 681 SetupInitExpectations("GL_OES_packed_depth_stencil GL_ARB_depth_texture"); | 677 SetupInitExpectations("GL_OES_packed_depth_stencil GL_ARB_depth_texture"); |
| 682 info_->Initialize(NULL); | |
| 683 EXPECT_THAT(info_->extensions(), | 678 EXPECT_THAT(info_->extensions(), |
| 684 HasSubstr("GL_OES_packed_depth_stencil")); | 679 HasSubstr("GL_OES_packed_depth_stencil")); |
| 685 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( | 680 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( |
| 686 GL_DEPTH24_STENCIL8)); | 681 GL_DEPTH24_STENCIL8)); |
| 687 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( | 682 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( |
| 688 GL_DEPTH_STENCIL)); | 683 GL_DEPTH_STENCIL)); |
| 689 EXPECT_TRUE(info_->validators()->texture_format.IsValid( | 684 EXPECT_TRUE(info_->validators()->texture_format.IsValid( |
| 690 GL_DEPTH_STENCIL)); | 685 GL_DEPTH_STENCIL)); |
| 691 EXPECT_TRUE(info_->validators()->pixel_type.IsValid( | 686 EXPECT_TRUE(info_->validators()->pixel_type.IsValid( |
| 692 GL_UNSIGNED_INT_24_8)); | 687 GL_UNSIGNED_INT_24_8)); |
| 693 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( | 688 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( |
| 694 GL_UNSIGNED_SHORT)); | 689 GL_UNSIGNED_SHORT)); |
| 695 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( | 690 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_COMPONENT).IsValid( |
| 696 GL_UNSIGNED_INT)); | 691 GL_UNSIGNED_INT)); |
| 697 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid( | 692 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_DEPTH_STENCIL).IsValid( |
| 698 GL_UNSIGNED_INT_24_8)); | 693 GL_UNSIGNED_INT_24_8)); |
| 699 } | 694 } |
| 700 | 695 |
| 701 TEST_F(FeatureInfoTest, InitializeOES_depth24) { | 696 TEST_F(FeatureInfoTest, InitializeOES_depth24) { |
| 702 SetupInitExpectations("GL_OES_depth24"); | 697 SetupInitExpectations("GL_OES_depth24"); |
| 703 info_->Initialize(NULL); | |
| 704 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_depth24")); | 698 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_depth24")); |
| 705 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( | 699 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( |
| 706 GL_DEPTH_COMPONENT24)); | 700 GL_DEPTH_COMPONENT24)); |
| 707 } | 701 } |
| 708 | 702 |
| 709 TEST_F(FeatureInfoTest, InitializeOES_standard_derivatives) { | 703 TEST_F(FeatureInfoTest, InitializeOES_standard_derivatives) { |
| 710 SetupInitExpectations("GL_OES_standard_derivatives"); | 704 SetupInitExpectations("GL_OES_standard_derivatives"); |
| 711 info_->Initialize(NULL); | |
| 712 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_standard_derivatives")); | 705 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_standard_derivatives")); |
| 713 EXPECT_TRUE(info_->feature_flags().oes_standard_derivatives); | 706 EXPECT_TRUE(info_->feature_flags().oes_standard_derivatives); |
| 714 EXPECT_TRUE(info_->validators()->hint_target.IsValid( | 707 EXPECT_TRUE(info_->validators()->hint_target.IsValid( |
| 715 GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES)); | 708 GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES)); |
| 716 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( | 709 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( |
| 717 GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES)); | 710 GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES)); |
| 718 } | 711 } |
| 719 | 712 |
| 720 TEST_F(FeatureInfoTest, InitializeOES_rgb8_rgba8) { | 713 TEST_F(FeatureInfoTest, InitializeOES_rgb8_rgba8) { |
| 721 SetupInitExpectations("GL_OES_rgb8_rgba8"); | 714 SetupInitExpectations("GL_OES_rgb8_rgba8"); |
| 722 info_->Initialize(NULL); | |
| 723 EXPECT_THAT(info_->extensions(), | 715 EXPECT_THAT(info_->extensions(), |
| 724 HasSubstr("GL_OES_rgb8_rgba8")); | 716 HasSubstr("GL_OES_rgb8_rgba8")); |
| 725 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( | 717 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( |
| 726 GL_RGB8_OES)); | 718 GL_RGB8_OES)); |
| 727 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( | 719 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( |
| 728 GL_RGBA8_OES)); | 720 GL_RGBA8_OES)); |
| 729 } | 721 } |
| 730 | 722 |
| 731 TEST_F(FeatureInfoTest, InitializeOES_EGL_image_external) { | 723 TEST_F(FeatureInfoTest, InitializeOES_EGL_image_external) { |
| 732 SetupInitExpectations("GL_OES_EGL_image_external"); | 724 SetupInitExpectations("GL_OES_EGL_image_external"); |
| 733 info_->Initialize(NULL); | |
| 734 EXPECT_THAT(info_->extensions(), | 725 EXPECT_THAT(info_->extensions(), |
| 735 HasSubstr("GL_OES_EGL_image_external")); | 726 HasSubstr("GL_OES_EGL_image_external")); |
| 736 EXPECT_TRUE(info_->feature_flags().oes_egl_image_external); | 727 EXPECT_TRUE(info_->feature_flags().oes_egl_image_external); |
| 737 EXPECT_TRUE(info_->validators()->texture_bind_target.IsValid( | 728 EXPECT_TRUE(info_->validators()->texture_bind_target.IsValid( |
| 738 GL_TEXTURE_EXTERNAL_OES)); | 729 GL_TEXTURE_EXTERNAL_OES)); |
| 739 EXPECT_TRUE(info_->validators()->get_tex_param_target.IsValid( | 730 EXPECT_TRUE(info_->validators()->get_tex_param_target.IsValid( |
| 740 GL_TEXTURE_EXTERNAL_OES)); | 731 GL_TEXTURE_EXTERNAL_OES)); |
| 741 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid( | 732 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid( |
| 742 GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES)); | 733 GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES)); |
| 743 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( | 734 EXPECT_TRUE(info_->validators()->g_l_state.IsValid( |
| 744 GL_TEXTURE_BINDING_EXTERNAL_OES)); | 735 GL_TEXTURE_BINDING_EXTERNAL_OES)); |
| 745 } | 736 } |
| 746 | 737 |
| 747 TEST_F(FeatureInfoTest, InitializeOES_compressed_ETC1_RGB8_texture) { | 738 TEST_F(FeatureInfoTest, InitializeOES_compressed_ETC1_RGB8_texture) { |
| 748 SetupInitExpectations("GL_OES_compressed_ETC1_RGB8_texture"); | 739 SetupInitExpectations("GL_OES_compressed_ETC1_RGB8_texture"); |
| 749 info_->Initialize(NULL); | |
| 750 EXPECT_THAT(info_->extensions(), | 740 EXPECT_THAT(info_->extensions(), |
| 751 HasSubstr("GL_OES_compressed_ETC1_RGB8_texture")); | 741 HasSubstr("GL_OES_compressed_ETC1_RGB8_texture")); |
| 752 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( | 742 EXPECT_TRUE(info_->validators()->compressed_texture_format.IsValid( |
| 753 GL_ETC1_RGB8_OES)); | 743 GL_ETC1_RGB8_OES)); |
| 754 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( | 744 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( |
| 755 GL_ETC1_RGB8_OES)); | 745 GL_ETC1_RGB8_OES)); |
| 756 } | 746 } |
| 757 | 747 |
| 758 TEST_F(FeatureInfoTest, InitializeCHROMIUM_stream_texture) { | 748 TEST_F(FeatureInfoTest, InitializeCHROMIUM_stream_texture) { |
| 759 SetupInitExpectations("GL_CHROMIUM_stream_texture"); | 749 SetupInitExpectations("GL_CHROMIUM_stream_texture"); |
| 760 info_->Initialize(NULL); | |
| 761 EXPECT_THAT(info_->extensions(), | 750 EXPECT_THAT(info_->extensions(), |
| 762 HasSubstr("GL_CHROMIUM_stream_texture")); | 751 HasSubstr("GL_CHROMIUM_stream_texture")); |
| 763 EXPECT_TRUE(info_->feature_flags().chromium_stream_texture); | 752 EXPECT_TRUE(info_->feature_flags().chromium_stream_texture); |
| 764 } | 753 } |
| 765 | 754 |
| 766 TEST_F(FeatureInfoTest, InitializeEXT_occlusion_query_boolean) { | 755 TEST_F(FeatureInfoTest, InitializeEXT_occlusion_query_boolean) { |
| 767 SetupInitExpectations("GL_EXT_occlusion_query_boolean"); | 756 SetupInitExpectations("GL_EXT_occlusion_query_boolean"); |
| 768 info_->Initialize(NULL); | |
| 769 EXPECT_THAT(info_->extensions(), | 757 EXPECT_THAT(info_->extensions(), |
| 770 HasSubstr("GL_EXT_occlusion_query_boolean")); | 758 HasSubstr("GL_EXT_occlusion_query_boolean")); |
| 771 EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean); | 759 EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean); |
| 772 EXPECT_FALSE(info_->feature_flags( | 760 EXPECT_FALSE(info_->feature_flags( |
| 773 ).use_arb_occlusion_query2_for_occlusion_query_boolean); | 761 ).use_arb_occlusion_query2_for_occlusion_query_boolean); |
| 774 EXPECT_FALSE(info_->feature_flags( | 762 EXPECT_FALSE(info_->feature_flags( |
| 775 ).use_arb_occlusion_query_for_occlusion_query_boolean); | 763 ).use_arb_occlusion_query_for_occlusion_query_boolean); |
| 776 } | 764 } |
| 777 | 765 |
| 778 TEST_F(FeatureInfoTest, InitializeARB_occlusion_query) { | 766 TEST_F(FeatureInfoTest, InitializeARB_occlusion_query) { |
| 779 SetupInitExpectations("GL_ARB_occlusion_query"); | 767 SetupInitExpectations("GL_ARB_occlusion_query"); |
| 780 info_->Initialize(NULL); | |
| 781 EXPECT_THAT(info_->extensions(), | 768 EXPECT_THAT(info_->extensions(), |
| 782 HasSubstr("GL_EXT_occlusion_query_boolean")); | 769 HasSubstr("GL_EXT_occlusion_query_boolean")); |
| 783 EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean); | 770 EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean); |
| 784 EXPECT_FALSE(info_->feature_flags( | 771 EXPECT_FALSE(info_->feature_flags( |
| 785 ).use_arb_occlusion_query2_for_occlusion_query_boolean); | 772 ).use_arb_occlusion_query2_for_occlusion_query_boolean); |
| 786 EXPECT_TRUE(info_->feature_flags( | 773 EXPECT_TRUE(info_->feature_flags( |
| 787 ).use_arb_occlusion_query_for_occlusion_query_boolean); | 774 ).use_arb_occlusion_query_for_occlusion_query_boolean); |
| 788 } | 775 } |
| 789 | 776 |
| 790 TEST_F(FeatureInfoTest, InitializeARB_occlusion_query2) { | 777 TEST_F(FeatureInfoTest, InitializeARB_occlusion_query2) { |
| 791 SetupInitExpectations("GL_ARB_occlusion_query2 GL_ARB_occlusion_query2"); | 778 SetupInitExpectations("GL_ARB_occlusion_query2 GL_ARB_occlusion_query2"); |
| 792 info_->Initialize(NULL); | |
| 793 EXPECT_THAT(info_->extensions(), | 779 EXPECT_THAT(info_->extensions(), |
| 794 HasSubstr("GL_EXT_occlusion_query_boolean")); | 780 HasSubstr("GL_EXT_occlusion_query_boolean")); |
| 795 EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean); | 781 EXPECT_TRUE(info_->feature_flags().occlusion_query_boolean); |
| 796 EXPECT_TRUE(info_->feature_flags( | 782 EXPECT_TRUE(info_->feature_flags( |
| 797 ).use_arb_occlusion_query2_for_occlusion_query_boolean); | 783 ).use_arb_occlusion_query2_for_occlusion_query_boolean); |
| 798 EXPECT_FALSE(info_->feature_flags( | 784 EXPECT_FALSE(info_->feature_flags( |
| 799 ).use_arb_occlusion_query_for_occlusion_query_boolean); | 785 ).use_arb_occlusion_query_for_occlusion_query_boolean); |
| 800 } | 786 } |
| 801 | 787 |
| 802 TEST_F(FeatureInfoTest, InitializeOES_vertex_array_object) { | 788 TEST_F(FeatureInfoTest, InitializeOES_vertex_array_object) { |
| 803 SetupInitExpectations("GL_OES_vertex_array_object"); | 789 SetupInitExpectations("GL_OES_vertex_array_object"); |
| 804 info_->Initialize(NULL); | |
| 805 EXPECT_THAT(info_->extensions(), | 790 EXPECT_THAT(info_->extensions(), |
| 806 HasSubstr("GL_OES_vertex_array_object")); | 791 HasSubstr("GL_OES_vertex_array_object")); |
| 807 EXPECT_TRUE(info_->feature_flags().native_vertex_array_object); | 792 EXPECT_TRUE(info_->feature_flags().native_vertex_array_object); |
| 808 } | 793 } |
| 809 | 794 |
| 810 TEST_F(FeatureInfoTest, InitializeARB_vertex_array_object) { | 795 TEST_F(FeatureInfoTest, InitializeARB_vertex_array_object) { |
| 811 SetupInitExpectations("GL_ARB_vertex_array_object"); | 796 SetupInitExpectations("GL_ARB_vertex_array_object"); |
| 812 info_->Initialize(NULL); | |
| 813 EXPECT_THAT(info_->extensions(), | 797 EXPECT_THAT(info_->extensions(), |
| 814 HasSubstr("GL_OES_vertex_array_object")); | 798 HasSubstr("GL_OES_vertex_array_object")); |
| 815 EXPECT_TRUE(info_->feature_flags().native_vertex_array_object); | 799 EXPECT_TRUE(info_->feature_flags().native_vertex_array_object); |
| 816 } | 800 } |
| 817 | 801 |
| 818 TEST_F(FeatureInfoTest, InitializeAPPLE_vertex_array_object) { | 802 TEST_F(FeatureInfoTest, InitializeAPPLE_vertex_array_object) { |
| 819 SetupInitExpectations("GL_APPLE_vertex_array_object"); | 803 SetupInitExpectations("GL_APPLE_vertex_array_object"); |
| 820 info_->Initialize(NULL); | |
| 821 EXPECT_THAT(info_->extensions(), | 804 EXPECT_THAT(info_->extensions(), |
| 822 HasSubstr("GL_OES_vertex_array_object")); | 805 HasSubstr("GL_OES_vertex_array_object")); |
| 823 EXPECT_TRUE(info_->feature_flags().native_vertex_array_object); | 806 EXPECT_TRUE(info_->feature_flags().native_vertex_array_object); |
| 824 } | 807 } |
| 825 | 808 |
| 826 TEST_F(FeatureInfoTest, InitializeNo_vertex_array_object) { | 809 TEST_F(FeatureInfoTest, InitializeNo_vertex_array_object) { |
| 827 SetupInitExpectations(""); | 810 SetupInitExpectations(""); |
| 828 info_->Initialize(NULL); | |
| 829 // Even if the native extensions are not available the implementation | 811 // Even if the native extensions are not available the implementation |
| 830 // may still emulate the GL_OES_vertex_array_object functionality. In this | 812 // may still emulate the GL_OES_vertex_array_object functionality. In this |
| 831 // scenario native_vertex_array_object must be false. | 813 // scenario native_vertex_array_object must be false. |
| 832 EXPECT_THAT(info_->extensions(), | 814 EXPECT_THAT(info_->extensions(), |
| 833 HasSubstr("GL_OES_vertex_array_object")); | 815 HasSubstr("GL_OES_vertex_array_object")); |
| 834 EXPECT_FALSE(info_->feature_flags().native_vertex_array_object); | 816 EXPECT_FALSE(info_->feature_flags().native_vertex_array_object); |
| 835 } | 817 } |
| 836 | 818 |
| 837 TEST_F(FeatureInfoTest, InitializeOES_element_index_uint) { | 819 TEST_F(FeatureInfoTest, InitializeOES_element_index_uint) { |
| 838 SetupInitExpectations("GL_OES_element_index_uint"); | 820 SetupInitExpectations("GL_OES_element_index_uint"); |
| 839 info_->Initialize(NULL); | |
| 840 EXPECT_THAT(info_->extensions(), | 821 EXPECT_THAT(info_->extensions(), |
| 841 HasSubstr("GL_OES_element_index_uint")); | 822 HasSubstr("GL_OES_element_index_uint")); |
| 842 EXPECT_TRUE(info_->validators()->index_type.IsValid(GL_UNSIGNED_INT)); | 823 EXPECT_TRUE(info_->validators()->index_type.IsValid(GL_UNSIGNED_INT)); |
| 843 } | 824 } |
| 844 | 825 |
| 845 TEST_F(FeatureInfoTest, InitializeVAOsWithClientSideArrays) { | 826 TEST_F(FeatureInfoTest, InitializeVAOsWithClientSideArrays) { |
| 846 SetupInitExpectations("GL_OES_vertex_array_object"); | |
| 847 CommandLine command_line(0, NULL); | 827 CommandLine command_line(0, NULL); |
| 848 command_line.AppendSwitchASCII( | 828 command_line.AppendSwitchASCII( |
| 849 switches::kGpuDriverBugWorkarounds, | 829 switches::kGpuDriverBugWorkarounds, |
| 850 base::IntToString(gpu::USE_CLIENT_SIDE_ARRAYS_FOR_STREAM_BUFFERS)); | 830 base::IntToString(gpu::USE_CLIENT_SIDE_ARRAYS_FOR_STREAM_BUFFERS)); |
| 851 info_->AddFeatures(command_line); | 831 SetupInitExpectationsWithCommandLine("GL_OES_vertex_array_object", |
| 832 command_line); |
| 852 EXPECT_TRUE(info_->workarounds().use_client_side_arrays_for_stream_buffers); | 833 EXPECT_TRUE(info_->workarounds().use_client_side_arrays_for_stream_buffers); |
| 853 EXPECT_FALSE(info_->feature_flags().native_vertex_array_object); | 834 EXPECT_FALSE(info_->feature_flags().native_vertex_array_object); |
| 854 } | 835 } |
| 855 | 836 |
| 856 TEST_F(FeatureInfoTest, InitializeEXT_frag_depth) { | 837 TEST_F(FeatureInfoTest, InitializeEXT_frag_depth) { |
| 857 SetupInitExpectations("GL_EXT_frag_depth"); | 838 SetupInitExpectations("GL_EXT_frag_depth"); |
| 858 info_->Initialize(NULL); | |
| 859 EXPECT_TRUE(info_->feature_flags().ext_frag_depth); | 839 EXPECT_TRUE(info_->feature_flags().ext_frag_depth); |
| 860 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_frag_depth")); | 840 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_frag_depth")); |
| 861 } | 841 } |
| 862 | 842 |
| 863 TEST_F(FeatureInfoTest, InitializeSamplersWithARBSamplerObjects) { | 843 TEST_F(FeatureInfoTest, InitializeSamplersWithARBSamplerObjects) { |
| 864 SetupInitExpectationsWithGLVersion("GL_ARB_sampler_objects", "OpenGL 3.0"); | 844 SetupInitExpectationsWithGLVersion("GL_ARB_sampler_objects", "OpenGL 3.0"); |
| 865 info_->Initialize(NULL); | |
| 866 EXPECT_TRUE(info_->feature_flags().enable_samplers); | 845 EXPECT_TRUE(info_->feature_flags().enable_samplers); |
| 867 } | 846 } |
| 868 | 847 |
| 869 TEST_F(FeatureInfoTest, InitializeWithES3) { | 848 TEST_F(FeatureInfoTest, InitializeWithES3) { |
| 870 SetupInitExpectationsWithGLVersion("", "OpenGL ES 3.0"); | 849 SetupInitExpectationsWithGLVersion("", "OpenGL ES 3.0"); |
| 871 info_->Initialize(NULL); | |
| 872 EXPECT_TRUE(info_->feature_flags().enable_samplers); | 850 EXPECT_TRUE(info_->feature_flags().enable_samplers); |
| 873 EXPECT_TRUE(info_->feature_flags().map_buffer_range); | 851 EXPECT_TRUE(info_->feature_flags().map_buffer_range); |
| 874 EXPECT_FALSE(info_->feature_flags().use_async_readpixels); | 852 EXPECT_FALSE(info_->feature_flags().use_async_readpixels); |
| 875 } | 853 } |
| 876 | 854 |
| 877 TEST_F(FeatureInfoTest, InitializeWithoutSamplers) { | 855 TEST_F(FeatureInfoTest, InitializeWithoutSamplers) { |
| 878 SetupInitExpectationsWithGLVersion("", "OpenGL GL 3.0"); | 856 SetupInitExpectationsWithGLVersion("", "OpenGL GL 3.0"); |
| 879 info_->Initialize(NULL); | |
| 880 EXPECT_FALSE(info_->feature_flags().enable_samplers); | 857 EXPECT_FALSE(info_->feature_flags().enable_samplers); |
| 881 } | 858 } |
| 882 | 859 |
| 883 TEST_F(FeatureInfoTest, InitializeWithES3AndFences) { | 860 TEST_F(FeatureInfoTest, InitializeWithES3AndFences) { |
| 884 SetupInitExpectationsWithGLVersion("EGL_KHR_fence_sync", "OpenGL ES 3.0"); | 861 SetupInitExpectationsWithGLVersion("EGL_KHR_fence_sync", "OpenGL ES 3.0"); |
| 885 info_->Initialize(NULL); | |
| 886 EXPECT_TRUE(info_->feature_flags().use_async_readpixels); | 862 EXPECT_TRUE(info_->feature_flags().use_async_readpixels); |
| 887 } | 863 } |
| 888 | 864 |
| 889 TEST_F(FeatureInfoTest, ParseDriverBugWorkaroundsSingle) { | 865 TEST_F(FeatureInfoTest, ParseDriverBugWorkaroundsSingle) { |
| 890 SetupInitExpectations(""); | |
| 891 CommandLine command_line(0, NULL); | 866 CommandLine command_line(0, NULL); |
| 892 command_line.AppendSwitchASCII( | 867 command_line.AppendSwitchASCII( |
| 893 switches::kGpuDriverBugWorkarounds, | 868 switches::kGpuDriverBugWorkarounds, |
| 894 base::IntToString(gpu::EXIT_ON_CONTEXT_LOST)); | 869 base::IntToString(gpu::EXIT_ON_CONTEXT_LOST)); |
| 895 EXPECT_FALSE(info_->workarounds().exit_on_context_lost); | 870 // Workarounds should get parsed without the need for a context. |
| 896 info_->AddFeatures(command_line); | 871 SetupWithCommandLine(command_line); |
| 897 EXPECT_TRUE(info_->workarounds().exit_on_context_lost); | 872 EXPECT_TRUE(info_->workarounds().exit_on_context_lost); |
| 898 } | 873 } |
| 899 | 874 |
| 900 TEST_F(FeatureInfoTest, ParseDriverBugWorkaroundsMultiple) { | 875 TEST_F(FeatureInfoTest, ParseDriverBugWorkaroundsMultiple) { |
| 901 SetupInitExpectations(""); | |
| 902 CommandLine command_line(0, NULL); | 876 CommandLine command_line(0, NULL); |
| 903 command_line.AppendSwitchASCII( | 877 command_line.AppendSwitchASCII( |
| 904 switches::kGpuDriverBugWorkarounds, | 878 switches::kGpuDriverBugWorkarounds, |
| 905 base::IntToString(gpu::EXIT_ON_CONTEXT_LOST) + "," + | 879 base::IntToString(gpu::EXIT_ON_CONTEXT_LOST) + "," + |
| 906 base::IntToString(gpu::MAX_CUBE_MAP_TEXTURE_SIZE_LIMIT_1024) + "," + | 880 base::IntToString(gpu::MAX_CUBE_MAP_TEXTURE_SIZE_LIMIT_1024) + "," + |
| 907 base::IntToString(gpu::MAX_TEXTURE_SIZE_LIMIT_4096)); | 881 base::IntToString(gpu::MAX_TEXTURE_SIZE_LIMIT_4096)); |
| 908 EXPECT_FALSE(info_->workarounds().exit_on_context_lost); | 882 // Workarounds should get parsed without the need for a context. |
| 909 EXPECT_EQ(0, info_->workarounds().max_cube_map_texture_size); | 883 SetupWithCommandLine(command_line); |
| 910 EXPECT_EQ(0, info_->workarounds().max_texture_size); | |
| 911 info_->AddFeatures(command_line); | |
| 912 EXPECT_TRUE(info_->workarounds().exit_on_context_lost); | 884 EXPECT_TRUE(info_->workarounds().exit_on_context_lost); |
| 913 EXPECT_EQ(1024, info_->workarounds().max_cube_map_texture_size); | 885 EXPECT_EQ(1024, info_->workarounds().max_cube_map_texture_size); |
| 914 EXPECT_EQ(4096, info_->workarounds().max_texture_size); | 886 EXPECT_EQ(4096, info_->workarounds().max_texture_size); |
| 915 } | 887 } |
| 916 | 888 |
| 917 } // namespace gles2 | 889 } // namespace gles2 |
| 918 } // namespace gpu | 890 } // namespace gpu |
| OLD | NEW |