Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: gpu/command_buffer/service/feature_info_unittest.cc

Issue 23660006: FeatureInfo: Remove allowed_extensions and init workarounds early (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix android_webview build Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/feature_info.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698