Chromium Code Reviews| 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 |
|
no sievers
2016/04/05 19:02:41
#include <memory>
Mostyn Bramley-Moore
2016/04/05 21:35:31
Done.
| |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 11 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
| 12 #include "gpu/command_buffer/service/gl_utils.h" | 12 #include "gpu/command_buffer/service/gl_utils.h" |
| 13 #include "gpu/command_buffer/service/gpu_service_test.h" | 13 #include "gpu/command_buffer/service/gpu_service_test.h" |
| 14 #include "gpu/command_buffer/service/shader_manager.h" | 14 #include "gpu/command_buffer/service/shader_manager.h" |
| 15 #include "gpu/command_buffer/service/shader_translator.h" | 15 #include "gpu/command_buffer/service/shader_translator.h" |
| 16 #include "gpu/command_buffer/service/test_helper.h" | 16 #include "gpu/command_buffer/service/test_helper.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 18 #include "ui/gl/gl_bindings.h" | 18 #include "ui/gl/gl_bindings.h" |
| 19 #include "ui/gl/gl_mock.h" | 19 #include "ui/gl/gl_mock.h" |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 175 ProgramBinary(program_id, | 175 ProgramBinary(program_id, |
| 176 emulator->format(), | 176 emulator->format(), |
| 177 _, | 177 _, |
| 178 emulator->length())) | 178 emulator->length())) |
| 179 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::ProgramBinary)); | 179 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::ProgramBinary)); |
| 180 EXPECT_CALL(*gl_.get(), | 180 EXPECT_CALL(*gl_.get(), |
| 181 GetProgramiv(program_id, GL_LINK_STATUS, _)) | 181 GetProgramiv(program_id, GL_LINK_STATUS, _)) |
| 182 .WillOnce(SetArgPointee<2>(GL_FALSE)); | 182 .WillOnce(SetArgPointee<2>(GL_FALSE)); |
| 183 } | 183 } |
| 184 | 184 |
| 185 scoped_ptr<MemoryProgramCache> cache_; | 185 std::unique_ptr<MemoryProgramCache> cache_; |
| 186 ShaderManager shader_manager_; | 186 ShaderManager shader_manager_; |
| 187 Shader* vertex_shader_; | 187 Shader* vertex_shader_; |
| 188 Shader* fragment_shader_; | 188 Shader* fragment_shader_; |
| 189 int32_t shader_cache_count_; | 189 int32_t shader_cache_count_; |
| 190 std::string shader_cache_shader_; | 190 std::string shader_cache_shader_; |
| 191 std::vector<std::string> varyings_; | 191 std::vector<std::string> varyings_; |
| 192 }; | 192 }; |
| 193 | 193 |
| 194 TEST_F(MemoryProgramCacheTest, CacheSave) { | 194 TEST_F(MemoryProgramCacheTest, CacheSave) { |
| 195 const GLenum kFormat = 1; | 195 const GLenum kFormat = 1; |
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 553 base::Unretained(this))); | 553 base::Unretained(this))); |
| 554 | 554 |
| 555 const int kEvictingProgramId = 11; | 555 const int kEvictingProgramId = 11; |
| 556 const GLuint kEvictingBinaryLength = kCacheSizeBytes - kBinaryLength + 1; | 556 const GLuint kEvictingBinaryLength = kCacheSizeBytes - kBinaryLength + 1; |
| 557 | 557 |
| 558 // save old source and modify for new program | 558 // save old source and modify for new program |
| 559 const std::string& old_sig = fragment_shader_->last_compiled_signature(); | 559 const std::string& old_sig = fragment_shader_->last_compiled_signature(); |
| 560 fragment_shader_->set_source("al sdfkjdk"); | 560 fragment_shader_->set_source("al sdfkjdk"); |
| 561 TestHelper::SetShaderStates(gl_.get(), fragment_shader_, true); | 561 TestHelper::SetShaderStates(gl_.get(), fragment_shader_, true); |
| 562 | 562 |
| 563 scoped_ptr<char[]> bigTestBinary = | 563 std::unique_ptr<char[]> bigTestBinary = |
| 564 scoped_ptr<char[]>(new char[kEvictingBinaryLength]); | 564 std::unique_ptr<char[]>(new char[kEvictingBinaryLength]); |
| 565 for (size_t i = 0; i < kEvictingBinaryLength; ++i) { | 565 for (size_t i = 0; i < kEvictingBinaryLength; ++i) { |
| 566 bigTestBinary[i] = i % 250; | 566 bigTestBinary[i] = i % 250; |
| 567 } | 567 } |
| 568 ProgramBinaryEmulator emulator2(kEvictingBinaryLength, | 568 ProgramBinaryEmulator emulator2(kEvictingBinaryLength, |
| 569 kFormat, | 569 kFormat, |
| 570 bigTestBinary.get()); | 570 bigTestBinary.get()); |
| 571 | 571 |
| 572 SetExpectationsForSaveLinkedProgram(kEvictingProgramId, &emulator2); | 572 SetExpectationsForSaveLinkedProgram(kEvictingProgramId, &emulator2); |
| 573 cache_->SaveLinkedProgram(kEvictingProgramId, | 573 cache_->SaveLinkedProgram(kEvictingProgramId, |
| 574 vertex_shader_, | 574 vertex_shader_, |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 682 fragment_shader_, | 682 fragment_shader_, |
| 683 NULL, | 683 NULL, |
| 684 varyings_, | 684 varyings_, |
| 685 GL_NONE, | 685 GL_NONE, |
| 686 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 686 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
| 687 base::Unretained(this)))); | 687 base::Unretained(this)))); |
| 688 } | 688 } |
| 689 | 689 |
| 690 } // namespace gles2 | 690 } // namespace gles2 |
| 691 } // namespace gpu | 691 } // namespace gpu |
| OLD | NEW |