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

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

Issue 153173002: Add a gpu driver bug workaround to count in all varyings in packing check. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: build fix 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 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
1368 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying }, 1373 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
1369 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying } 1374 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1370 }; 1375 };
1371 const VarInfo kFragmentVaryings[] = { 1376 const VarInfo kFragmentVaryings[] = {
1372 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying }, 1377 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
1373 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying } 1378 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1374 }; 1379 };
1375 Program* program = SetupShaderVariableTest( 1380 Program* program = SetupShaderVariableTest(
1376 kVertexVaryings, 2, kFragmentVaryings, 2); 1381 kVertexVaryings, 2, kFragmentVaryings, 2);
1377 1382
1378 EXPECT_FALSE(program->CheckVaryingsPacking()); 1383 EXPECT_FALSE(
1384 program->CheckVaryingsPacking(Program::kCountOnlyStaticallyUsed));
1379 EXPECT_TRUE(LinkAsExpected(program, false)); 1385 EXPECT_TRUE(LinkAsExpected(program, false));
1380 } 1386 }
1381 1387
1382 // Varyings go over 8 rows but some are inactive 1388 // Varyings go over 8 rows but some are inactive
1383 TEST_F(ProgramManagerWithShaderTest, TooManyInactiveVaryings) { 1389 TEST_F(ProgramManagerWithShaderTest, TooManyInactiveVaryings) {
1384 const VarInfo kVertexVaryings[] = { 1390 const VarInfo kVertexVaryings[] = {
1385 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying }, 1391 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
1386 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying } 1392 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1387 }; 1393 };
1388 const VarInfo kFragmentVaryings[] = { 1394 const VarInfo kFragmentVaryings[] = {
1389 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 0, "a", kVarVarying }, 1395 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 0, "a", kVarVarying },
1390 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying } 1396 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1391 }; 1397 };
1392 Program* program = SetupShaderVariableTest( 1398 Program* program = SetupShaderVariableTest(
1393 kVertexVaryings, 2, kFragmentVaryings, 2); 1399 kVertexVaryings, 2, kFragmentVaryings, 2);
1394 1400
1395 EXPECT_TRUE(program->CheckVaryingsPacking()); 1401 EXPECT_TRUE(
1402 program->CheckVaryingsPacking(Program::kCountOnlyStaticallyUsed));
1396 EXPECT_TRUE(LinkAsExpected(program, true)); 1403 EXPECT_TRUE(LinkAsExpected(program, true));
1397 } 1404 }
1398 1405
1406 // Varyings go over 8 rows but some are inactive.
1407 // However, we still fail the check if kCountAll option is used.
1408 TEST_F(ProgramManagerWithShaderTest, CountAllVaryingsInPacking) {
1409 const VarInfo kVertexVaryings[] = {
1410 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
1411 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1412 };
1413 const VarInfo kFragmentVaryings[] = {
1414 { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 0, "a", kVarVarying },
1415 { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
1416 };
1417 Program* program = SetupShaderVariableTest(
1418 kVertexVaryings, 2, kFragmentVaryings, 2);
1419
1420 EXPECT_FALSE(program->CheckVaryingsPacking(Program::kCountAll));
1421 }
1422
1399 TEST_F(ProgramManagerWithShaderTest, ClearWithSamplerTypes) { 1423 TEST_F(ProgramManagerWithShaderTest, ClearWithSamplerTypes) {
1400 const GLuint kVShaderClientId = 2001; 1424 const GLuint kVShaderClientId = 2001;
1401 const GLuint kFShaderClientId = 2002; 1425 const GLuint kFShaderClientId = 2002;
1402 const GLuint kVShaderServiceId = 3001; 1426 const GLuint kVShaderServiceId = 3001;
1403 const GLuint kFShaderServiceId = 3002; 1427 const GLuint kFShaderServiceId = 3002;
1404 Shader* vshader = shader_manager_.CreateShader( 1428 Shader* vshader = shader_manager_.CreateShader(
1405 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER); 1429 kVShaderClientId, kVShaderServiceId, GL_VERTEX_SHADER);
1406 ASSERT_TRUE(vshader != NULL); 1430 ASSERT_TRUE(vshader != NULL);
1407 vshader->SetStatus(true, NULL, NULL); 1431 vshader->SetStatus(true, NULL, NULL);
1408 Shader* fshader = shader_manager_.CreateShader( 1432 Shader* fshader = shader_manager_.CreateShader(
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1454 kUniform3FakeLocation, 1478 kUniform3FakeLocation,
1455 kUniform3RealLocation, 1479 kUniform3RealLocation,
1456 kUniform3DesiredLocation, 1480 kUniform3DesiredLocation,
1457 kUniform3GoodName, 1481 kUniform3GoodName,
1458 }, 1482 },
1459 }; 1483 };
1460 const size_t kNumAttribs = arraysize(kAttribs); 1484 const size_t kNumAttribs = arraysize(kAttribs);
1461 const size_t kNumUniforms = arraysize(kUniforms); 1485 const size_t kNumUniforms = arraysize(kUniforms);
1462 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms, 1486 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
1463 kServiceProgramId); 1487 kServiceProgramId);
1464 program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb)); 1488 program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
1489 base::Bind(&ShaderCacheCb));
1465 SetupExpectationsForClearingUniforms(kUniforms, kNumUniforms); 1490 SetupExpectationsForClearingUniforms(kUniforms, kNumUniforms);
1466 manager_.ClearUniforms(program); 1491 manager_.ClearUniforms(program);
1467 } 1492 }
1468 } 1493 }
1469 1494
1470 TEST_F(ProgramManagerWithShaderTest, BindUniformLocation) { 1495 TEST_F(ProgramManagerWithShaderTest, BindUniformLocation) {
1471 const GLuint kVShaderClientId = 2001; 1496 const GLuint kVShaderClientId = 2001;
1472 const GLuint kFShaderClientId = 2002; 1497 const GLuint kFShaderClientId = 2002;
1473 const GLuint kVShaderServiceId = 3001; 1498 const GLuint kVShaderServiceId = 3001;
1474 const GLuint kFShaderServiceId = 3002; 1499 const GLuint kFShaderServiceId = 3002;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1526 kUniform3RealLocation, 1551 kUniform3RealLocation,
1527 kUniform3DesiredLocation, 1552 kUniform3DesiredLocation,
1528 kUniform3GoodName, 1553 kUniform3GoodName,
1529 }, 1554 },
1530 }; 1555 };
1531 1556
1532 const size_t kNumAttribs = arraysize(kAttribs); 1557 const size_t kNumAttribs = arraysize(kAttribs);
1533 const size_t kNumUniforms = arraysize(kUniforms); 1558 const size_t kNumUniforms = arraysize(kUniforms);
1534 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms, 1559 SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
1535 kServiceProgramId); 1560 kServiceProgramId);
1536 program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb)); 1561 program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
1562 base::Bind(&ShaderCacheCb));
1537 1563
1538 EXPECT_EQ(kUniform1DesiredLocation, 1564 EXPECT_EQ(kUniform1DesiredLocation,
1539 program->GetUniformFakeLocation(kUniform1Name)); 1565 program->GetUniformFakeLocation(kUniform1Name));
1540 EXPECT_EQ(kUniform3DesiredLocation, 1566 EXPECT_EQ(kUniform3DesiredLocation,
1541 program->GetUniformFakeLocation(kUniform3BadName)); 1567 program->GetUniformFakeLocation(kUniform3BadName));
1542 EXPECT_EQ(kUniform3DesiredLocation, 1568 EXPECT_EQ(kUniform3DesiredLocation,
1543 program->GetUniformFakeLocation(kUniform3GoodName)); 1569 program->GetUniformFakeLocation(kUniform3GoodName));
1544 } 1570 }
1545 1571
1546 class ProgramManagerWithCacheTest : public testing::Test { 1572 class ProgramManagerWithCacheTest : public testing::Test {
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
1750 const GLuint ProgramManagerWithCacheTest::kFragmentShaderClientId; 1776 const GLuint ProgramManagerWithCacheTest::kFragmentShaderClientId;
1751 const GLuint ProgramManagerWithCacheTest::kVertexShaderServiceId; 1777 const GLuint ProgramManagerWithCacheTest::kVertexShaderServiceId;
1752 const GLuint ProgramManagerWithCacheTest::kFragmentShaderServiceId; 1778 const GLuint ProgramManagerWithCacheTest::kFragmentShaderServiceId;
1753 #endif 1779 #endif
1754 1780
1755 TEST_F(ProgramManagerWithCacheTest, CacheProgramOnSuccessfulLink) { 1781 TEST_F(ProgramManagerWithCacheTest, CacheProgramOnSuccessfulLink) {
1756 SetShadersCompiled(); 1782 SetShadersCompiled();
1757 SetExpectationsForProgramLink(); 1783 SetExpectationsForProgramLink();
1758 SetExpectationsForProgramCached(); 1784 SetExpectationsForProgramCached();
1759 EXPECT_TRUE(program_->Link(NULL, NULL, NULL, 1785 EXPECT_TRUE(program_->Link(NULL, NULL, NULL,
1760 base::Bind(&ShaderCacheCb))); 1786 Program::kCountOnlyStaticallyUsed, base::Bind(&ShaderCacheCb)));
1761 } 1787 }
1762 1788
1763 TEST_F(ProgramManagerWithCacheTest, LoadProgramOnProgramCacheHit) { 1789 TEST_F(ProgramManagerWithCacheTest, LoadProgramOnProgramCacheHit) {
1764 SetShadersCompiled(); 1790 SetShadersCompiled();
1765 SetProgramCached(); 1791 SetProgramCached();
1766 1792
1767 SetExpectationsForNoCompile(vertex_shader_); 1793 SetExpectationsForNoCompile(vertex_shader_);
1768 SetExpectationsForNoCompile(fragment_shader_); 1794 SetExpectationsForNoCompile(fragment_shader_);
1769 SetExpectationsForProgramLoad(ProgramCache::PROGRAM_LOAD_SUCCESS); 1795 SetExpectationsForProgramLoad(ProgramCache::PROGRAM_LOAD_SUCCESS);
1770 SetExpectationsForNotCachingProgram(); 1796 SetExpectationsForNotCachingProgram();
1771 SetExpectationsForProgramLoadSuccess(); 1797 SetExpectationsForProgramLoadSuccess();
1772 1798
1773 EXPECT_TRUE(program_->Link(NULL, NULL, NULL, 1799 EXPECT_TRUE(program_->Link(NULL, NULL, NULL,
1774 base::Bind(&ShaderCacheCb))); 1800 Program::kCountOnlyStaticallyUsed, base::Bind(&ShaderCacheCb)));
1775 } 1801 }
1776 1802
1777 } // namespace gles2 1803 } // namespace gles2
1778 } // namespace gpu 1804 } // 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