OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |