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 "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/gpu_service_test.h" | 10 #include "gpu/command_buffer/service/gpu_service_test.h" |
11 #include "gpu/command_buffer/service/shader_manager.h" | 11 #include "gpu/command_buffer/service/shader_manager.h" |
12 #include "gpu/command_buffer/service/shader_translator.h" | 12 #include "gpu/command_buffer/service/shader_translator.h" |
| 13 #include "gpu/command_buffer/service/test_helper.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
14 #include "ui/gl/gl_bindings.h" | 15 #include "ui/gl/gl_bindings.h" |
15 #include "ui/gl/gl_mock.h" | 16 #include "ui/gl/gl_mock.h" |
16 | 17 |
17 using ::testing::_; | 18 using ::testing::_; |
18 using ::testing::ElementsAreArray; | 19 using ::testing::ElementsAreArray; |
19 using ::testing::Invoke; | 20 using ::testing::Invoke; |
20 using ::testing::SetArgPointee; | 21 using ::testing::SetArgPointee; |
21 using ::testing::SetArrayArgument; | 22 using ::testing::SetArrayArgument; |
22 | 23 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 vertex_attrib_map["a"] = VariableInfo(1, 34, SH_PRECISION_LOWP, 0, "a"); | 117 vertex_attrib_map["a"] = VariableInfo(1, 34, SH_PRECISION_LOWP, 0, "a"); |
117 vertex_uniform_map["a"] = VariableInfo(0, 10, SH_PRECISION_MEDIUMP, 1, "a"); | 118 vertex_uniform_map["a"] = VariableInfo(0, 10, SH_PRECISION_MEDIUMP, 1, "a"); |
118 vertex_uniform_map["b"] = VariableInfo(2, 3114, SH_PRECISION_HIGHP, 1, "b"); | 119 vertex_uniform_map["b"] = VariableInfo(2, 3114, SH_PRECISION_HIGHP, 1, "b"); |
119 vertex_varying_map["c"] = VariableInfo(3, 2, SH_PRECISION_HIGHP, 1, "c"); | 120 vertex_varying_map["c"] = VariableInfo(3, 2, SH_PRECISION_HIGHP, 1, "c"); |
120 fragment_attrib_map["jjjbb"] = | 121 fragment_attrib_map["jjjbb"] = |
121 VariableInfo(463, 1114, SH_PRECISION_MEDIUMP, 0, "jjjbb"); | 122 VariableInfo(463, 1114, SH_PRECISION_MEDIUMP, 0, "jjjbb"); |
122 fragment_uniform_map["k"] = | 123 fragment_uniform_map["k"] = |
123 VariableInfo(10, 34413, SH_PRECISION_MEDIUMP, 1, "k"); | 124 VariableInfo(10, 34413, SH_PRECISION_MEDIUMP, 1, "k"); |
124 fragment_varying_map["c"] = VariableInfo(3, 2, SH_PRECISION_HIGHP, 1, "c"); | 125 fragment_varying_map["c"] = VariableInfo(3, 2, SH_PRECISION_HIGHP, 1, "c"); |
125 | 126 |
126 vertex_shader_->set_attrib_map(vertex_attrib_map); | 127 vertex_shader_->set_source("bbbalsldkdkdkd"); |
127 vertex_shader_->set_uniform_map(vertex_uniform_map); | 128 fragment_shader_->set_source("bbbal sldkdkdkas 134 ad"); |
128 vertex_shader_->set_varying_map(vertex_varying_map); | |
129 fragment_shader_->set_attrib_map(vertex_attrib_map); | |
130 fragment_shader_->set_uniform_map(vertex_uniform_map); | |
131 fragment_shader_->set_varying_map(vertex_varying_map); | |
132 | 129 |
133 vertex_shader_->UpdateSource("bbbalsldkdkdkd"); | 130 TestHelper::SetShaderStates( |
134 fragment_shader_->UpdateSource("bbbal sldkdkdkas 134 ad"); | 131 gl_.get(), vertex_shader_, true, NULL, NULL, |
135 | 132 &vertex_attrib_map, &vertex_uniform_map, &vertex_varying_map, |
136 vertex_shader_->SetStatus(true, NULL, NULL); | 133 NULL); |
137 fragment_shader_->SetStatus(true, NULL, NULL); | 134 TestHelper::SetShaderStates( |
| 135 gl_.get(), fragment_shader_, true, NULL, NULL, |
| 136 &fragment_attrib_map, &fragment_uniform_map, &fragment_varying_map, |
| 137 NULL); |
138 } | 138 } |
139 | 139 |
140 void SetExpectationsForSaveLinkedProgram( | 140 void SetExpectationsForSaveLinkedProgram( |
141 const GLint program_id, | 141 const GLint program_id, |
142 ProgramBinaryEmulator* emulator) const { | 142 ProgramBinaryEmulator* emulator) const { |
143 EXPECT_CALL(*gl_.get(), | 143 EXPECT_CALL(*gl_.get(), |
144 GetProgramiv(program_id, GL_PROGRAM_BINARY_LENGTH_OES, _)) | 144 GetProgramiv(program_id, GL_PROGRAM_BINARY_LENGTH_OES, _)) |
145 .WillOnce(SetArgPointee<2>(emulator->length())); | 145 .WillOnce(SetArgPointee<2>(emulator->length())); |
146 EXPECT_CALL(*gl_.get(), | 146 EXPECT_CALL(*gl_.get(), |
147 GetProgramBinary(program_id, emulator->length(), _, _, _)) | 147 GetProgramBinary(program_id, emulator->length(), _, _, _)) |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 } | 194 } |
195 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); | 195 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); |
196 | 196 |
197 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); | 197 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); |
198 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, | 198 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, |
199 fragment_shader_, NULL, NULL, | 199 fragment_shader_, NULL, 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_->signature_source(), | 204 vertex_shader_->signature_source(), |
205 NULL, | 205 NULL, |
206 *fragment_shader_->signature_source(), | 206 fragment_shader_->signature_source(), |
207 NULL, | 207 NULL, |
208 NULL)); | 208 NULL)); |
209 EXPECT_EQ(1, shader_cache_count()); | 209 EXPECT_EQ(1, shader_cache_count()); |
210 } | 210 } |
211 | 211 |
212 TEST_F(MemoryProgramCacheTest, LoadProgram) { | 212 TEST_F(MemoryProgramCacheTest, LoadProgram) { |
213 const GLenum kFormat = 1; | 213 const GLenum kFormat = 1; |
214 const int kProgramId = 10; | 214 const int kProgramId = 10; |
215 const int kBinaryLength = 20; | 215 const int kBinaryLength = 20; |
216 char test_binary[kBinaryLength]; | 216 char test_binary[kBinaryLength]; |
217 for (int i = 0; i < kBinaryLength; ++i) { | 217 for (int i = 0; i < kBinaryLength; ++i) { |
218 test_binary[i] = i; | 218 test_binary[i] = i; |
219 } | 219 } |
220 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); | 220 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); |
221 | 221 |
222 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); | 222 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); |
223 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, | 223 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, |
224 fragment_shader_, NULL, NULL, | 224 fragment_shader_, NULL, NULL, |
225 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 225 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
226 base::Unretained(this))); | 226 base::Unretained(this))); |
227 | 227 |
228 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( | 228 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( |
229 *vertex_shader_->signature_source(), | 229 vertex_shader_->signature_source(), |
230 NULL, | 230 NULL, |
231 *fragment_shader_->signature_source(), | 231 fragment_shader_->signature_source(), |
232 NULL, | 232 NULL, |
233 NULL)); | 233 NULL)); |
234 EXPECT_EQ(1, shader_cache_count()); | 234 EXPECT_EQ(1, shader_cache_count()); |
235 | 235 |
236 cache_->Clear(); | 236 cache_->Clear(); |
237 | 237 |
238 cache_->LoadProgram(shader_cache_shader()); | 238 cache_->LoadProgram(shader_cache_shader()); |
239 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( | 239 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( |
240 *vertex_shader_->signature_source(), | 240 vertex_shader_->signature_source(), |
241 NULL, | 241 NULL, |
242 *fragment_shader_->signature_source(), | 242 fragment_shader_->signature_source(), |
243 NULL, | 243 NULL, |
244 NULL)); | 244 NULL)); |
245 } | 245 } |
246 | 246 |
247 TEST_F(MemoryProgramCacheTest, CacheLoadMatchesSave) { | 247 TEST_F(MemoryProgramCacheTest, CacheLoadMatchesSave) { |
248 const GLenum kFormat = 1; | 248 const GLenum kFormat = 1; |
249 const int kProgramId = 10; | 249 const int kProgramId = 10; |
250 const int kBinaryLength = 20; | 250 const int kBinaryLength = 20; |
251 char test_binary[kBinaryLength]; | 251 char test_binary[kBinaryLength]; |
252 for (int i = 0; i < kBinaryLength; ++i) { | 252 for (int i = 0; i < kBinaryLength; ++i) { |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 test_binary[i] = i; | 394 test_binary[i] = i; |
395 } | 395 } |
396 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); | 396 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); |
397 | 397 |
398 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); | 398 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); |
399 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, | 399 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, |
400 fragment_shader_, NULL, NULL, | 400 fragment_shader_, NULL, NULL, |
401 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 401 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
402 base::Unretained(this))); | 402 base::Unretained(this))); |
403 | 403 |
404 const std::string vertex_orig_source = | 404 const std::string vertex_orig_source = vertex_shader_->signature_source(); |
405 *vertex_shader_->signature_source(); | 405 vertex_shader_->set_source("different!"); |
406 vertex_shader_->UpdateSource("different!"); | 406 TestHelper::SetShaderStates(gl_.get(), vertex_shader_, true); |
407 vertex_shader_->SetStatus(true, NULL, NULL); | |
408 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_FAILURE, cache_->LoadLinkedProgram( | 407 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_FAILURE, cache_->LoadLinkedProgram( |
409 kProgramId, | 408 kProgramId, |
410 vertex_shader_, | 409 vertex_shader_, |
411 NULL, | 410 NULL, |
412 fragment_shader_, | 411 fragment_shader_, |
413 NULL, | 412 NULL, |
414 NULL, | 413 NULL, |
415 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 414 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
416 base::Unretained(this)))); | 415 base::Unretained(this)))); |
417 | 416 |
418 vertex_shader_->UpdateSource(vertex_orig_source.c_str()); | 417 vertex_shader_->set_source(vertex_orig_source); |
419 vertex_shader_->SetStatus(true, NULL, NULL); | 418 TestHelper::SetShaderStates(gl_.get(), vertex_shader_, true); |
420 fragment_shader_->UpdateSource("different!"); | 419 fragment_shader_->set_source("different!"); |
421 fragment_shader_->SetStatus(true, NULL, NULL); | 420 TestHelper::SetShaderStates(gl_.get(), fragment_shader_, true); |
422 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_FAILURE, cache_->LoadLinkedProgram( | 421 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_FAILURE, cache_->LoadLinkedProgram( |
423 kProgramId, | 422 kProgramId, |
424 vertex_shader_, | 423 vertex_shader_, |
425 NULL, | 424 NULL, |
426 fragment_shader_, | 425 fragment_shader_, |
427 NULL, | 426 NULL, |
428 NULL, | 427 NULL, |
429 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 428 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
430 base::Unretained(this)))); | 429 base::Unretained(this)))); |
431 } | 430 } |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator1); | 486 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator1); |
488 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, | 487 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, |
489 fragment_shader_, NULL, NULL, | 488 fragment_shader_, NULL, NULL, |
490 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 489 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
491 base::Unretained(this))); | 490 base::Unretained(this))); |
492 | 491 |
493 const int kEvictingProgramId = 11; | 492 const int kEvictingProgramId = 11; |
494 const GLuint kEvictingBinaryLength = kCacheSizeBytes - kBinaryLength + 1; | 493 const GLuint kEvictingBinaryLength = kCacheSizeBytes - kBinaryLength + 1; |
495 | 494 |
496 // save old source and modify for new program | 495 // save old source and modify for new program |
497 const std::string old_source = | 496 const std::string& old_source = fragment_shader_->signature_source(); |
498 *fragment_shader_->signature_source(); | 497 fragment_shader_->set_source("al sdfkjdk"); |
499 fragment_shader_->UpdateSource("al sdfkjdk"); | 498 TestHelper::SetShaderStates(gl_.get(), fragment_shader_, true); |
500 fragment_shader_->SetStatus(true, NULL, NULL); | |
501 | 499 |
502 scoped_ptr<char[]> bigTestBinary = | 500 scoped_ptr<char[]> bigTestBinary = |
503 scoped_ptr<char[]>(new char[kEvictingBinaryLength]); | 501 scoped_ptr<char[]>(new char[kEvictingBinaryLength]); |
504 for (size_t i = 0; i < kEvictingBinaryLength; ++i) { | 502 for (size_t i = 0; i < kEvictingBinaryLength; ++i) { |
505 bigTestBinary[i] = i % 250; | 503 bigTestBinary[i] = i % 250; |
506 } | 504 } |
507 ProgramBinaryEmulator emulator2(kEvictingBinaryLength, | 505 ProgramBinaryEmulator emulator2(kEvictingBinaryLength, |
508 kFormat, | 506 kFormat, |
509 bigTestBinary.get()); | 507 bigTestBinary.get()); |
510 | 508 |
511 SetExpectationsForSaveLinkedProgram(kEvictingProgramId, &emulator2); | 509 SetExpectationsForSaveLinkedProgram(kEvictingProgramId, &emulator2); |
512 cache_->SaveLinkedProgram(kEvictingProgramId, | 510 cache_->SaveLinkedProgram(kEvictingProgramId, |
513 vertex_shader_, | 511 vertex_shader_, |
514 NULL, | 512 NULL, |
515 fragment_shader_, | 513 fragment_shader_, |
516 NULL, | 514 NULL, |
517 NULL, | 515 NULL, |
518 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 516 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
519 base::Unretained(this))); | 517 base::Unretained(this))); |
520 | 518 |
521 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( | 519 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( |
522 *vertex_shader_->signature_source(), | 520 vertex_shader_->signature_source(), |
523 NULL, | 521 NULL, |
524 *fragment_shader_->signature_source(), | 522 fragment_shader_->signature_source(), |
525 NULL, | 523 NULL, |
526 NULL)); | 524 NULL)); |
527 EXPECT_EQ(ProgramCache::LINK_UNKNOWN, cache_->GetLinkedProgramStatus( | 525 EXPECT_EQ(ProgramCache::LINK_UNKNOWN, cache_->GetLinkedProgramStatus( |
528 old_source, | 526 old_source, |
529 NULL, | 527 NULL, |
530 *fragment_shader_->signature_source(), | 528 fragment_shader_->signature_source(), |
531 NULL, | 529 NULL, |
532 NULL)); | 530 NULL)); |
533 } | 531 } |
534 | 532 |
535 TEST_F(MemoryProgramCacheTest, SaveCorrectProgram) { | 533 TEST_F(MemoryProgramCacheTest, SaveCorrectProgram) { |
536 const GLenum kFormat = 1; | 534 const GLenum kFormat = 1; |
537 const int kProgramId = 10; | 535 const int kProgramId = 10; |
538 const int kBinaryLength = 20; | 536 const int kBinaryLength = 20; |
539 char test_binary[kBinaryLength]; | 537 char test_binary[kBinaryLength]; |
540 for (int i = 0; i < kBinaryLength; ++i) { | 538 for (int i = 0; i < kBinaryLength; ++i) { |
541 test_binary[i] = i; | 539 test_binary[i] = i; |
542 } | 540 } |
543 ProgramBinaryEmulator emulator1(kBinaryLength, kFormat, test_binary); | 541 ProgramBinaryEmulator emulator1(kBinaryLength, kFormat, test_binary); |
544 | 542 |
545 vertex_shader_->UpdateSource("different!"); | 543 vertex_shader_->set_source("different!"); |
546 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator1); | 544 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator1); |
547 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, | 545 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, |
548 fragment_shader_, NULL, NULL, | 546 fragment_shader_, NULL, NULL, |
549 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 547 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
550 base::Unretained(this))); | 548 base::Unretained(this))); |
551 | 549 |
552 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( | 550 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( |
553 *vertex_shader_->signature_source(), | 551 vertex_shader_->signature_source(), |
554 NULL, | 552 NULL, |
555 *fragment_shader_->signature_source(), | 553 fragment_shader_->signature_source(), |
556 NULL, | 554 NULL, |
557 NULL)); | 555 NULL)); |
558 } | 556 } |
559 | 557 |
560 TEST_F(MemoryProgramCacheTest, LoadCorrectProgram) { | 558 TEST_F(MemoryProgramCacheTest, LoadCorrectProgram) { |
561 const GLenum kFormat = 1; | 559 const GLenum kFormat = 1; |
562 const int kProgramId = 10; | 560 const int kProgramId = 10; |
563 const int kBinaryLength = 20; | 561 const int kBinaryLength = 20; |
564 char test_binary[kBinaryLength]; | 562 char test_binary[kBinaryLength]; |
565 for (int i = 0; i < kBinaryLength; ++i) { | 563 for (int i = 0; i < kBinaryLength; ++i) { |
566 test_binary[i] = i; | 564 test_binary[i] = i; |
567 } | 565 } |
568 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); | 566 ProgramBinaryEmulator emulator(kBinaryLength, kFormat, test_binary); |
569 | 567 |
570 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); | 568 SetExpectationsForSaveLinkedProgram(kProgramId, &emulator); |
571 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, | 569 cache_->SaveLinkedProgram(kProgramId, vertex_shader_, NULL, |
572 fragment_shader_, NULL, NULL, | 570 fragment_shader_, NULL, NULL, |
573 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 571 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
574 base::Unretained(this))); | 572 base::Unretained(this))); |
575 | 573 |
576 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( | 574 EXPECT_EQ(ProgramCache::LINK_SUCCEEDED, cache_->GetLinkedProgramStatus( |
577 *vertex_shader_->signature_source(), | 575 vertex_shader_->signature_source(), |
578 NULL, | 576 NULL, |
579 *fragment_shader_->signature_source(), | 577 fragment_shader_->signature_source(), |
580 NULL, | 578 NULL, |
581 NULL)); | 579 NULL)); |
582 | 580 |
583 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator); | 581 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator); |
584 | 582 |
585 fragment_shader_->UpdateSource("different!"); | 583 fragment_shader_->set_source("different!"); |
586 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram( | 584 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram( |
587 kProgramId, | 585 kProgramId, |
588 vertex_shader_, | 586 vertex_shader_, |
589 NULL, | 587 NULL, |
590 fragment_shader_, | 588 fragment_shader_, |
591 NULL, | 589 NULL, |
592 NULL, | 590 NULL, |
593 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 591 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
594 base::Unretained(this)))); | 592 base::Unretained(this)))); |
595 } | 593 } |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
629 NULL, | 627 NULL, |
630 fragment_shader_, | 628 fragment_shader_, |
631 NULL, | 629 NULL, |
632 NULL, | 630 NULL, |
633 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, | 631 base::Bind(&MemoryProgramCacheTest::ShaderCacheCb, |
634 base::Unretained(this)))); | 632 base::Unretained(this)))); |
635 } | 633 } |
636 | 634 |
637 } // namespace gles2 | 635 } // namespace gles2 |
638 } // namespace gpu | 636 } // namespace gpu |
OLD | NEW |