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

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

Issue 1716813002: Use GpuPreferences to avoid directly accessing switches in gpu related code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update Created 4 years, 9 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
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 <GLES2/gl2.h> 5 #include <GLES2/gl2.h>
6 6
7 #include "gpu/command_buffer/service/shader_translator.h" 7 #include "gpu/command_buffer/service/shader_translator.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/gl/gl_version_info.h" 9 #include "ui/gl/gl_version_info.h"
10 10
(...skipping 15 matching lines...) Expand all
26 ShBuiltInResources resources; 26 ShBuiltInResources resources;
27 ShInitBuiltInResources(&resources); 27 ShInitBuiltInResources(&resources);
28 resources.MaxExpressionComplexity = 32; 28 resources.MaxExpressionComplexity = 32;
29 resources.MaxCallStackDepth = 32; 29 resources.MaxCallStackDepth = 32;
30 30
31 vertex_translator_ = new ShaderTranslator(); 31 vertex_translator_ = new ShaderTranslator();
32 fragment_translator_ = new ShaderTranslator(); 32 fragment_translator_ = new ShaderTranslator();
33 33
34 ASSERT_TRUE(vertex_translator_->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, 34 ASSERT_TRUE(vertex_translator_->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC,
35 &resources, shader_output_language_, 35 &resources, shader_output_language_,
36 SH_EMULATE_BUILT_IN_FUNCTIONS)); 36 SH_EMULATE_BUILT_IN_FUNCTIONS,
37 false));
37 ASSERT_TRUE(fragment_translator_->Init(GL_FRAGMENT_SHADER, SH_GLES2_SPEC, 38 ASSERT_TRUE(fragment_translator_->Init(GL_FRAGMENT_SHADER, SH_GLES2_SPEC,
38 &resources, shader_output_language_, 39 &resources, shader_output_language_,
39 static_cast<ShCompileOptions>(0))); 40 static_cast<ShCompileOptions>(0),
41 false));
40 } 42 }
41 void TearDown() override { 43 void TearDown() override {
42 vertex_translator_ = NULL; 44 vertex_translator_ = NULL;
43 fragment_translator_ = NULL; 45 fragment_translator_ = NULL;
44 } 46 }
45 47
46 scoped_refptr<ShaderTranslator> vertex_translator_; 48 scoped_refptr<ShaderTranslator> vertex_translator_;
47 scoped_refptr<ShaderTranslator> fragment_translator_; 49 scoped_refptr<ShaderTranslator> fragment_translator_;
48 ShShaderOutput shader_output_language_; 50 ShShaderOutput shader_output_language_;
49 }; 51 };
(...skipping 13 matching lines...) Expand all
63 ShBuiltInResources resources; 65 ShBuiltInResources resources;
64 ShInitBuiltInResources(&resources); 66 ShInitBuiltInResources(&resources);
65 resources.MaxExpressionComplexity = 32; 67 resources.MaxExpressionComplexity = 32;
66 resources.MaxCallStackDepth = 32; 68 resources.MaxCallStackDepth = 32;
67 69
68 vertex_translator_ = new ShaderTranslator(); 70 vertex_translator_ = new ShaderTranslator();
69 fragment_translator_ = new ShaderTranslator(); 71 fragment_translator_ = new ShaderTranslator();
70 72
71 ASSERT_TRUE(vertex_translator_->Init(GL_VERTEX_SHADER, SH_GLES3_SPEC, 73 ASSERT_TRUE(vertex_translator_->Init(GL_VERTEX_SHADER, SH_GLES3_SPEC,
72 &resources, shader_output_language_, 74 &resources, shader_output_language_,
73 SH_EMULATE_BUILT_IN_FUNCTIONS)); 75 SH_EMULATE_BUILT_IN_FUNCTIONS, false));
74 ASSERT_TRUE(fragment_translator_->Init(GL_FRAGMENT_SHADER, SH_GLES3_SPEC, 76 ASSERT_TRUE(fragment_translator_->Init(GL_FRAGMENT_SHADER, SH_GLES3_SPEC,
75 &resources, shader_output_language_, 77 &resources, shader_output_language_,
76 static_cast<ShCompileOptions>(0))); 78 static_cast<ShCompileOptions>(0),
79 false));
77 } 80 }
78 void TearDown() override { 81 void TearDown() override {
79 vertex_translator_ = NULL; 82 vertex_translator_ = NULL;
80 fragment_translator_ = NULL; 83 fragment_translator_ = NULL;
81 } 84 }
82 85
83 scoped_refptr<ShaderTranslator> vertex_translator_; 86 scoped_refptr<ShaderTranslator> vertex_translator_;
84 scoped_refptr<ShaderTranslator> fragment_translator_; 87 scoped_refptr<ShaderTranslator> fragment_translator_;
85 ShShaderOutput shader_output_language_; 88 ShShaderOutput shader_output_language_;
86 }; 89 };
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 TEST_F(ShaderTranslatorTest, OptionsString) { 420 TEST_F(ShaderTranslatorTest, OptionsString) {
418 scoped_refptr<ShaderTranslator> translator_1 = new ShaderTranslator(); 421 scoped_refptr<ShaderTranslator> translator_1 = new ShaderTranslator();
419 scoped_refptr<ShaderTranslator> translator_2 = new ShaderTranslator(); 422 scoped_refptr<ShaderTranslator> translator_2 = new ShaderTranslator();
420 scoped_refptr<ShaderTranslator> translator_3 = new ShaderTranslator(); 423 scoped_refptr<ShaderTranslator> translator_3 = new ShaderTranslator();
421 424
422 ShBuiltInResources resources; 425 ShBuiltInResources resources;
423 ShInitBuiltInResources(&resources); 426 ShInitBuiltInResources(&resources);
424 427
425 ASSERT_TRUE(translator_1->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, &resources, 428 ASSERT_TRUE(translator_1->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, &resources,
426 SH_GLSL_150_CORE_OUTPUT, 429 SH_GLSL_150_CORE_OUTPUT,
427 SH_EMULATE_BUILT_IN_FUNCTIONS)); 430 SH_EMULATE_BUILT_IN_FUNCTIONS,
431 false));
428 ASSERT_TRUE(translator_2->Init(GL_FRAGMENT_SHADER, SH_GLES2_SPEC, &resources, 432 ASSERT_TRUE(translator_2->Init(GL_FRAGMENT_SHADER, SH_GLES2_SPEC, &resources,
429 SH_GLSL_150_CORE_OUTPUT, 433 SH_GLSL_150_CORE_OUTPUT,
430 static_cast<ShCompileOptions>(0))); 434 static_cast<ShCompileOptions>(0),
435 false));
431 resources.EXT_draw_buffers = 1; 436 resources.EXT_draw_buffers = 1;
432 ASSERT_TRUE(translator_3->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, &resources, 437 ASSERT_TRUE(translator_3->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, &resources,
433 SH_GLSL_150_CORE_OUTPUT, 438 SH_GLSL_150_CORE_OUTPUT,
434 SH_EMULATE_BUILT_IN_FUNCTIONS)); 439 SH_EMULATE_BUILT_IN_FUNCTIONS,
440 false));
435 441
436 std::string options_1( 442 std::string options_1(
437 translator_1->GetStringForOptionsThatWouldAffectCompilation()); 443 translator_1->GetStringForOptionsThatWouldAffectCompilation());
438 std::string options_2( 444 std::string options_2(
439 translator_1->GetStringForOptionsThatWouldAffectCompilation()); 445 translator_1->GetStringForOptionsThatWouldAffectCompilation());
440 std::string options_3( 446 std::string options_3(
441 translator_2->GetStringForOptionsThatWouldAffectCompilation()); 447 translator_2->GetStringForOptionsThatWouldAffectCompilation());
442 std::string options_4( 448 std::string options_4(
443 translator_3->GetStringForOptionsThatWouldAffectCompilation()); 449 translator_3->GetStringForOptionsThatWouldAffectCompilation());
444 450
(...skipping 11 matching lines...) Expand all
456 // https://bugs.chromium.org/p/angleproject/issues/detail?id=1276 462 // https://bugs.chromium.org/p/angleproject/issues/detail?id=1276
457 // https://bugs.chromium.org/p/angleproject/issues/detail?id=1277 463 // https://bugs.chromium.org/p/angleproject/issues/detail?id=1277
458 TEST_F(ShaderTranslatorOutputVersionTest, DISABLED_CompatibilityOutput) { 464 TEST_F(ShaderTranslatorOutputVersionTest, DISABLED_CompatibilityOutput) {
459 ShBuiltInResources resources; 465 ShBuiltInResources resources;
460 ShInitBuiltInResources(&resources); 466 ShInitBuiltInResources(&resources);
461 ShCompileOptions compile_options = SH_OBJECT_CODE; 467 ShCompileOptions compile_options = SH_OBJECT_CODE;
462 ShShaderOutput shader_output_language = SH_GLSL_COMPATIBILITY_OUTPUT; 468 ShShaderOutput shader_output_language = SH_GLSL_COMPATIBILITY_OUTPUT;
463 scoped_refptr<ShaderTranslator> vertex_translator = new ShaderTranslator(); 469 scoped_refptr<ShaderTranslator> vertex_translator = new ShaderTranslator();
464 ASSERT_TRUE(vertex_translator->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, 470 ASSERT_TRUE(vertex_translator->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC,
465 &resources, shader_output_language, 471 &resources, shader_output_language,
466 compile_options)); 472 compile_options,
473 false));
467 scoped_refptr<ShaderTranslator> fragment_translator = new ShaderTranslator(); 474 scoped_refptr<ShaderTranslator> fragment_translator = new ShaderTranslator();
468 ASSERT_TRUE(fragment_translator->Init(GL_FRAGMENT_SHADER, SH_GLES2_SPEC, 475 ASSERT_TRUE(fragment_translator->Init(GL_FRAGMENT_SHADER, SH_GLES2_SPEC,
469 &resources, shader_output_language, 476 &resources, shader_output_language,
470 compile_options)); 477 compile_options,
478 false));
471 479
472 std::string translated_source; 480 std::string translated_source;
473 int shader_version; 481 int shader_version;
474 { 482 {
475 const char* kShader = 483 const char* kShader =
476 "attribute vec4 vPosition;\n" 484 "attribute vec4 vPosition;\n"
477 "void main() {\n" 485 "void main() {\n"
478 "}"; 486 "}";
479 487
480 EXPECT_TRUE(vertex_translator->Translate( 488 EXPECT_TRUE(vertex_translator->Translate(
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 ""); 531 "");
524 532
525 scoped_refptr<ShaderTranslator> translator = new ShaderTranslator(); 533 scoped_refptr<ShaderTranslator> translator = new ShaderTranslator();
526 ShBuiltInResources resources; 534 ShBuiltInResources resources;
527 ShInitBuiltInResources(&resources); 535 ShInitBuiltInResources(&resources);
528 ShCompileOptions compile_options = SH_OBJECT_CODE; 536 ShCompileOptions compile_options = SH_OBJECT_CODE;
529 ShShaderOutput shader_output_language = 537 ShShaderOutput shader_output_language =
530 ShaderTranslator::GetShaderOutputLanguageForContext( 538 ShaderTranslator::GetShaderOutputLanguageForContext(
531 output_context_version); 539 output_context_version);
532 ASSERT_TRUE(translator->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, &resources, 540 ASSERT_TRUE(translator->Init(GL_VERTEX_SHADER, SH_GLES2_SPEC, &resources,
533 shader_output_language, compile_options)); 541 shader_output_language, compile_options, false));
534 542
535 std::string translated_source; 543 std::string translated_source;
536 int shader_version; 544 int shader_version;
537 EXPECT_TRUE(translator->Translate(kShader, nullptr, &translated_source, 545 EXPECT_TRUE(translator->Translate(kShader, nullptr, &translated_source,
538 &shader_version, nullptr, nullptr, nullptr, 546 &shader_version, nullptr, nullptr, nullptr,
539 nullptr, nullptr, nullptr)); 547 nullptr, nullptr, nullptr));
540 548
541 std::string expected_version_directive = testing::get<1>(GetParam()); 549 std::string expected_version_directive = testing::get<1>(GetParam());
542 if (expected_version_directive.empty()) { 550 if (expected_version_directive.empty()) {
543 EXPECT_TRUE(translated_source.find("#version") == std::string::npos) 551 EXPECT_TRUE(translated_source.find("#version") == std::string::npos)
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 ShaderTranslatorOutputVersionTest, 614 ShaderTranslatorOutputVersionTest,
607 testing::Values(make_gl_glsl_tuple("opengl es 2.0", ""), 615 testing::Values(make_gl_glsl_tuple("opengl es 2.0", ""),
608 make_gl_glsl_tuple("opengl es 3.0", ""), 616 make_gl_glsl_tuple("opengl es 3.0", ""),
609 make_gl_glsl_tuple("opengl es 3.1", ""), 617 make_gl_glsl_tuple("opengl es 3.1", ""),
610 make_gl_glsl_tuple("opengl es 3.2", 618 make_gl_glsl_tuple("opengl es 3.2",
611 ""))); 619 "")));
612 620
613 } // namespace gles2 621 } // namespace gles2
614 } // namespace gpu 622 } // namespace gpu
615 623
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/shader_translator_cache.cc ('k') | gpu/command_buffer/tests/gl_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698