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

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

Issue 499283002: gpu: support immutable texture on Linux Mesa driver and GLES3. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CompleteHandlingOfGLESandBGRA. Apply CC Created 6 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
« no previous file with comments | « gpu/command_buffer/service/feature_info.cc ('k') | ui/gl/generate_bindings.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_service_test.h" 10 #include "gpu/command_buffer/service/gpu_service_test.h"
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 EXPECT_FALSE(info_->validators()->texture_format.IsValid( 426 EXPECT_FALSE(info_->validators()->texture_format.IsValid(
427 GL_BGRA_EXT)); 427 GL_BGRA_EXT));
428 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid( 428 EXPECT_FALSE(info_->validators()->texture_internal_format.IsValid(
429 GL_BGRA_EXT)); 429 GL_BGRA_EXT));
430 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( 430 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid(
431 GL_BGRA_EXT)); 431 GL_BGRA_EXT));
432 EXPECT_FALSE(info_->validators()->render_buffer_format.IsValid( 432 EXPECT_FALSE(info_->validators()->render_buffer_format.IsValid(
433 GL_BGRA8_EXT)); 433 GL_BGRA8_EXT));
434 } 434 }
435 435
436 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage) {
437 SetupInitExpectations("GL_EXT_texture_storage");
438 EXPECT_TRUE(info_->feature_flags().ext_texture_storage);
439 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
440 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid(
441 GL_TEXTURE_IMMUTABLE_FORMAT_EXT));
442 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
443 GL_BGRA8_EXT));
444 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
445 GL_RGBA32F_EXT));
446 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
447 GL_RGB32F_EXT));
448 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
449 GL_ALPHA32F_EXT));
450 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
451 GL_LUMINANCE32F_EXT));
452 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
453 GL_LUMINANCE_ALPHA32F_EXT));
454 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
455 GL_RGBA16F_EXT));
456 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
457 GL_RGB16F_EXT));
458 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
459 GL_ALPHA16F_EXT));
460 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
461 GL_LUMINANCE16F_EXT));
462 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
463 GL_LUMINANCE_ALPHA16F_EXT));
464 }
465
466 TEST_F(FeatureInfoTest, InitializeARB_texture_storage) {
467 SetupInitExpectations("GL_ARB_texture_storage");
468 EXPECT_TRUE(info_->feature_flags().ext_texture_storage);
469 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
470 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid(
471 GL_TEXTURE_IMMUTABLE_FORMAT_EXT));
472 }
473
474 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_BGRA) {
475 SetupInitExpectations("GL_EXT_texture_storage GL_EXT_bgra");
476 EXPECT_TRUE(info_->feature_flags().ext_texture_storage);
477 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
478 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
479 GL_BGRA8_EXT));
480 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
481 }
482
483 TEST_F(FeatureInfoTest, InitializeARB_texture_storage_BGRA) {
484 SetupInitExpectations("GL_ARB_texture_storage GL_EXT_bgra");
485 EXPECT_TRUE(info_->feature_flags().ext_texture_storage);
486 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
487 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
488 GL_BGRA8_EXT));
489 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
490 }
491
492 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_BGRA8888) {
493 SetupInitExpectations(
494 "GL_EXT_texture_storage GL_EXT_texture_format_BGRA8888");
495 EXPECT_TRUE(info_->feature_flags().ext_texture_storage);
496 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
497 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
498 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
499 GL_BGRA8_EXT));
500 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
501 }
502
503 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_float) {
504 SetupInitExpectations("GL_EXT_texture_storage GL_OES_texture_float");
505 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
506 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float"));
507 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
508 GL_RGBA32F_EXT));
509 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
510 GL_RGB32F_EXT));
511 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
512 GL_ALPHA32F_EXT));
513 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
514 GL_LUMINANCE32F_EXT));
515 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
516 GL_LUMINANCE_ALPHA32F_EXT));
517 }
518
519 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_half_float) {
520 SetupInitExpectations("GL_EXT_texture_storage GL_OES_texture_half_float");
521 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
522 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float"));
523 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
524 GL_RGBA16F_EXT));
525 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
526 GL_RGB16F_EXT));
527 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
528 GL_ALPHA16F_EXT));
529 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
530 GL_LUMINANCE16F_EXT));
531 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
532 GL_LUMINANCE_ALPHA16F_EXT));
533 }
534
535 // Check how to handle ES, texture_storage and BGRA combination; 8 tests.
536
537 // 1- ES2 + GL_EXT_texture_storage -> GL_EXT_texture_storage (and no
538 // GL_EXT_texture_format_BGRA8888 - we don't claim to handle GL_BGRA8 in
539 // glTexStorage2DEXT)
540 TEST_F(FeatureInfoTest, InitializeGLES2_texture_storage) {
541 SetupInitExpectationsWithGLVersion(
542 "GL_EXT_texture_storage", "", "OpenGL ES 2.0");
543 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
544 EXPECT_THAT(info_->extensions(),
545 Not(HasSubstr("GL_EXT_texture_format_BGRA8888")));
546 }
547
548 // 2- ES2 + GL_EXT_texture_storage + (GL_EXT_texture_format_BGRA8888 or
549 // GL_APPLE_texture_format_bgra8888)
550 TEST_F(FeatureInfoTest, InitializeGLES2_texture_storage_BGRA) {
551 SetupInitExpectationsWithGLVersion(
552 "GL_EXT_texture_storage GL_EXT_texture_format_BGRA8888",
553 "",
554 "OpenGL ES 2.0");
555 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
556 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
557 }
558
559 // 3- ES2 + GL_EXT_texture_format_BGRA8888 or GL_APPLE_texture_format_bgra8888
560 TEST_F(FeatureInfoTest, InitializeGLES2_texture_format_BGRA) {
561 SetupInitExpectationsWithGLVersion(
562 "GL_EXT_texture_format_BGRA8888", "", "OpenGL ES 2.0");
563 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage")));
564 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
565 }
566
567 // 4- ES2 (neither GL_EXT_texture_storage nor GL_EXT_texture_format_BGRA8888) ->
568 // nothing
569 TEST_F(FeatureInfoTest, InitializeGLES2_neither_texture_storage_nor_BGRA) {
570 SetupInitExpectationsWithGLVersion("", "", "OpenGL ES 2.0");
571 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage")));
572 EXPECT_THAT(info_->extensions(),
573 Not(HasSubstr("GL_EXT_texture_format_BGRA8888")));
574 }
575
576 // 5- ES3 + GL_EXT_texture_format_BGRA8888 -> GL_EXT_texture_format_BGRA8888
577 // (we can't expose GL_EXT_texture_storage because we fail the GL_BGRA8
578 // requirement)
579 TEST_F(FeatureInfoTest, InitializeGLES3_texture_storage_EXT_BGRA) {
580 SetupInitExpectationsWithGLVersion(
581 "GL_EXT_texture_format_BGRA8888", "", "OpenGL ES 3.0");
582 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage")));
583 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
584 }
585
586 // 6- ES3 + GL_APPLE_texture_format_bgra8888 -> GL_EXT_texture_storage +
587 // GL_EXT_texture_format_BGRA8888 (driver promises to handle GL_BGRA8 by
588 // exposing GL_APPLE_texture_format_bgra8888)
589 TEST_F(FeatureInfoTest, InitializeGLES3_texture_storage_APPLE_BGRA) {
590 SetupInitExpectationsWithGLVersion(
591 "GL_APPLE_texture_format_BGRA8888", "", "OpenGL ES 3.0");
592 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
593 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
594 }
595
596 // 7- ES3 + GL_EXT_texture_storage + GL_EXT_texture_format_BGRA8888 ->
597 // GL_EXT_texture_storage + GL_EXT_texture_format_BGRA8888 (driver promises to
598 // handle GL_BGRA8 by exposing GL_EXT_texture_storage)
599 TEST_F(FeatureInfoTest, InitializeGLES3_EXT_texture_storage_EXT_BGRA) {
600 SetupInitExpectationsWithGLVersion(
601 "GL_EXT_texture_storage GL_EXT_texture_format_BGRA8888",
602 "",
603 "OpenGL ES 3.0");
604 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
605 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
606 }
607
608 // 8- ES3 + none of the above -> GL_EXT_texture_storage (and no
609 // GL_EXT_texture_format_BGRA8888 - we don't claim to handle GL_BGRA8)
610 TEST_F(FeatureInfoTest, InitializeGLES3_texture_storage) {
611 SetupInitExpectationsWithGLVersion("", "", "OpenGL ES 3.0");
612 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
613 EXPECT_THAT(info_->extensions(),
614 Not(HasSubstr("GL_EXT_texture_format_BGRA8888")));
615 }
616
436 TEST_F(FeatureInfoTest, InitializeARB_texture_float) { 617 TEST_F(FeatureInfoTest, InitializeARB_texture_float) {
437 SetupInitExpectations("GL_ARB_texture_float"); 618 SetupInitExpectations("GL_ARB_texture_float");
438 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgba); 619 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgba);
439 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgb); 620 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgb);
440 std::string extensions = info_->extensions() + " "; 621 std::string extensions = info_->extensions() + " ";
441 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgb ")); 622 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgb "));
442 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgba")); 623 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgba"));
443 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 624 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
444 GL_RGBA32F)); 625 GL_RGBA32F));
445 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 626 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 1276
1096 TEST_F(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering2) { 1277 TEST_F(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering2) {
1097 SetupInitExpectationsWithGLVersion("GL_NV_path_rendering", "", "4.3"); 1278 SetupInitExpectationsWithGLVersion("GL_NV_path_rendering", "", "4.3");
1098 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); 1279 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering);
1099 EXPECT_THAT(info_->extensions(), 1280 EXPECT_THAT(info_->extensions(),
1100 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); 1281 Not(HasSubstr("GL_CHROMIUM_path_rendering")));
1101 } 1282 }
1102 1283
1103 } // namespace gles2 1284 } // namespace gles2
1104 } // namespace gpu 1285 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/feature_info.cc ('k') | ui/gl/generate_bindings.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698