Index: gpu/command_buffer/service/shader_translator.cc |
diff --git a/gpu/command_buffer/service/shader_translator.cc b/gpu/command_buffer/service/shader_translator.cc |
index b852d2aa929cb2aa928a7e04d4d67517f141ab4c..616f95af819f720b98c9e603ae1b3840b6aa7f32 100644 |
--- a/gpu/command_buffer/service/shader_translator.cc |
+++ b/gpu/command_buffer/service/shader_translator.cc |
@@ -71,6 +71,11 @@ void GetVaryings(ShHandle compiler, VaryingMap* var_map) { |
(*var_map)[(*varyings)[ii].mappedName] = (*varyings)[ii]; |
} |
} |
+void GetOutputVariables(ShHandle compiler, AttributeList* var_list) { |
+ if (!var_list) |
+ return; |
+ *var_list = *ShGetOutputVariables(compiler); |
+} |
void GetNameHashingInfo(ShHandle compiler, NameMap* name_map) { |
if (!name_map) |
@@ -160,7 +165,6 @@ bool ShaderTranslator::Init(GLenum shader_type, |
g_translator_initializer.Get(); |
- |
{ |
TRACE_EVENT0("gpu", "ShConstructCompiler"); |
compiler_ = ShConstructCompiler(shader_type, shader_spec, |
@@ -192,6 +196,7 @@ bool ShaderTranslator::Translate(const std::string& shader_source, |
AttributeMap* attrib_map, |
UniformMap* uniform_map, |
VaryingMap* varying_map, |
+ AttributeList* output_variable_list, |
NameMap* name_map) const { |
// Make sure this instance is initialized. |
DCHECK(compiler_ != NULL); |
@@ -210,10 +215,11 @@ bool ShaderTranslator::Translate(const std::string& shader_source, |
} |
// Get shader version. |
*shader_version = ShGetShaderVersion(compiler_); |
- // Get info for attribs, uniforms, and varyings. |
+ // Get info for attribs, uniforms, varyings and output variables. |
GetAttributes(compiler_, attrib_map); |
GetUniforms(compiler_, uniform_map); |
GetVaryings(compiler_, varying_map); |
+ GetOutputVariables(compiler_, output_variable_list); |
// Get info for name hashing. |
GetNameHashingInfo(compiler_, name_map); |
} |