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 "gpu/command_buffer/service/program_manager.h" | 5 #include "gpu/command_buffer/service/program_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
11 | 11 |
12 #include "base/command_line.h" | 12 #include "base/command_line.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "base/strings/string_number_conversions.h" | 14 #include "base/strings/string_number_conversions.h" |
15 #include "base/strings/string_util.h" | 15 #include "base/strings/string_util.h" |
16 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 16 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
17 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 17 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
18 #include "gpu/command_buffer/service/common_decoder.h" | 18 #include "gpu/command_buffer/service/common_decoder.h" |
19 #include "gpu/command_buffer/service/feature_info.h" | 19 #include "gpu/command_buffer/service/feature_info.h" |
| 20 #include "gpu/command_buffer/service/gpu_preferences.h" |
20 #include "gpu/command_buffer/service/gpu_service_test.h" | 21 #include "gpu/command_buffer/service/gpu_service_test.h" |
21 #include "gpu/command_buffer/service/gpu_switches.h" | 22 #include "gpu/command_buffer/service/gpu_switches.h" |
22 #include "gpu/command_buffer/service/mocks.h" | 23 #include "gpu/command_buffer/service/mocks.h" |
23 #include "gpu/command_buffer/service/shader_manager.h" | 24 #include "gpu/command_buffer/service/shader_manager.h" |
24 #include "gpu/command_buffer/service/test_helper.h" | 25 #include "gpu/command_buffer/service/test_helper.h" |
25 #include "testing/gtest/include/gtest/gtest.h" | 26 #include "testing/gtest/include/gtest/gtest.h" |
26 #include "ui/gl/gl_mock.h" | 27 #include "ui/gl/gl_mock.h" |
27 #include "ui/gl/gl_version_info.h" | 28 #include "ui/gl/gl_version_info.h" |
28 | 29 |
29 using ::testing::_; | 30 using ::testing::_; |
(...skipping 22 matching lines...) Expand all Loading... |
52 static_cast<const uint8_t*>(start); | 53 static_cast<const uint8_t*>(start); |
53 } | 54 } |
54 | 55 |
55 } // namespace anonymous | 56 } // namespace anonymous |
56 | 57 |
57 class ProgramManagerTestBase : public GpuServiceTest { | 58 class ProgramManagerTestBase : public GpuServiceTest { |
58 protected: | 59 protected: |
59 virtual void SetupProgramManager() { | 60 virtual void SetupProgramManager() { |
60 manager_.reset(new ProgramManager(nullptr, kMaxVaryingVectors, | 61 manager_.reset(new ProgramManager(nullptr, kMaxVaryingVectors, |
61 kMaxDualSourceDrawBuffers, | 62 kMaxDualSourceDrawBuffers, |
| 63 gpu_preferences_, |
62 feature_info_.get())); | 64 feature_info_.get())); |
63 } | 65 } |
64 void SetUpBase(const char* gl_version, | 66 void SetUpBase(const char* gl_version, |
65 const char* gl_extensions, | 67 const char* gl_extensions, |
66 FeatureInfo* feature_info = NULL) { | 68 FeatureInfo* feature_info = nullptr) { |
67 GpuServiceTest::SetUpWithGLVersion(gl_version, gl_extensions); | 69 GpuServiceTest::SetUpWithGLVersion(gl_version, gl_extensions); |
68 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( | 70 TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
69 gl_.get(), gl_extensions, "", gl_version); | 71 gl_.get(), gl_extensions, "", gl_version); |
70 if (!feature_info) | 72 if (!feature_info) |
71 feature_info = new FeatureInfo(); | 73 feature_info = new FeatureInfo(); |
72 feature_info->InitializeForTesting(); | 74 feature_info->InitializeForTesting(); |
73 feature_info_ = feature_info; | 75 feature_info_ = feature_info; |
74 SetupProgramManager(); | 76 SetupProgramManager(); |
75 } | 77 } |
76 void SetUp() override { | 78 void SetUp() override { |
77 // Parameters same as GpuServiceTest::SetUp | 79 // Parameters same as GpuServiceTest::SetUp |
78 SetUpBase("2.0", "GL_EXT_framebuffer_object"); | 80 SetUpBase("2.0", "GL_EXT_framebuffer_object"); |
79 } | 81 } |
80 void TearDown() override { | 82 void TearDown() override { |
81 manager_->Destroy(false); | 83 manager_->Destroy(false); |
82 manager_.reset(); | 84 manager_.reset(); |
83 feature_info_ = nullptr; | 85 feature_info_ = nullptr; |
84 GpuServiceTest::TearDown(); | 86 GpuServiceTest::TearDown(); |
85 } | 87 } |
86 | 88 |
87 scoped_ptr<ProgramManager> manager_; | 89 scoped_ptr<ProgramManager> manager_; |
| 90 GpuPreferences gpu_preferences_; |
88 scoped_refptr<FeatureInfo> feature_info_; | 91 scoped_refptr<FeatureInfo> feature_info_; |
89 }; | 92 }; |
90 | 93 |
91 class ProgramManagerTest : public ProgramManagerTestBase {}; | 94 class ProgramManagerTest : public ProgramManagerTestBase {}; |
92 | 95 |
93 TEST_F(ProgramManagerTest, Basic) { | 96 TEST_F(ProgramManagerTest, Basic) { |
94 const GLuint kClient1Id = 1; | 97 const GLuint kClient1Id = 1; |
95 const GLuint kService1Id = 11; | 98 const GLuint kService1Id = 11; |
96 const GLuint kClient2Id = 2; | 99 const GLuint kClient2Id = 2; |
97 // Check we can create program. | 100 // Check we can create program. |
(...skipping 1843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1941 : cache_(new MockProgramCache()), | 1944 : cache_(new MockProgramCache()), |
1942 vertex_shader_(NULL), | 1945 vertex_shader_(NULL), |
1943 fragment_shader_(NULL), | 1946 fragment_shader_(NULL), |
1944 program_(NULL) { | 1947 program_(NULL) { |
1945 } | 1948 } |
1946 | 1949 |
1947 protected: | 1950 protected: |
1948 void SetupProgramManager() override { | 1951 void SetupProgramManager() override { |
1949 manager_.reset(new ProgramManager(cache_.get(), kMaxVaryingVectors, | 1952 manager_.reset(new ProgramManager(cache_.get(), kMaxVaryingVectors, |
1950 kMaxDualSourceDrawBuffers, | 1953 kMaxDualSourceDrawBuffers, |
| 1954 gpu_preferences_, |
1951 feature_info_.get())); | 1955 feature_info_.get())); |
1952 } | 1956 } |
1953 | 1957 |
1954 void SetUp() override { | 1958 void SetUp() override { |
1955 ProgramManagerTestBase::SetUp(); | 1959 ProgramManagerTestBase::SetUp(); |
1956 | 1960 |
1957 vertex_shader_ = shader_manager_.CreateShader( | 1961 vertex_shader_ = shader_manager_.CreateShader( |
1958 kVertexShaderClientId, kVertexShaderServiceId, GL_VERTEX_SHADER); | 1962 kVertexShaderClientId, kVertexShaderServiceId, GL_VERTEX_SHADER); |
1959 fragment_shader_ = shader_manager_.CreateShader( | 1963 fragment_shader_ = shader_manager_.CreateShader( |
1960 kFragmentShaderClientId, kFragmentShaderServiceId, GL_FRAGMENT_SHADER); | 1964 kFragmentShaderClientId, kFragmentShaderServiceId, GL_FRAGMENT_SHADER); |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2393 ProgramManagerDualSourceBlendingES2Test, | 2397 ProgramManagerDualSourceBlendingES2Test, |
2394 testing::Values( | 2398 testing::Values( |
2395 make_gl_ext_tuple("3.2", | 2399 make_gl_ext_tuple("3.2", |
2396 "GL_ARB_draw_buffers GL_ARB_blend_func_extended " | 2400 "GL_ARB_draw_buffers GL_ARB_blend_func_extended " |
2397 "GL_ARB_program_interface_query"), | 2401 "GL_ARB_program_interface_query"), |
2398 make_gl_ext_tuple("opengl es 3.1", | 2402 make_gl_ext_tuple("opengl es 3.1", |
2399 "GL_EXT_draw_buffers GL_EXT_blend_func_extended"))); | 2403 "GL_EXT_draw_buffers GL_EXT_blend_func_extended"))); |
2400 | 2404 |
2401 } // namespace gles2 | 2405 } // namespace gles2 |
2402 } // namespace gpu | 2406 } // namespace gpu |
OLD | NEW |