| Index: gpu/command_buffer/service/program_manager_unittest.cc
|
| ===================================================================
|
| --- gpu/command_buffer/service/program_manager_unittest.cc (revision 250146)
|
| +++ gpu/command_buffer/service/program_manager_unittest.cc (working copy)
|
| @@ -250,7 +250,8 @@
|
|
|
| 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 @@
|
| 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 @@
|
| 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 @@
|
| 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 @@
|
| 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) {
|
| @@ -1354,7 +1359,8 @@
|
| Program* program = SetupShaderVariableTest(
|
| kVertexVaryings, 2, kFragmentVaryings, 2);
|
|
|
| - EXPECT_FALSE(program->CheckVaryingsPacking());
|
| + EXPECT_FALSE(
|
| + program->CheckVaryingsPacking(Program::kCountOnlyStaticallyUsed));
|
| EXPECT_TRUE(LinkAsExpected(program, false));
|
| }
|
|
|
| @@ -1371,10 +1377,28 @@
|
| 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;
|
| @@ -1440,7 +1464,8 @@
|
| 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);
|
| }
|
| @@ -1512,7 +1537,8 @@
|
| 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));
|
| @@ -1736,7 +1762,7 @@
|
| SetExpectationsForProgramLink();
|
| SetExpectationsForProgramCached();
|
| EXPECT_TRUE(program_->Link(NULL, NULL, NULL,
|
| - base::Bind(&ShaderCacheCb)));
|
| + Program::kCountOnlyStaticallyUsed, base::Bind(&ShaderCacheCb)));
|
| }
|
|
|
| TEST_F(ProgramManagerWithCacheTest, LoadProgramOnProgramCacheHit) {
|
| @@ -1750,7 +1776,7 @@
|
| SetExpectationsForProgramLoadSuccess();
|
|
|
| EXPECT_TRUE(program_->Link(NULL, NULL, NULL,
|
| - base::Bind(&ShaderCacheCb)));
|
| + Program::kCountOnlyStaticallyUsed, base::Bind(&ShaderCacheCb)));
|
| }
|
|
|
| } // namespace gles2
|
|
|