| 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 |