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

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

Issue 13800013: 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));
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 23 matching lines...) Expand all
288 char test_binary[kBinaryLength]; 256 char test_binary[kBinaryLength];
289 for (int i = 0; i < kBinaryLength; ++i) { 257 for (int i = 0; i < kBinaryLength; ++i) {
290 test_binary[i] = i; 258 test_binary[i] = i;
291 } 259 }
292 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); 260 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary);
293 261
294 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); 262 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator);
295 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL, 263 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, fragment_shader_, NULL,
296 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, 264 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb,
297 base::Unretained(this))); 265 base::Unretained(this)));
298 EXPECT_EQ(1, shader_cache_count());
299 266
300 VariableMap vertex_attrib_map = vertex_shader_->attrib_map(); 267 VariableMap vertex_attrib_map = vertex_shader_->attrib_map();
301 VariableMap vertex_uniform_map = vertex_shader_->uniform_map(); 268 VariableMap vertex_uniform_map = vertex_shader_->uniform_map();
302 VariableMap fragment_attrib_map = fragment_shader_->attrib_map(); 269 VariableMap fragment_attrib_map = fragment_shader_->attrib_map();
303 VariableMap fragment_uniform_map = fragment_shader_->uniform_map(); 270 VariableMap fragment_uniform_map = fragment_shader_->uniform_map();
304 271
305 vertex_shader_->set_attrib_map(VariableMap()); 272 vertex_shader_->set_attrib_map(VariableMap());
306 vertex_shader_->set_uniform_map(VariableMap()); 273 vertex_shader_->set_uniform_map(VariableMap());
307 fragment_shader_->set_attrib_map(VariableMap()); 274 fragment_shader_->set_attrib_map(VariableMap());
308 fragment_shader_->set_uniform_map(VariableMap()); 275 fragment_shader_->set_uniform_map(VariableMap());
309 276
310 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator); 277 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator);
311 278
312 cache_->Clear();
313 cache_->LoadProgram(shader_cache_shader());
314
315 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram( 279 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram(
316 kProgramId, 280 kProgramId,
317 vertex_shader_, 281 vertex_shader_,
318 fragment_shader_, 282 fragment_shader_,
319 NULL)); 283 NULL));
320 284
321 // apparently the hash_map implementation on android doesn't have the 285 // apparently the hash_map implementation on android doesn't have the
322 // equality operator 286 // equality operator
323 #if !defined(OS_ANDROID) 287 #if !defined(OS_ANDROID)
324 EXPECT_EQ(vertex_attrib_map, vertex_shader_->attrib_map()); 288 EXPECT_EQ(vertex_attrib_map, vertex_shader_->attrib_map());
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator2); 518 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator2);
555 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram( 519 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram(
556 kProgramId, 520 kProgramId,
557 vertex_shader_, 521 vertex_shader_,
558 fragment_shader_, 522 fragment_shader_,
559 NULL)); 523 NULL));
560 } 524 }
561 525
562 } // namespace gles2 526 } // namespace gles2
563 } // namespace gpu 527 } // 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