| Index: gpu/command_buffer/service/program_manager.cc
|
| diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc
|
| index b00a6cefa84fdf50a7e10b2deba4fc2b65a3699b..a14a986cdbbd28c1f727df4fc24a31040537b2e8 100644
|
| --- a/gpu/command_buffer/service/program_manager.cc
|
| +++ b/gpu/command_buffer/service/program_manager.cc
|
| @@ -1027,6 +1027,19 @@ void Program::UpdateProgramOutputs() {
|
| continue;
|
| program_output_infos_.push_back(
|
| ProgramOutputInfo(color_name, index, client_name));
|
| + } else if (feature_info().workarounds().get_frag_data_info_bug) {
|
| + DCHECK(!feature_info().feature_flags().ext_blend_func_extended);
|
| + GLint color_name =
|
| + glGetFragDataLocation(service_id_, service_name.c_str());
|
| + if (color_name >= 0) {
|
| + GLint index = 0;
|
| + for (size_t ii = 0; ii < output_var.arraySize; ++ii) {
|
| + std::string array_spec(
|
| + std::string("[") + base::IntToString(ii) + "]");
|
| + program_output_infos_.push_back(ProgramOutputInfo(
|
| + color_name + ii, index, client_name + array_spec));
|
| + }
|
| + }
|
| } else {
|
| for (size_t ii = 0; ii < output_var.arraySize; ++ii) {
|
| std::string array_spec(std::string("[") + base::IntToString(ii) + "]");
|
|
|