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

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

Issue 13872012: Revert r192949 "Disable shader disk cache by default." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « gpu/command_buffer/service/memory_program_cache.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/bind.h" 7 #include "base/bind.h"
8 #include "gpu/command_buffer/common/gles2_cmd_format.h" 8 #include "gpu/command_buffer/common/gles2_cmd_format.h"
9 #include "gpu/command_buffer/service/gl_utils.h" 9 #include "gpu/command_buffer/service/gl_utils.h"
10 #include "gpu/command_buffer/service/shader_manager.h" 10 #include "gpu/command_buffer/service/shader_manager.h"
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 197
198 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); 198 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator);
199 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL, 199 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL,
200 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, 200 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
201 base::Unretained(this))); 201 base::Unretained(this)));
202 202
203 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( 203 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus(
204 *vertex_shader_->deferred_compilation_source(), 204 *vertex_shader_->deferred_compilation_source(),
205 *fragment_shader_->deferred_compilation_source(), 205 *fragment_shader_->deferred_compilation_source(),
206 NULL)); 206 NULL));
207 EXPECT_EQ(1, shader_cache_count());
208 }
209
210 TEST_F(MemoryProgramCacheTest, LoadProgram) {
211 const GLenum kFormat = 1;
212 const int kProgramId = 10;
213 const int kBinaryLength = 20;
214 char test_binary[kBinaryLength];
215 for (int i = 0; i < kBinaryLength; ++i) {
216 test_binary[i] = i;
217 }
218 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary);
219
220 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator);
221 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL,
222 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
223 base::Unretained(this)));
224
225 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus(
226 *vertex_shader_->deferred_compilation_source(),
227 *fragment_shader_->deferred_compilation_source(),
228 NULL));
229 EXPECT_EQ(1, shader_cache_count());
230
231 cache_->Clear();
232
233 cache_->LoadProgram(shader_cache_shader());
234 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus(
235 *vertex_shader_->deferred_compilation_source(),
236 *fragment_shader_->deferred_compilation_source(),
237 NULL));
207 } 238 }
208 239
209 TEST_F(MemoryProgramCacheTest, CacheLoadMatchesSave) { 240 TEST_F(MemoryProgramCacheTest, CacheLoadMatchesSave) {
210 const GLenum kFormat = 1; 241 const GLenum kFormat = 1;
211 const int kProgramId = 10; 242 const int kProgramId = 10;
212 const int kBinaryLength = 20; 243 const int kBinaryLength = 20;
213 char test_binary[kBinaryLength]; 244 char test_binary[kBinaryLength];
214 for (int i = 0; i < kBinaryLength; ++i) { 245 for (int i = 0; i < kBinaryLength; ++i) {
215 test_binary[i] = i; 246 test_binary[i] = i;
216 } 247 }
217 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); 248 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary);
218 249
219 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); 250 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator);
220 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL, 251 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL,
221 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, 252 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
222 base::Unretained(this))); 253 base::Unretained(this)));
254 EXPECT_EQ(1, shader_cache_count());
223 255
224 VariableMap vertex_attrib_map = vertex_shader_->attrib_map(); 256 VariableMap vertex_attrib_map = vertex_shader_->attrib_map();
225 VariableMap vertex_uniform_map = vertex_shader_->uniform_map(); 257 VariableMap vertex_uniform_map = vertex_shader_->uniform_map();
226 VariableMap fragment_attrib_map = fragment_shader_->attrib_map(); 258 VariableMap fragment_attrib_map = fragment_shader_->attrib_map();
227 VariableMap fragment_uniform_map = fragment_shader_->uniform_map(); 259 VariableMap fragment_uniform_map = fragment_shader_->uniform_map();
228 260
229 vertex_shader_->set_attrib_map(VariableMap()); 261 vertex_shader_->set_attrib_map(VariableMap());
230 vertex_shader_->set_uniform_map(VariableMap()); 262 vertex_shader_->set_uniform_map(VariableMap());
231 fragment_shader_->set_attrib_map(VariableMap()); 263 fragment_shader_->set_attrib_map(VariableMap());
232 fragment_shader_->set_uniform_map(VariableMap()); 264 fragment_shader_->set_uniform_map(VariableMap());
(...skipping 25 matching lines...) Expand all
258 char test_binary[kBinaryLength]; 290 char test_binary[kBinaryLength];
259 for (int i = 0; i < kBinaryLength; ++i) { 291 for (int i = 0; i < kBinaryLength; ++i) {
260 test_binary[i] = i; 292 test_binary[i] = i;
261 } 293 }
262 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); 294 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary);
263 295
264 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); 296 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator);
265 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL, 297 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL,
266 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, 298 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
267 base::Unretained(this))); 299 base::Unretained(this)));
300 EXPECT_EQ(1, shader_cache_count());
268 301
269 VariableMap vertex_attrib_map = vertex_shader_->attrib_map(); 302 VariableMap vertex_attrib_map = vertex_shader_->attrib_map();
270 VariableMap vertex_uniform_map = vertex_shader_->uniform_map(); 303 VariableMap vertex_uniform_map = vertex_shader_->uniform_map();
271 VariableMap fragment_attrib_map = fragment_shader_->attrib_map(); 304 VariableMap fragment_attrib_map = fragment_shader_->attrib_map();
272 VariableMap fragment_uniform_map = fragment_shader_->uniform_map(); 305 VariableMap fragment_uniform_map = fragment_shader_->uniform_map();
273 306
274 vertex_shader_->set_attrib_map(VariableMap()); 307 vertex_shader_->set_attrib_map(VariableMap());
275 vertex_shader_->set_uniform_map(VariableMap()); 308 vertex_shader_->set_uniform_map(VariableMap());
276 fragment_shader_->set_attrib_map(VariableMap()); 309 fragment_shader_->set_attrib_map(VariableMap());
277 fragment_shader_->set_uniform_map(VariableMap()); 310 fragment_shader_->set_uniform_map(VariableMap());
278 311
279 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator); 312 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator);
280 313
314 cache_->Clear();
315 cache_->LoadProgram(shader_cache_shader());
316
281 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram( 317 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram(
282 kProgramId, 318 kProgramId,
283 vertex_shader_, 319 vertex_shader_,
284 fragment_shader_, 320 fragment_shader_,
285 NULL, 321 NULL,
286 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, 322 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
287 base::Unretained(this)))); 323 base::Unretained(this))));
288 324
289 // apparently the hash_map implementation on android doesn't have the 325 // apparently the hash_map implementation on android doesn't have the
290 // equality operator 326 // equality operator
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 kProgramId, 572 kProgramId,
537 vertex_shader_, 573 vertex_shader_,
538 fragment_shader_, 574 fragment_shader_,
539 NULL, 575 NULL,
540 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, 576 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
541 base::Unretained(this)))); 577 base::Unretained(this))));
542 } 578 }
543 579
544 } // namespace gles2 580 } // namespace gles2
545 } // namespace gpu 581 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/memory_program_cache.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698