Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: gpu/command_buffer/service/memory_program_cache_unittest.cc

Issue 2378583003: Ping watchdog thread during GpuChannel destruction (Closed)
Patch Set: feedback Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698