| Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
|
| index ceda69078255f13c443835c1b9195036511ac5a0..0fb5d5fcd261f777d86d964491b270307f958ffe 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
|
| @@ -8824,6 +8824,57 @@ TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit1) {
|
| GetDecoder()->RestoreAllTextureUnitBindings(&prev_state);
|
| }
|
|
|
| +TEST_F(GLES2DecoderManualInitTest, ClearUniformsBeforeFirstProgramUse) {
|
| + CommandLine command_line(0, NULL);
|
| + command_line.AppendSwitchASCII(
|
| + switches::kGpuDriverBugWorkarounds,
|
| + base::IntToString(gpu::CLEAR_UNIFORMS_BEFORE_FIRST_PROGRAM_USE));
|
| + InitDecoderWithCommandLine(
|
| + "", // extensions
|
| + "3.0", // gl version
|
| + true, // has alpha
|
| + false, // has depth
|
| + false, // has stencil
|
| + true, // request alpha
|
| + false, // request depth
|
| + false, // request stencil
|
| + true, // bind generates resource
|
| + &command_line);
|
| + {
|
| + static AttribInfo attribs[] = {
|
| + { kAttrib1Name, kAttrib1Size, kAttrib1Type, kAttrib1Location, },
|
| + { kAttrib2Name, kAttrib2Size, kAttrib2Type, kAttrib2Location, },
|
| + { kAttrib3Name, kAttrib3Size, kAttrib3Type, kAttrib3Location, },
|
| + };
|
| + static UniformInfo uniforms[] = {
|
| + { kUniform1Name, kUniform1Size, kUniform1Type,
|
| + kUniform1FakeLocation, kUniform1RealLocation,
|
| + kUniform1DesiredLocation },
|
| + { kUniform2Name, kUniform2Size, kUniform2Type,
|
| + kUniform2FakeLocation, kUniform2RealLocation,
|
| + kUniform2DesiredLocation },
|
| + { kUniform3Name, kUniform3Size, kUniform3Type,
|
| + kUniform3FakeLocation, kUniform3RealLocation,
|
| + kUniform3DesiredLocation },
|
| + };
|
| + SetupShader(attribs, arraysize(attribs), uniforms, arraysize(uniforms),
|
| + client_program_id_, kServiceProgramId,
|
| + client_vertex_shader_id_, kServiceVertexShaderId,
|
| + client_fragment_shader_id_, kServiceFragmentShaderId);
|
| + TestHelper::SetupExpectationsForClearingUniforms(
|
| + gl_.get(), uniforms, arraysize(uniforms));
|
| + }
|
| +
|
| + {
|
| + EXPECT_CALL(*gl_, UseProgram(kServiceProgramId))
|
| + .Times(1)
|
| + .RetiresOnSaturation();
|
| + cmds::UseProgram cmd;
|
| + cmd.Init(client_program_id_);
|
| + EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
|
| + }
|
| +}
|
| +
|
| // TODO(gman): Complete this test.
|
| // TEST_F(GLES2DecoderTest, CompressedTexImage2DGLError) {
|
| // }
|
|
|