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

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

Issue 159173003: Revert 250147 "Merge 249547 "Add a gpu driver bug workaround to ..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1750/src/
Patch Set: Created 6 years, 10 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/program_manager.cc ('k') | gpu/config/gpu_driver_bug_list_json.cc » ('j') | 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/program_manager.h" 5 #include "gpu/command_buffer/service/program_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 ASSERT_TRUE(fragment_shader != NULL); 243 ASSERT_TRUE(fragment_shader != NULL);
244 vertex_shader->SetStatus(true, NULL, NULL); 244 vertex_shader->SetStatus(true, NULL, NULL);
245 fragment_shader->SetStatus(true, NULL, NULL); 245 fragment_shader->SetStatus(true, NULL, NULL);
246 246
247 program_ = manager_.CreateProgram( 247 program_ = manager_.CreateProgram(
248 kClientProgramId, kServiceProgramId); 248 kClientProgramId, kServiceProgramId);
249 ASSERT_TRUE(program_ != NULL); 249 ASSERT_TRUE(program_ != NULL);
250 250
251 program_->AttachShader(&shader_manager_, vertex_shader); 251 program_->AttachShader(&shader_manager_, vertex_shader);
252 program_->AttachShader(&shader_manager_, fragment_shader); 252 program_->AttachShader(&shader_manager_, fragment_shader);
253 program_->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed, 253 program_->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
254 base::Bind(&ShaderCacheCb));
255 } 254 }
256 255
257 void SetupShader(AttribInfo* attribs, size_t num_attribs, 256 void SetupShader(AttribInfo* attribs, size_t num_attribs,
258 UniformInfo* uniforms, size_t num_uniforms, 257 UniformInfo* uniforms, size_t num_uniforms,
259 GLuint service_id) { 258 GLuint service_id) {
260 TestHelper::SetupShader( 259 TestHelper::SetupShader(
261 gl_.get(), attribs, num_attribs, uniforms, num_uniforms, service_id); 260 gl_.get(), attribs, num_attribs, uniforms, num_uniforms, service_id);
262 } 261 }
263 262
264 void SetupDefaultShaderExpectations() { 263 void SetupDefaultShaderExpectations() {
(...skipping 12 matching lines...) Expand all
277 } 276 }
278 277
279 // Return true if link status matches expected_link_status 278 // Return true if link status matches expected_link_status
280 bool LinkAsExpected(Program* program, 279 bool LinkAsExpected(Program* program,
281 bool expected_link_status) { 280 bool expected_link_status) {
282 GLuint service_id = program->service_id(); 281 GLuint service_id = program->service_id();
283 if (expected_link_status) { 282 if (expected_link_status) {
284 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms, 283 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
285 service_id); 284 service_id);
286 } 285 }
287 program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed, 286 program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
288 base::Bind(&ShaderCacheCb));
289 GLint link_status; 287 GLint link_status;
290 program->GetProgramiv(GL_LINK_STATUS, &link_status); 288 program->GetProgramiv(GL_LINK_STATUS, &link_status);
291 return (static_cast<bool>(link_status) == expected_link_status); 289 return (static_cast<bool>(link_status) == expected_link_status);
292 } 290 }
293 291
294 Program* SetupShaderVariableTest(const VarInfo* vertex_variables, 292 Program* SetupShaderVariableTest(const VarInfo* vertex_variables,
295 size_t vertex_variable_size, 293 size_t vertex_variable_size,
296 const VarInfo* fragment_variables, 294 const VarInfo* fragment_variables,
297 size_t fragment_variable_size) { 295 size_t fragment_variable_size) {
298 // Set up shader 296 // Set up shader
(...skipping 416 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 vshader->SetStatus(true, "", NULL); 713 vshader->SetStatus(true, "", NULL);
716 Shader* fshader = shader_manager_.CreateShader( 714 Shader* fshader = shader_manager_.CreateShader(
717 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); 715 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER);
718 ASSERT_TRUE(fshader != NULL); 716 ASSERT_TRUE(fshader != NULL);
719 fshader->SetStatus(true, "", NULL); 717 fshader->SetStatus(true, "", NULL);
720 Program* program = 718 Program* program =
721 manager_.CreateProgram(kClientProgramId, kServiceProgramId); 719 manager_.CreateProgram(kClientProgramId, kServiceProgramId);
722 ASSERT_TRUE(program != NULL); 720 ASSERT_TRUE(program != NULL);
723 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); 721 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader));
724 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); 722 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader));
725 program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed, 723 program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
726 base::Bind(&ShaderCacheCb));
727 GLint value = 0; 724 GLint value = 0;
728 program->GetProgramiv(GL_ACTIVE_ATTRIBUTES, &value); 725 program->GetProgramiv(GL_ACTIVE_ATTRIBUTES, &value);
729 EXPECT_EQ(3, value); 726 EXPECT_EQ(3, value);
730 // Check that we skipped the "gl_" uniform. 727 // Check that we skipped the "gl_" uniform.
731 program->GetProgramiv(GL_ACTIVE_UNIFORMS, &value); 728 program->GetProgramiv(GL_ACTIVE_UNIFORMS, &value);
732 EXPECT_EQ(2, value); 729 EXPECT_EQ(2, value);
733 // Check that our max length adds room for the array spec and is not as long 730 // Check that our max length adds room for the array spec and is not as long
734 // as the "gl_" uniform we skipped. 731 // as the "gl_" uniform we skipped.
735 // +4u is to account for "gl_" and NULL terminator. 732 // +4u is to account for "gl_" and NULL terminator.
736 program->GetProgramiv(GL_ACTIVE_UNIFORM_MAX_LENGTH, &value); 733 program->GetProgramiv(GL_ACTIVE_UNIFORM_MAX_LENGTH, &value);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 vshader->SetStatus(true, "", NULL); 781 vshader->SetStatus(true, "", NULL);
785 Shader* fshader = shader_manager_.CreateShader( 782 Shader* fshader = shader_manager_.CreateShader(
786 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER); 783 kFShaderClientId, kFShaderServiceId, GL_FRAGMENT_SHADER);
787 ASSERT_TRUE(fshader != NULL); 784 ASSERT_TRUE(fshader != NULL);
788 fshader->SetStatus(true, "", NULL); 785 fshader->SetStatus(true, "", NULL);
789 Program* program = 786 Program* program =
790 manager_.CreateProgram(kClientProgramId, kServiceProgramId); 787 manager_.CreateProgram(kClientProgramId, kServiceProgramId);
791 ASSERT_TRUE(program != NULL); 788 ASSERT_TRUE(program != NULL);
792 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); 789 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader));
793 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); 790 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader));
794 program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed, 791 program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
795 base::Bind(&ShaderCacheCb));
796 792
797 // Check that we get the correct locations. 793 // Check that we get the correct locations.
798 EXPECT_EQ(kUniform2FakeLocation, 794 EXPECT_EQ(kUniform2FakeLocation,
799 program->GetUniformFakeLocation(kUniform2Name)); 795 program->GetUniformFakeLocation(kUniform2Name));
800 EXPECT_EQ(kUniform3FakeLocation, 796 EXPECT_EQ(kUniform3FakeLocation,
801 program->GetUniformFakeLocation(kUniform3Name)); 797 program->GetUniformFakeLocation(kUniform3Name));
802 } 798 }
803 799
804 // Some GL drivers incorrectly return the wrong type. For example they return 800 // Some GL drivers incorrectly return the wrong type. For example they return
805 // GL_FLOAT_VEC2 when they should return GL_FLOAT_MAT2. Check we handle this. 801 // GL_FLOAT_VEC2 when they should return GL_FLOAT_MAT2. Check we handle this.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 const size_t kNumUniforms = arraysize(kUniforms); 882 const size_t kNumUniforms = arraysize(kUniforms);
887 static const GLuint kClientProgramId = 1234; 883 static const GLuint kClientProgramId = 1234;
888 static const GLuint kServiceProgramId = 5679; 884 static const GLuint kServiceProgramId = 5679;
889 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms, 885 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
890 kServiceProgramId); 886 kServiceProgramId);
891 Program* program = manager_.CreateProgram( 887 Program* program = manager_.CreateProgram(
892 kClientProgramId, kServiceProgramId); 888 kClientProgramId, kServiceProgramId);
893 ASSERT_TRUE(program!= NULL); 889 ASSERT_TRUE(program!= NULL);
894 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader)); 890 EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader));
895 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader)); 891 EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader));
896 program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed, 892 program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
897 base::Bind(&ShaderCacheCb));
898 // Check that we got the good type, not the bad. 893 // Check that we got the good type, not the bad.
899 // Check Attribs 894 // Check Attribs
900 for (unsigned index = 0; index < kNumAttribs; ++index) { 895 for (unsigned index = 0; index < kNumAttribs; ++index) {
901 const Program::VertexAttrib* attrib_info = 896 const Program::VertexAttrib* attrib_info =
902 program->GetAttribInfo(index); 897 program->GetAttribInfo(index);
903 ASSERT_TRUE(attrib_info != NULL); 898 ASSERT_TRUE(attrib_info != NULL);
904 ShaderTranslator::VariableMap::const_iterator it = attrib_map.find( 899 ShaderTranslator::VariableMap::const_iterator it = attrib_map.find(
905 attrib_info->name); 900 attrib_info->name);
906 ASSERT_TRUE(it != attrib_map.end()); 901 ASSERT_TRUE(it != attrib_map.end());
907 EXPECT_EQ(it->first, attrib_info->name); 902 EXPECT_EQ(it->first, attrib_info->name);
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
1352 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying }, 1347 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
1353 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying } 1348 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1354 }; 1349 };
1355 const VarInfo kFragmentVaryings[] = { 1350 const VarInfo kFragmentVaryings[] = {
1356 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying }, 1351 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
1357 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying } 1352 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1358 }; 1353 };
1359 Program* program = SetupShaderVariableTest( 1354 Program* program = SetupShaderVariableTest(
1360 kVertexVaryings, 2, kFragmentVaryings, 2); 1355 kVertexVaryings, 2, kFragmentVaryings, 2);
1361 1356
1362 EXPECT_FALSE( 1357 EXPECT_FALSE(program->CheckVaryingsPacking());
1363 program->CheckVaryingsPacking(Program::kCountOnlyStaticallyUsed));
1364 EXPECT_TRUE(LinkAsExpected(program, false)); 1358 EXPECT_TRUE(LinkAsExpected(program, false));
1365 } 1359 }
1366 1360
1367 // Varyings go over 8 rows but some are inactive 1361 // Varyings go over 8 rows but some are inactive
1368 TEST_F(ProgramManagerWithShaderTest, TooManyInactiveVaryings) { 1362 TEST_F(ProgramManagerWithShaderTest, TooManyInactiveVaryings) {
1369 const VarInfo kVertexVaryings[] = { 1363 const VarInfo kVertexVaryings[] = {
1370 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying }, 1364 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
1371 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying } 1365 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1372 }; 1366 };
1373 const VarInfo kFragmentVaryings[] = { 1367 const VarInfo kFragmentVaryings[] = {
1374 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 0, "a", kVarVarying }, 1368 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 0, "a", kVarVarying },
1375 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying } 1369 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1376 }; 1370 };
1377 Program* program = SetupShaderVariableTest( 1371 Program* program = SetupShaderVariableTest(
1378 kVertexVaryings, 2, kFragmentVaryings, 2); 1372 kVertexVaryings, 2, kFragmentVaryings, 2);
1379 1373
1380 EXPECT_TRUE( 1374 EXPECT_TRUE(program->CheckVaryingsPacking());
1381 program->CheckVaryingsPacking(Program::kCountOnlyStaticallyUsed));
1382 EXPECT_TRUE(LinkAsExpected(program, true)); 1375 EXPECT_TRUE(LinkAsExpected(program, true));
1383 } 1376 }
1384 1377
1385 // Varyings go over 8 rows but some are inactive.
1386 // However, we still fail the check if kCountAll option is used.
1387 TEST_F(ProgramManagerWithShaderTest, CountAllVaryingsInPacking) {
1388 const VarInfo kVertexVaryings[] = {
1389 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
1390 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1391 };
1392 const VarInfo kFragmentVaryings[] = {
1393 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 0, "a", kVarVarying },
1394 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1395 };
1396 Program* program = SetupShaderVariableTest(
1397 kVertexVaryings, 2, kFragmentVaryings, 2);
1398
1399 EXPECT_FALSE(program->CheckVaryingsPacking(Program::kCountAll));
1400 }
1401
1402 TEST_F(ProgramManagerWithShaderTest, ClearWithSamplerTypes) { 1378 TEST_F(ProgramManagerWithShaderTest, ClearWithSamplerTypes) {
1403 const GLuint kVShaderClientId = 2001; 1379 const GLuint kVShaderClientId = 2001;
1404 const GLuint kFShaderClientId = 2002; 1380 const GLuint kFShaderClientId = 2002;
1405 const GLuint kVShaderServiceId = 3001; 1381 const GLuint kVShaderServiceId = 3001;
1406 const GLuint kFShaderServiceId = 3002; 1382 const GLuint kFShaderServiceId = 3002;
1407 Shader* vshader = shader_manager_.CreateShader( 1383 Shader* vshader = shader_manager_.CreateShader(
1408 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); 1384 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER);
1409 ASSERT_TRUE(vshader != NULL); 1385 ASSERT_TRUE(vshader != NULL);
1410 vshader->SetStatus(true, NULL, NULL); 1386 vshader->SetStatus(true, NULL, NULL);
1411 Shader* fshader = shader_manager_.CreateShader( 1387 Shader* fshader = shader_manager_.CreateShader(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1457 kUniform3FakeLocation, 1433 kUniform3FakeLocation,
1458 kUniform3RealLocation, 1434 kUniform3RealLocation,
1459 kUniform3DesiredLocation, 1435 kUniform3DesiredLocation,
1460 kUniform3GoodName, 1436 kUniform3GoodName,
1461 }, 1437 },
1462 }; 1438 };
1463 const size_t kNumAttribs = arraysize(kAttribs); 1439 const size_t kNumAttribs = arraysize(kAttribs);
1464 const size_t kNumUniforms = arraysize(kUniforms); 1440 const size_t kNumUniforms = arraysize(kUniforms);
1465 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms, 1441 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
1466 kServiceProgramId); 1442 kServiceProgramId);
1467 program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed, 1443 program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
1468 base::Bind(&ShaderCacheCb));
1469 SetupExpectationsForClearingUniforms(kUniforms, kNumUniforms); 1444 SetupExpectationsForClearingUniforms(kUniforms, kNumUniforms);
1470 manager_.ClearUniforms(program); 1445 manager_.ClearUniforms(program);
1471 } 1446 }
1472 } 1447 }
1473 1448
1474 TEST_F(ProgramManagerWithShaderTest, BindUniformLocation) { 1449 TEST_F(ProgramManagerWithShaderTest, BindUniformLocation) {
1475 const GLuint kVShaderClientId = 2001; 1450 const GLuint kVShaderClientId = 2001;
1476 const GLuint kFShaderClientId = 2002; 1451 const GLuint kFShaderClientId = 2002;
1477 const GLuint kVShaderServiceId = 3001; 1452 const GLuint kVShaderServiceId = 3001;
1478 const GLuint kFShaderServiceId = 3002; 1453 const GLuint kFShaderServiceId = 3002;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1530 kUniform3RealLocation, 1505 kUniform3RealLocation,
1531 kUniform3DesiredLocation, 1506 kUniform3DesiredLocation,
1532 kUniform3GoodName, 1507 kUniform3GoodName,
1533 }, 1508 },
1534 }; 1509 };
1535 1510
1536 const size_t kNumAttribs = arraysize(kAttribs); 1511 const size_t kNumAttribs = arraysize(kAttribs);
1537 const size_t kNumUniforms = arraysize(kUniforms); 1512 const size_t kNumUniforms = arraysize(kUniforms);
1538 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms, 1513 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
1539 kServiceProgramId); 1514 kServiceProgramId);
1540 program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed, 1515 program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
1541 base::Bind(&ShaderCacheCb));
1542 1516
1543 EXPECT_EQ(kUniform1DesiredLocation, 1517 EXPECT_EQ(kUniform1DesiredLocation,
1544 program->GetUniformFakeLocation(kUniform1Name)); 1518 program->GetUniformFakeLocation(kUniform1Name));
1545 EXPECT_EQ(kUniform3DesiredLocation, 1519 EXPECT_EQ(kUniform3DesiredLocation,
1546 program->GetUniformFakeLocation(kUniform3BadName)); 1520 program->GetUniformFakeLocation(kUniform3BadName));
1547 EXPECT_EQ(kUniform3DesiredLocation, 1521 EXPECT_EQ(kUniform3DesiredLocation,
1548 program->GetUniformFakeLocation(kUniform3GoodName)); 1522 program->GetUniformFakeLocation(kUniform3GoodName));
1549 } 1523 }
1550 1524
1551 class ProgramManagerWithCacheTest : public testing::Test { 1525 class ProgramManagerWithCacheTest : public testing::Test {
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
1755 const GLuint ProgramManagerWithCacheTest::kFragmentShaderClientId; 1729 const GLuint ProgramManagerWithCacheTest::kFragmentShaderClientId;
1756 const GLuint ProgramManagerWithCacheTest::kVertexShaderServiceId; 1730 const GLuint ProgramManagerWithCacheTest::kVertexShaderServiceId;
1757 const GLuint ProgramManagerWithCacheTest::kFragmentShaderServiceId; 1731 const GLuint ProgramManagerWithCacheTest::kFragmentShaderServiceId;
1758 #endif 1732 #endif
1759 1733
1760 TEST_F(ProgramManagerWithCacheTest, CacheProgramOnSuccessfulLink) { 1734 TEST_F(ProgramManagerWithCacheTest, CacheProgramOnSuccessfulLink) {
1761 SetShadersCompiled(); 1735 SetShadersCompiled();
1762 SetExpectationsForProgramLink(); 1736 SetExpectationsForProgramLink();
1763 SetExpectationsForProgramCached(); 1737 SetExpectationsForProgramCached();
1764 EXPECT_TRUE(program_->Link(NULL, NULL, NULL, 1738 EXPECT_TRUE(program_->Link(NULL, NULL, NULL,
1765 Program::kCountOnlyStaticallyUsed, base::Bind(&ShaderCacheCb))); 1739 base::Bind(&ShaderCacheCb)));
1766 } 1740 }
1767 1741
1768 TEST_F(ProgramManagerWithCacheTest, LoadProgramOnProgramCacheHit) { 1742 TEST_F(ProgramManagerWithCacheTest, LoadProgramOnProgramCacheHit) {
1769 SetShadersCompiled(); 1743 SetShadersCompiled();
1770 SetProgramCached(); 1744 SetProgramCached();
1771 1745
1772 SetExpectationsForNoCompile(vertex_shader_); 1746 SetExpectationsForNoCompile(vertex_shader_);
1773 SetExpectationsForNoCompile(fragment_shader_); 1747 SetExpectationsForNoCompile(fragment_shader_);
1774 SetExpectationsForProgramLoad(ProgramCache::PROGRAM_LOAD_SUCCESS); 1748 SetExpectationsForProgramLoad(ProgramCache::PROGRAM_LOAD_SUCCESS);
1775 SetExpectationsForNotCachingProgram(); 1749 SetExpectationsForNotCachingProgram();
1776 SetExpectationsForProgramLoadSuccess(); 1750 SetExpectationsForProgramLoadSuccess();
1777 1751
1778 EXPECT_TRUE(program_->Link(NULL, NULL, NULL, 1752 EXPECT_TRUE(program_->Link(NULL, NULL, NULL,
1779 Program::kCountOnlyStaticallyUsed, base::Bind(&ShaderCacheCb))); 1753 base::Bind(&ShaderCacheCb)));
1780 } 1754 }
1781 1755
1782 } // namespace gles2 1756 } // namespace gles2
1783 } // namespace gpu 1757 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/program_manager.cc ('k') | gpu/config/gpu_driver_bug_list_json.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698