| 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> |
| 8 #include <stdint.h> |
| 9 |
| 7 #include "base/bind.h" | 10 #include "base/bind.h" |
| 8 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 11 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
| 9 #include "gpu/command_buffer/service/gl_utils.h" | 12 #include "gpu/command_buffer/service/gl_utils.h" |
| 10 #include "gpu/command_buffer/service/gpu_service_test.h" | 13 #include "gpu/command_buffer/service/gpu_service_test.h" |
| 11 #include "gpu/command_buffer/service/shader_manager.h" | 14 #include "gpu/command_buffer/service/shader_manager.h" |
| 12 #include "gpu/command_buffer/service/shader_translator.h" | 15 #include "gpu/command_buffer/service/shader_translator.h" |
| 13 #include "gpu/command_buffer/service/test_helper.h" | 16 #include "gpu/command_buffer/service/test_helper.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 15 #include "ui/gl/gl_bindings.h" | 18 #include "ui/gl/gl_bindings.h" |
| 16 #include "ui/gl/gl_mock.h" | 19 #include "ui/gl/gl_mock.h" |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 vertex_shader_(NULL), | 77 vertex_shader_(NULL), |
| 75 fragment_shader_(NULL), | 78 fragment_shader_(NULL), |
| 76 shader_cache_count_(0) { } | 79 shader_cache_count_(0) { } |
| 77 ~MemoryProgramCacheTest() override { shader_manager_.Destroy(false); } | 80 ~MemoryProgramCacheTest() override { shader_manager_.Destroy(false); } |
| 78 | 81 |
| 79 void ShaderCacheCb(const std::string& key, const std::string& shader) { | 82 void ShaderCacheCb(const std::string& key, const std::string& shader) { |
| 80 shader_cache_count_++; | 83 shader_cache_count_++; |
| 81 shader_cache_shader_ = shader; | 84 shader_cache_shader_ = shader; |
| 82 } | 85 } |
| 83 | 86 |
| 84 int32 shader_cache_count() { return shader_cache_count_; } | 87 int32_t shader_cache_count() { return shader_cache_count_; } |
| 85 const std::string& shader_cache_shader() { return shader_cache_shader_; } | 88 const std::string& shader_cache_shader() { return shader_cache_shader_; } |
| 86 | 89 |
| 87 protected: | 90 protected: |
| 88 void SetUp() override { | 91 void SetUp() override { |
| 89 GpuServiceTest::SetUpWithGLVersion("3.0", "GL_ARB_get_program_binary"); | 92 GpuServiceTest::SetUpWithGLVersion("3.0", "GL_ARB_get_program_binary"); |
| 90 | 93 |
| 91 vertex_shader_ = shader_manager_.CreateShader(kVertexShaderClientId, | 94 vertex_shader_ = shader_manager_.CreateShader(kVertexShaderClientId, |
| 92 kVertexShaderServiceId, | 95 kVertexShaderServiceId, |
| 93 GL_VERTEX_SHADER); | 96 GL_VERTEX_SHADER); |
| 94 fragment_shader_ = shader_manager_.CreateShader( | 97 fragment_shader_ = shader_manager_.CreateShader( |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::ProgramBinary)); | 177 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::ProgramBinary)); |
| 175 EXPECT_CALL(*gl_.get(), | 178 EXPECT_CALL(*gl_.get(), |
| 176 GetProgramiv(program_id, GL_LINK_STATUS, _)) | 179 GetProgramiv(program_id, GL_LINK_STATUS, _)) |
| 177 .WillOnce(SetArgPointee<2>(GL_FALSE)); | 180 .WillOnce(SetArgPointee<2>(GL_FALSE)); |
| 178 } | 181 } |
| 179 | 182 |
| 180 scoped_ptr<MemoryProgramCache> cache_; | 183 scoped_ptr<MemoryProgramCache> cache_; |
| 181 ShaderManager shader_manager_; | 184 ShaderManager shader_manager_; |
| 182 Shader* vertex_shader_; | 185 Shader* vertex_shader_; |
| 183 Shader* fragment_shader_; | 186 Shader* fragment_shader_; |
| 184 int32 shader_cache_count_; | 187 int32_t shader_cache_count_; |
| 185 std::string shader_cache_shader_; | 188 std::string shader_cache_shader_; |
| 186 std::vector<std::string> varyings_; | 189 std::vector<std::string> varyings_; |
| 187 }; | 190 }; |
| 188 | 191 |
| 189 TEST_F(MemoryProgramCacheTest, CacheSave) { | 192 TEST_F(MemoryProgramCacheTest, CacheSave) { |
| 190 const GLenum kFormat = 1; | 193 const GLenum kFormat = 1; |
| 191 const int kProgramId = 10; | 194 const int kProgramId = 10; |
| 192 const int kBinaryLength = 20; | 195 const int kBinaryLength = 20; |
| 193 char test_binary[kBinaryLength]; | 196 char test_binary[kBinaryLength]; |
| 194 for (int i = 0; i < kBinaryLength; ++i) { | 197 for (int i = 0; i < kBinaryLength; ++i) { |
| (...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 677 fragment_shader_, | 680 fragment_shader_, |
| 678 NULL, | 681 NULL, |
| 679 varyings_, | 682 varyings_, |
| 680 GL_NONE, | 683 GL_NONE, |
| 681 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 684 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
| 682 base::Unretained(this)))); | 685 base::Unretained(this)))); |
| 683 } | 686 } |
| 684 | 687 |
| 685 } // namespace gles2 | 688 } // namespace gles2 |
| 686 } // namespace gpu | 689 } // namespace gpu |
| OLD | NEW |