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

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: Prevent GLES unless GL_APPLE_texture_format_BGRA8888 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 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 398 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
399 GL_BGRA_EXT)); 399 GL_BGRA_EXT));
400 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid( 400 EXPECT_TRUE(info_->validators()->read_pixel_format.IsValid(
401 GL_BGRA_EXT)); 401 GL_BGRA_EXT));
402 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid( 402 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid(
403 GL_UNSIGNED_BYTE)); 403 GL_UNSIGNED_BYTE));
404 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid( 404 EXPECT_TRUE(info_->validators()->render_buffer_format.IsValid(
405 GL_BGRA8_EXT)); 405 GL_BGRA8_EXT));
406 } 406 }
407 407
408 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888Apple) { 408 TEST_F(FeatureInfoTest, InitializeAPPLE_texture_format_BGRA8888) {
409 SetupInitExpectations("GL_APPLE_texture_format_BGRA8888"); 409 SetupInitExpectations("GL_APPLE_texture_format_BGRA8888");
410 EXPECT_THAT(info_->extensions(), 410 EXPECT_THAT(info_->extensions(),
411 HasSubstr("GL_EXT_texture_format_BGRA8888")); 411 HasSubstr("GL_EXT_texture_format_BGRA8888"));
412 EXPECT_TRUE(info_->validators()->texture_format.IsValid( 412 EXPECT_TRUE(info_->validators()->texture_format.IsValid(
413 GL_BGRA_EXT)); 413 GL_BGRA_EXT));
414 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 414 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
415 GL_BGRA_EXT)); 415 GL_BGRA_EXT));
416 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid( 416 EXPECT_TRUE(info_->GetTextureFormatValidator(GL_BGRA_EXT).IsValid(
417 GL_UNSIGNED_BYTE)); 417 GL_UNSIGNED_BYTE));
418 EXPECT_FALSE(info_->validators()->render_buffer_format.IsValid( 418 EXPECT_FALSE(info_->validators()->render_buffer_format.IsValid(
419 GL_BGRA8_EXT)); 419 GL_BGRA8_EXT));
420 } 420 }
421 421
422 TEST_F(FeatureInfoTest, InitializeEXT_read_format_bgra) { 422 TEST_F(FeatureInfoTest, InitializeEXT_read_format_bgra) {
423 SetupInitExpectations("GL_EXT_read_format_bgra"); 423 SetupInitExpectations("GL_EXT_read_format_bgra");
424 EXPECT_THAT(info_->extensions(), 424 EXPECT_THAT(info_->extensions(),
425 HasSubstr("GL_EXT_read_format_bgra")); 425 HasSubstr("GL_EXT_read_format_bgra"));
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(GL_BGRA8_EXT));
433 }
434
435 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage) {
436 SetupInitExpectations("GL_EXT_texture_storage");
437 EXPECT_FALSE(info_->feature_flags().ext_texture_storage);
438 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage")));
piman 2014/08/26 20:54:30 That seems wrong. If we have GL_EXT_texture_storag
439 EXPECT_FALSE(info_->validators()->texture_parameter.IsValid(
440 GL_TEXTURE_IMMUTABLE_FORMAT_EXT));
441 }
442
443 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_BRGA) {
444 SetupInitExpectations("GL_EXT_texture_storage GL_EXT_bgra");
445 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
446 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid(
447 GL_TEXTURE_IMMUTABLE_FORMAT_EXT));
448 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
449 GL_BGRA8_EXT));
450 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
451 GL_RGBA32F_EXT));
452 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
453 GL_RGB32F_EXT));
454 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
455 GL_ALPHA32F_EXT));
456 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
457 GL_LUMINANCE32F_EXT));
458 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
459 GL_LUMINANCE_ALPHA32F_EXT));
460 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
461 GL_RGBA16F_EXT));
462 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
463 GL_RGB16F_EXT));
464 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
465 GL_ALPHA16F_EXT));
466 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
467 GL_LUMINANCE16F_EXT));
468 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
469 GL_LUMINANCE_ALPHA16F_EXT));
470 }
471
472 TEST_F(FeatureInfoTest, InitializeARB_texture_storage_BGRA) {
473 SetupInitExpectations("GL_ARB_texture_storage GL_EXT_bgra");
474 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
475 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid(
476 GL_TEXTURE_IMMUTABLE_FORMAT_EXT));
477 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
433 GL_BGRA8_EXT)); 478 GL_BGRA8_EXT));
434 } 479 }
435 480
481 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_BGRA8888) {
482 SetupInitExpectations(
483 "GL_EXT_texture_storage GL_EXT_texture_format_BGRA8888");
484 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
485 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888"));
486 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
487 GL_BGRA8_EXT));
488 }
489
490 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_float) {
491 SetupInitExpectations(
492 "GL_EXT_texture_storage GL_OES_texture_float GL_EXT_bgra");
493 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
494 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_float"));
495 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
496 GL_RGBA32F_EXT));
497 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
498 GL_RGB32F_EXT));
499 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
500 GL_ALPHA32F_EXT));
501 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
502 GL_LUMINANCE32F_EXT));
503 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
504 GL_LUMINANCE_ALPHA32F_EXT));
505 }
506
507 TEST_F(FeatureInfoTest, InitializeEXT_texture_storage_half_float) {
508 SetupInitExpectations(
509 "GL_EXT_texture_storage GL_OES_texture_half_float GL_EXT_bgra");
510 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
511 EXPECT_THAT(info_->extensions(), HasSubstr("GL_OES_texture_half_float"));
512 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
513 GL_RGBA16F_EXT));
514 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
515 GL_RGB16F_EXT));
516 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
517 GL_ALPHA16F_EXT));
518 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
519 GL_LUMINANCE16F_EXT));
520 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
521 GL_LUMINANCE_ALPHA16F_EXT));
522 }
523
524 TEST_F(FeatureInfoTest, InitializeEXT_texture_format_BGRA8888_GLES3) {
525 SetupInitExpectationsWithGLVersion(
526 "GL_EXT_texture_format_BGRA8888", "", "OpenGL ES 3.0");
527 EXPECT_FALSE(info_->feature_flags().ext_texture_storage);
528 EXPECT_THAT(info_->extensions(), Not(HasSubstr("GL_EXT_texture_storage")));
529 EXPECT_FALSE(info_->validators()->texture_parameter.IsValid(
530 GL_TEXTURE_IMMUTABLE_FORMAT_EXT));
531 EXPECT_FALSE(info_->validators()->texture_internal_format_storage.IsValid(
532 GL_BGRA8_EXT));
533 }
534
535 TEST_F(FeatureInfoTest, InitializeAPPLE_texture_format_BGRA8888_GLES3) {
536 SetupInitExpectationsWithGLVersion(
537 "GL_APPLE_texture_format_BGRA8888", "", "OpenGL ES 3.0");
538 EXPECT_TRUE(info_->feature_flags().ext_texture_storage);
539 EXPECT_THAT(info_->extensions(), HasSubstr("GL_EXT_texture_storage"));
540 EXPECT_TRUE(info_->validators()->texture_parameter.IsValid(
541 GL_TEXTURE_IMMUTABLE_FORMAT_EXT));
542 EXPECT_TRUE(info_->validators()->texture_internal_format_storage.IsValid(
543 GL_BGRA8_EXT));
544 }
545
436 TEST_F(FeatureInfoTest, InitializeARB_texture_float) { 546 TEST_F(FeatureInfoTest, InitializeARB_texture_float) {
437 SetupInitExpectations("GL_ARB_texture_float"); 547 SetupInitExpectations("GL_ARB_texture_float");
438 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgba); 548 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgba);
439 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgb); 549 EXPECT_TRUE(info_->feature_flags().chromium_color_buffer_float_rgb);
440 std::string extensions = info_->extensions() + " "; 550 std::string extensions = info_->extensions() + " ";
441 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgb ")); 551 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgb "));
442 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgba")); 552 EXPECT_THAT(extensions, HasSubstr("GL_CHROMIUM_color_buffer_float_rgba"));
443 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 553 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
444 GL_RGBA32F)); 554 GL_RGBA32F));
445 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid( 555 EXPECT_TRUE(info_->validators()->texture_internal_format.IsValid(
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 1205
1096 TEST_F(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering2) { 1206 TEST_F(FeatureInfoTest, InitializeNoCHROMIUM_path_rendering2) {
1097 SetupInitExpectationsWithGLVersion("GL_NV_path_rendering", "", "4.3"); 1207 SetupInitExpectationsWithGLVersion("GL_NV_path_rendering", "", "4.3");
1098 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering); 1208 EXPECT_FALSE(info_->feature_flags().chromium_path_rendering);
1099 EXPECT_THAT(info_->extensions(), 1209 EXPECT_THAT(info_->extensions(),
1100 Not(HasSubstr("GL_CHROMIUM_path_rendering"))); 1210 Not(HasSubstr("GL_CHROMIUM_path_rendering")));
1101 } 1211 }
1102 1212
1103 } // namespace gles2 1213 } // namespace gles2
1104 } // namespace gpu 1214 } // 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