| Index: gpu/command_buffer/service/program_manager_unittest.cc
|
| diff --git a/gpu/command_buffer/service/program_manager_unittest.cc b/gpu/command_buffer/service/program_manager_unittest.cc
|
| index b224179a033d3123127799266921ca6b9e0ddc64..686916aa5f36799399652284960c07fa349b4027 100644
|
| --- a/gpu/command_buffer/service/program_manager_unittest.cc
|
| +++ b/gpu/command_buffer/service/program_manager_unittest.cc
|
| @@ -250,7 +250,8 @@ class ProgramManagerWithShaderTest : public testing::Test {
|
|
|
| program_->AttachShader(&shader_manager_, vertex_shader);
|
| program_->AttachShader(&shader_manager_, fragment_shader);
|
| - program_->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
|
| + program_->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
|
| + base::Bind(&ShaderCacheCb));
|
| }
|
|
|
| void SetupShader(AttribInfo* attribs, size_t num_attribs,
|
| @@ -283,7 +284,8 @@ class ProgramManagerWithShaderTest : public testing::Test {
|
| SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
|
| service_id);
|
| }
|
| - program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
|
| + program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
|
| + base::Bind(&ShaderCacheCb));
|
| GLint link_status;
|
| program->GetProgramiv(GL_LINK_STATUS, &link_status);
|
| return (static_cast<bool>(link_status) == expected_link_status);
|
| @@ -720,7 +722,8 @@ TEST_F(ProgramManagerWithShaderTest, GLDriverReturnsGLUnderscoreUniform) {
|
| ASSERT_TRUE(program != NULL);
|
| EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader));
|
| EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader));
|
| - program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
|
| + program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
|
| + base::Bind(&ShaderCacheCb));
|
| GLint value = 0;
|
| program->GetProgramiv(GL_ACTIVE_ATTRIBUTES, &value);
|
| EXPECT_EQ(3, value);
|
| @@ -788,7 +791,8 @@ TEST_F(ProgramManagerWithShaderTest, SimilarArrayNames) {
|
| ASSERT_TRUE(program != NULL);
|
| EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader));
|
| EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader));
|
| - program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
|
| + program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
|
| + base::Bind(&ShaderCacheCb));
|
|
|
| // Check that we get the correct locations.
|
| EXPECT_EQ(kUniform2FakeLocation,
|
| @@ -889,7 +893,8 @@ TEST_F(ProgramManagerWithShaderTest, GLDriverReturnsWrongTypeInfo) {
|
| ASSERT_TRUE(program!= NULL);
|
| EXPECT_TRUE(program->AttachShader(&shader_manager_, vshader));
|
| EXPECT_TRUE(program->AttachShader(&shader_manager_, fshader));
|
| - program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
|
| + program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
|
| + base::Bind(&ShaderCacheCb));
|
| // Check that we got the good type, not the bad.
|
| // Check Attribs
|
| for (unsigned index = 0; index < kNumAttribs; ++index) {
|
| @@ -1375,7 +1380,8 @@ TEST_F(ProgramManagerWithShaderTest, TooManyVaryings) {
|
| Program* program = SetupShaderVariableTest(
|
| kVertexVaryings, 2, kFragmentVaryings, 2);
|
|
|
| - EXPECT_FALSE(program->CheckVaryingsPacking());
|
| + EXPECT_FALSE(
|
| + program->CheckVaryingsPacking(Program::kCountOnlyStaticallyUsed));
|
| EXPECT_TRUE(LinkAsExpected(program, false));
|
| }
|
|
|
| @@ -1392,10 +1398,28 @@ TEST_F(ProgramManagerWithShaderTest, TooManyInactiveVaryings) {
|
| Program* program = SetupShaderVariableTest(
|
| kVertexVaryings, 2, kFragmentVaryings, 2);
|
|
|
| - EXPECT_TRUE(program->CheckVaryingsPacking());
|
| + EXPECT_TRUE(
|
| + program->CheckVaryingsPacking(Program::kCountOnlyStaticallyUsed));
|
| EXPECT_TRUE(LinkAsExpected(program, true));
|
| }
|
|
|
| +// Varyings go over 8 rows but some are inactive.
|
| +// However, we still fail the check if kCountAll option is used.
|
| +TEST_F(ProgramManagerWithShaderTest, CountAllVaryingsInPacking) {
|
| + const VarInfo kVertexVaryings[] = {
|
| + { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 1, "a", kVarVarying },
|
| + { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
|
| + };
|
| + const VarInfo kFragmentVaryings[] = {
|
| + { SH_FLOAT_VEC4, 4, SH_PRECISION_MEDIUMP, 0, "a", kVarVarying },
|
| + { SH_FLOAT_VEC4, 5, SH_PRECISION_MEDIUMP, 1, "b", kVarVarying }
|
| + };
|
| + Program* program = SetupShaderVariableTest(
|
| + kVertexVaryings, 2, kFragmentVaryings, 2);
|
| +
|
| + EXPECT_FALSE(program->CheckVaryingsPacking(Program::kCountAll));
|
| +}
|
| +
|
| TEST_F(ProgramManagerWithShaderTest, ClearWithSamplerTypes) {
|
| const GLuint kVShaderClientId = 2001;
|
| const GLuint kFShaderClientId = 2002;
|
| @@ -1461,7 +1485,8 @@ TEST_F(ProgramManagerWithShaderTest, ClearWithSamplerTypes) {
|
| const size_t kNumUniforms = arraysize(kUniforms);
|
| SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
|
| kServiceProgramId);
|
| - program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
|
| + program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
|
| + base::Bind(&ShaderCacheCb));
|
| SetupExpectationsForClearingUniforms(kUniforms, kNumUniforms);
|
| manager_.ClearUniforms(program);
|
| }
|
| @@ -1533,7 +1558,8 @@ TEST_F(ProgramManagerWithShaderTest, BindUniformLocation) {
|
| const size_t kNumUniforms = arraysize(kUniforms);
|
| SetupShader(kAttribs, kNumAttribs, kUniforms, kNumUniforms,
|
| kServiceProgramId);
|
| - program->Link(NULL, NULL, NULL, base::Bind(&ShaderCacheCb));
|
| + program->Link(NULL, NULL, NULL, Program::kCountOnlyStaticallyUsed,
|
| + base::Bind(&ShaderCacheCb));
|
|
|
| EXPECT_EQ(kUniform1DesiredLocation,
|
| program->GetUniformFakeLocation(kUniform1Name));
|
| @@ -1757,7 +1783,7 @@ TEST_F(ProgramManagerWithCacheTest, CacheProgramOnSuccessfulLink) {
|
| SetExpectationsForProgramLink();
|
| SetExpectationsForProgramCached();
|
| EXPECT_TRUE(program_->Link(NULL, NULL, NULL,
|
| - base::Bind(&ShaderCacheCb)));
|
| + Program::kCountOnlyStaticallyUsed, base::Bind(&ShaderCacheCb)));
|
| }
|
|
|
| TEST_F(ProgramManagerWithCacheTest, LoadProgramOnProgramCacheHit) {
|
| @@ -1771,7 +1797,7 @@ TEST_F(ProgramManagerWithCacheTest, LoadProgramOnProgramCacheHit) {
|
| SetExpectationsForProgramLoadSuccess();
|
|
|
| EXPECT_TRUE(program_->Link(NULL, NULL, NULL,
|
| - base::Bind(&ShaderCacheCb)));
|
| + Program::kCountOnlyStaticallyUsed, base::Bind(&ShaderCacheCb)));
|
| }
|
|
|
| } // namespace gles2
|
|
|