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/memory_program_cache.h" | 5 #include "gpu/command_buffer/service/memory_program_cache.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
11 | 11 |
12 #include "base/bind.h" | 12 #include "base/bind.h" |
13 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 13 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
14 #include "gpu/command_buffer/service/gl_utils.h" | 14 #include "gpu/command_buffer/service/gl_utils.h" |
15 #include "gpu/command_buffer/service/gpu_service_test.h" | 15 #include "gpu/command_buffer/service/gpu_service_test.h" |
| 16 #include "gpu/command_buffer/service/progress_reporter_stub.h" |
16 #include "gpu/command_buffer/service/shader_manager.h" | 17 #include "gpu/command_buffer/service/shader_manager.h" |
17 #include "gpu/command_buffer/service/shader_translator.h" | 18 #include "gpu/command_buffer/service/shader_translator.h" |
18 #include "gpu/command_buffer/service/test_helper.h" | 19 #include "gpu/command_buffer/service/test_helper.h" |
19 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
20 #include "ui/gl/gl_bindings.h" | 21 #include "ui/gl/gl_bindings.h" |
21 #include "ui/gl/gl_mock.h" | 22 #include "ui/gl/gl_mock.h" |
22 | 23 |
23 using ::testing::_; | 24 using ::testing::_; |
24 using ::testing::Invoke; | 25 using ::testing::Invoke; |
25 using ::testing::SetArgPointee; | 26 using ::testing::SetArgPointee; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 public: | 71 public: |
71 static const size_t kCacheSizeBytes = 1024; | 72 static const size_t kCacheSizeBytes = 1024; |
72 static const bool kDisableGpuDiskCache = false; | 73 static const bool kDisableGpuDiskCache = false; |
73 static const GLuint kVertexShaderClientId = 90; | 74 static const GLuint kVertexShaderClientId = 90; |
74 static const GLuint kVertexShaderServiceId = 100; | 75 static const GLuint kVertexShaderServiceId = 100; |
75 static const GLuint kFragmentShaderClientId = 91; | 76 static const GLuint kFragmentShaderClientId = 91; |
76 static const GLuint kFragmentShaderServiceId = 100; | 77 static const GLuint kFragmentShaderServiceId = 100; |
77 | 78 |
78 MemoryProgramCacheTest() | 79 MemoryProgramCacheTest() |
79 : cache_(new MemoryProgramCache(kCacheSizeBytes, kDisableGpuDiskCache)), | 80 : cache_(new MemoryProgramCache(kCacheSizeBytes, kDisableGpuDiskCache)), |
| 81 shader_manager_(&progress_reporter_), |
80 vertex_shader_(NULL), | 82 vertex_shader_(NULL), |
81 fragment_shader_(NULL), | 83 fragment_shader_(NULL), |
82 shader_cache_count_(0) { | 84 shader_cache_count_(0) {} |
83 } | |
84 ~MemoryProgramCacheTest() override { shader_manager_.Destroy(false); } | 85 ~MemoryProgramCacheTest() override { shader_manager_.Destroy(false); } |
85 | 86 |
86 void ShaderCacheCb(const std::string& key, const std::string& shader) { | 87 void ShaderCacheCb(const std::string& key, const std::string& shader) { |
87 shader_cache_count_++; | 88 shader_cache_count_++; |
88 shader_cache_shader_ = shader; | 89 shader_cache_shader_ = shader; |
89 } | 90 } |
90 | 91 |
91 int32_t shader_cache_count() { return shader_cache_count_; } | 92 int32_t shader_cache_count() { return shader_cache_count_; } |
92 const std::string& shader_cache_shader() { return shader_cache_shader_; } | 93 const std::string& shader_cache_shader() { return shader_cache_shader_; } |
93 | 94 |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 .WillOnce(SetArgPointee<2>(GL_FALSE)); | 185 .WillOnce(SetArgPointee<2>(GL_FALSE)); |
185 } | 186 } |
186 | 187 |
187 std::unique_ptr<MemoryProgramCache> cache_; | 188 std::unique_ptr<MemoryProgramCache> cache_; |
188 ShaderManager shader_manager_; | 189 ShaderManager shader_manager_; |
189 Shader* vertex_shader_; | 190 Shader* vertex_shader_; |
190 Shader* fragment_shader_; | 191 Shader* fragment_shader_; |
191 int32_t shader_cache_count_; | 192 int32_t shader_cache_count_; |
192 std::string shader_cache_shader_; | 193 std::string shader_cache_shader_; |
193 std::vector<std::string> varyings_; | 194 std::vector<std::string> varyings_; |
| 195 ProgressReporterStub progress_reporter_; |
194 }; | 196 }; |
195 | 197 |
196 TEST_F(MemoryProgramCacheTest, CacheSave) { | 198 TEST_F(MemoryProgramCacheTest, CacheSave) { |
197 const GLenum kFormat = 1; | 199 const GLenum kFormat = 1; |
198 const int kProgramId = 10; | 200 const int kProgramId = 10; |
199 const int kBinaryLength = 20; | 201 const int kBinaryLength = 20; |
200 char test_binary[kBinaryLength]; | 202 char test_binary[kBinaryLength]; |
201 for (int i = 0; i < kBinaryLength; ++i) { | 203 for (int i = 0; i < kBinaryLength; ++i) { |
202 test_binary[i] = i; | 204 test_binary[i] = i; |
203 } | 205 } |
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 fragment_shader_, | 686 fragment_shader_, |
685 NULL, | 687 NULL, |
686 varyings_, | 688 varyings_, |
687 GL_NONE, | 689 GL_NONE, |
688 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 690 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
689 base::Unretained(this)))); | 691 base::Unretained(this)))); |
690 } | 692 } |
691 | 693 |
692 } // namespace gles2 | 694 } // namespace gles2 |
693 } // namespace gpu | 695 } // namespace gpu |
OLD | NEW |