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

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

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