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

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

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