summarylogtreecommitdiffstats
path: root/commit-409078f
diff options
context:
space:
mode:
Diffstat (limited to 'commit-409078f')
-rw-r--r--commit-409078f363
1 files changed, 363 insertions, 0 deletions
diff --git a/commit-409078f b/commit-409078f
new file mode 100644
index 000000000000..af016deb7c7b
--- /dev/null
+++ b/commit-409078f
@@ -0,0 +1,363 @@
+commit 409078f1e7c4ec79a1cbc58e3d0b3c399831ac5b
+Author: Zhenyao Mo <zmo@chromium.org>
+Date: Tue Oct 28 13:23:18 2014 -0700
+
+ Remove ShGetVariableInfo() and related code.
+
+ BUG=angle:775
+ TEST=chromium builds and runs fine
+
+ Change-Id: Ic62d3a3c9a8f034880b77a96f7f1c6be2691985e
+ Reviewed-on: https://chromium-review.googlesource.com/226004
+ Tested-by: Zhenyao Mo <zmo@chromium.org>
+ Reviewed-by: Jamie Madill <jmadill@chromium.org>
+ Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
+
+diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h
+index 76012cf..def4946 100644
+--- a/include/GLSLANG/ShaderLang.h
++++ b/include/GLSLANG/ShaderLang.h
+@@ -48,7 +48,7 @@ extern "C" {
+
+ // Version number for shader translation API.
+ // It is incremented every time the API changes.
+-#define ANGLE_SH_VERSION 130
++#define ANGLE_SH_VERSION 131
+
+ typedef enum {
+ SH_GLES2_SPEC = 0x8B40,
+@@ -86,21 +86,8 @@ typedef enum {
+ } ShShaderOutput;
+
+ typedef enum {
+- SH_PRECISION_HIGHP = 0x5001,
+- SH_PRECISION_MEDIUMP = 0x5002,
+- SH_PRECISION_LOWP = 0x5003,
+- SH_PRECISION_UNDEFINED = 0
+-} ShPrecisionType;
+-
+-typedef enum {
+ SH_INFO_LOG_LENGTH = 0x8B84,
+ SH_OBJECT_CODE_LENGTH = 0x8B88, // GL_SHADER_SOURCE_LENGTH
+- SH_ACTIVE_UNIFORMS = 0x8B86,
+- SH_ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87,
+- SH_ACTIVE_ATTRIBUTES = 0x8B89,
+- SH_ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A,
+- SH_VARYINGS = 0x8BBB,
+- SH_VARYING_MAX_LENGTH = 0x8BBC,
+ SH_MAPPED_NAME_MAX_LENGTH = 0x6000,
+ SH_NAME_MAX_LENGTH = 0x6001,
+ SH_HASHED_NAME_MAX_LENGTH = 0x6002,
+@@ -364,17 +351,6 @@ COMPILER_EXPORT int ShCompile(
+ // including the null termination character.
+ // SH_OBJECT_CODE_LENGTH: the number of characters in the object code
+ // including the null termination character.
+-// SH_ACTIVE_ATTRIBUTES: the number of active attribute variables.
+-// SH_ACTIVE_ATTRIBUTE_MAX_LENGTH: the length of the longest active attribute
+-// variable name including the null
+-// termination character.
+-// SH_ACTIVE_UNIFORMS: the number of active uniform variables.
+-// SH_ACTIVE_UNIFORM_MAX_LENGTH: the length of the longest active uniform
+-// variable name including the null
+-// termination character.
+-// SH_VARYINGS: the number of varying variables.
+-// SH_VARYING_MAX_LENGTH: the length of the longest varying variable name
+-// including the null termination character.
+ // SH_MAPPED_NAME_MAX_LENGTH: the length of the mapped variable name including
+ // the null termination character.
+ // SH_NAME_MAX_LENGTH: the max length of a user-defined name including the
+@@ -410,44 +386,6 @@ COMPILER_EXPORT void ShGetInfoLog(const ShHandle handle, char* infoLog);
+ // ShGetInfo with SH_OBJECT_CODE_LENGTH.
+ COMPILER_EXPORT void ShGetObjectCode(const ShHandle handle, char* objCode);
+
+-// Returns information about a shader variable.
+-// Parameters:
+-// handle: Specifies the compiler
+-// variableType: Specifies the variable type; options include
+-// SH_ACTIVE_ATTRIBUTES, SH_ACTIVE_UNIFORMS, SH_VARYINGS.
+-// index: Specifies the index of the variable to be queried.
+-// length: Returns the number of characters actually written in the string
+-// indicated by name (excluding the null terminator) if a value other
+-// than NULL is passed.
+-// size: Returns the size of the variable.
+-// type: Returns the data type of the variable.
+-// precision: Returns the precision of the variable.
+-// staticUse: Returns 1 if the variable is accessed in a statement after
+-// pre-processing, whether or not run-time flow of control will
+-// cause that statement to be executed.
+-// Returns 0 otherwise.
+-// name: Returns a null terminated string containing the name of the
+-// variable. It is assumed that name has enough memory to accormodate
+-// the variable name. The size of the buffer required to store the
+-// variable name can be obtained by calling ShGetInfo with
+-// SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, SH_ACTIVE_UNIFORM_MAX_LENGTH,
+-// SH_VARYING_MAX_LENGTH.
+-// mappedName: Returns a null terminated string containing the mapped name of
+-// the variable, It is assumed that mappedName has enough memory
+-// (SH_MAPPED_NAME_MAX_LENGTH), or NULL if don't care about the
+-// mapped name. If the name is not mapped, then name and mappedName
+-// are the same.
+-COMPILER_EXPORT void ShGetVariableInfo(const ShHandle handle,
+- ShShaderInfo variableType,
+- int index,
+- size_t* length,
+- int* size,
+- sh::GLenum* type,
+- ShPrecisionType* precision,
+- int* staticUse,
+- char* name,
+- char* mappedName);
+-
+ // Returns information about a name hashing entry from the latest compile.
+ // Parameters:
+ // handle: Specifies the compiler
+diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp
+index 2824064..a93d7e6 100644
+--- a/src/compiler/translator/Compiler.cpp
++++ b/src/compiler/translator/Compiler.cpp
+@@ -384,7 +384,6 @@ void TCompiler::clearResults()
+ uniforms.clear();
+ expandedUniforms.clear();
+ varyings.clear();
+- expandedVaryings.clear();
+ interfaceBlocks.clear();
+
+ builtInFunctionEmulator.Cleanup();
+@@ -518,10 +517,8 @@ void TCompiler::collectVariables(TIntermNode* root)
+ symbolTable);
+ root->traverse(&collect);
+
+- // For backwards compatiblity with ShGetVariableInfo, expand struct
+- // uniforms and varyings into separate variables for each field.
+- sh::ExpandVariables(uniforms, &expandedUniforms);
+- sh::ExpandVariables(varyings, &expandedVaryings);
++ // This is for enforcePackingRestriction().
++ sh::ExpandUniforms(uniforms, &expandedUniforms);
+ }
+
+ bool TCompiler::enforcePackingRestrictions()
+diff --git a/src/compiler/translator/Compiler.h b/src/compiler/translator/Compiler.h
+index 6d1e225..145ecb4 100644
+--- a/src/compiler/translator/Compiler.h
++++ b/src/compiler/translator/Compiler.h
+@@ -72,9 +72,7 @@ class TCompiler : public TShHandleBase
+ const std::vector<sh::Attribute> &getAttributes() const { return attributes; }
+ const std::vector<sh::Attribute> &getOutputVariables() const { return outputVariables; }
+ const std::vector<sh::Uniform> &getUniforms() const { return uniforms; }
+- const std::vector<sh::ShaderVariable> &getExpandedUniforms() const { return expandedUniforms; }
+ const std::vector<sh::Varying> &getVaryings() const { return varyings; }
+- const std::vector<sh::ShaderVariable> &getExpandedVaryings() const { return expandedVaryings; }
+ const std::vector<sh::InterfaceBlock> &getInterfaceBlocks() const { return interfaceBlocks; }
+
+ ShHashFunction64 getHashFunction() const { return hashFunction; }
+@@ -144,7 +142,6 @@ class TCompiler : public TShHandleBase
+ std::vector<sh::Uniform> uniforms;
+ std::vector<sh::ShaderVariable> expandedUniforms;
+ std::vector<sh::Varying> varyings;
+- std::vector<sh::ShaderVariable> expandedVaryings;
+ std::vector<sh::InterfaceBlock> interfaceBlocks;
+
+ private:
+diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp
+index 144ef90..35dac5f 100644
+--- a/src/compiler/translator/ShaderLang.cpp
++++ b/src/compiler/translator/ShaderLang.cpp
+@@ -37,72 +37,6 @@ bool isInitialized = false;
+ // and the shading language compiler.
+ //
+
+-static bool CheckVariableMaxLengths(const ShHandle handle,
+- size_t expectedValue)
+-{
+- size_t activeUniformLimit = 0;
+- ShGetInfo(handle, SH_ACTIVE_UNIFORM_MAX_LENGTH, &activeUniformLimit);
+- size_t activeAttribLimit = 0;
+- ShGetInfo(handle, SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, &activeAttribLimit);
+- size_t varyingLimit = 0;
+- ShGetInfo(handle, SH_VARYING_MAX_LENGTH, &varyingLimit);
+- return (expectedValue == activeUniformLimit &&
+- expectedValue == activeAttribLimit &&
+- expectedValue == varyingLimit);
+-}
+-
+-bool CheckMappedNameMaxLength(const ShHandle handle, size_t expectedValue)
+-{
+- size_t mappedNameMaxLength = 0;
+- ShGetInfo(handle, SH_MAPPED_NAME_MAX_LENGTH, &mappedNameMaxLength);
+- return (expectedValue == mappedNameMaxLength);
+-}
+-
+-template <typename VarT>
+-const sh::ShaderVariable *ReturnVariable(const std::vector<VarT> &infoList, int index)
+-{
+- if (index < 0 || static_cast<size_t>(index) >= infoList.size())
+- {
+- return NULL;
+- }
+-
+- return &infoList[index];
+-}
+-
+-const sh::ShaderVariable *GetVariable(const TCompiler *compiler, ShShaderInfo varType, int index)
+-{
+- switch (varType)
+- {
+- case SH_ACTIVE_ATTRIBUTES:
+- return ReturnVariable(compiler->getAttributes(), index);
+- case SH_ACTIVE_UNIFORMS:
+- return ReturnVariable(compiler->getExpandedUniforms(), index);
+- case SH_VARYINGS:
+- return ReturnVariable(compiler->getExpandedVaryings(), index);
+- default:
+- UNREACHABLE();
+- return NULL;
+- }
+-}
+-
+-ShPrecisionType ConvertPrecision(sh::GLenum precision)
+-{
+- switch (precision)
+- {
+- case GL_HIGH_FLOAT:
+- case GL_HIGH_INT:
+- return SH_PRECISION_HIGHP;
+- case GL_MEDIUM_FLOAT:
+- case GL_MEDIUM_INT:
+- return SH_PRECISION_MEDIUMP;
+- case GL_LOW_FLOAT:
+- case GL_LOW_INT:
+- return SH_PRECISION_LOWP;
+- default:
+- return SH_PRECISION_UNDEFINED;
+- }
+-}
+-
+ template <typename VarT>
+ const std::vector<VarT> *GetVariableList(const TCompiler *compiler, ShaderVariableType variableType);
+
+@@ -315,24 +249,6 @@ void ShGetInfo(const ShHandle handle, ShShaderInfo pname, size_t* params)
+ case SH_OBJECT_CODE_LENGTH:
+ *params = compiler->getInfoSink().obj.size() + 1;
+ break;
+- case SH_ACTIVE_UNIFORMS:
+- *params = compiler->getExpandedUniforms().size();
+- break;
+- case SH_ACTIVE_UNIFORM_MAX_LENGTH:
+- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec());
+- break;
+- case SH_ACTIVE_ATTRIBUTES:
+- *params = compiler->getAttributes().size();
+- break;
+- case SH_ACTIVE_ATTRIBUTE_MAX_LENGTH:
+- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec());
+- break;
+- case SH_VARYINGS:
+- *params = compiler->getExpandedVaryings().size();
+- break;
+- case SH_VARYING_MAX_LENGTH:
+- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec());
+- break;
+ case SH_MAPPED_NAME_MAX_LENGTH:
+ // Use longer length than MAX_SHORTENED_IDENTIFIER_SIZE to
+ // handle array and struct dereferences.
+@@ -400,58 +316,6 @@ void ShGetObjectCode(const ShHandle handle, char* objCode)
+ strcpy(objCode, infoSink.obj.c_str());
+ }
+
+-void ShGetVariableInfo(const ShHandle handle,
+- ShShaderInfo varType,
+- int index,
+- size_t* length,
+- int* size,
+- sh::GLenum* type,
+- ShPrecisionType* precision,
+- int* staticUse,
+- char* name,
+- char* mappedName)
+-{
+- if (!handle || !size || !type || !precision || !staticUse || !name)
+- return;
+- ASSERT((varType == SH_ACTIVE_ATTRIBUTES) ||
+- (varType == SH_ACTIVE_UNIFORMS) ||
+- (varType == SH_VARYINGS));
+-
+- TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
+- TCompiler* compiler = base->getAsCompiler();
+- if (compiler == 0)
+- return;
+-
+- const sh::ShaderVariable *varInfo = GetVariable(compiler, varType, index);
+- if (!varInfo)
+- {
+- return;
+- }
+-
+- if (length) *length = varInfo->name.size();
+- *size = varInfo->elementCount();
+- *type = varInfo->type;
+- *precision = ConvertPrecision(varInfo->precision);
+- *staticUse = varInfo->staticUse ? 1 : 0;
+-
+- // This size must match that queried by
+- // SH_ACTIVE_UNIFORM_MAX_LENGTH, SH_ACTIVE_ATTRIBUTE_MAX_LENGTH, SH_VARYING_MAX_LENGTH
+- // in ShGetInfo, below.
+- size_t variableLength = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec());
+- ASSERT(CheckVariableMaxLengths(handle, variableLength));
+- strncpy(name, varInfo->name.c_str(), variableLength);
+- name[variableLength - 1] = 0;
+- if (mappedName)
+- {
+- // This size must match that queried by
+- // SH_MAPPED_NAME_MAX_LENGTH in ShGetInfo, below.
+- size_t maxMappedNameLength = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec());
+- ASSERT(CheckMappedNameMaxLength(handle, maxMappedNameLength));
+- strncpy(mappedName, varInfo->mappedName.c_str(), maxMappedNameLength);
+- mappedName[maxMappedNameLength - 1] = 0;
+- }
+-}
+-
+ void ShGetNameHashingEntry(const ShHandle handle,
+ int index,
+ char* name,
+diff --git a/src/compiler/translator/VariableInfo.cpp b/src/compiler/translator/VariableInfo.cpp
+index cd92706..d8e1378 100644
+--- a/src/compiler/translator/VariableInfo.cpp
++++ b/src/compiler/translator/VariableInfo.cpp
+@@ -466,9 +466,8 @@ bool CollectVariables::visitBinary(Visit, TIntermBinary *binaryNode)
+ return true;
+ }
+
+-template <typename VarT>
+-void ExpandVariables(const std::vector<VarT> &compact,
+- std::vector<ShaderVariable> *expanded)
++void ExpandUniforms(const std::vector<Uniform> &compact,
++ std::vector<ShaderVariable> *expanded)
+ {
+ for (size_t variableIndex = 0; variableIndex < compact.size(); variableIndex++)
+ {
+@@ -477,7 +476,4 @@ void ExpandVariables(const std::vector<VarT> &compact,
+ }
+ }
+
+-template void ExpandVariables(const std::vector<Uniform> &, std::vector<ShaderVariable> *);
+-template void ExpandVariables(const std::vector<Varying> &, std::vector<ShaderVariable> *);
+-
+ }
+diff --git a/src/compiler/translator/VariableInfo.h b/src/compiler/translator/VariableInfo.h
+index 9c6b6ba..92d376d 100644
+--- a/src/compiler/translator/VariableInfo.h
++++ b/src/compiler/translator/VariableInfo.h
+@@ -59,10 +59,9 @@ class CollectVariables : public TIntermTraverser
+ const TSymbolTable &mSymbolTable;
+ };
+
+-// Expand struct variables to flattened lists of split variables
+-template <typename VarT>
+-void ExpandVariables(const std::vector<VarT> &compact,
+- std::vector<ShaderVariable> *expanded);
++// Expand struct uniforms to flattened lists of split variables
++void ExpandUniforms(const std::vector<Uniform> &compact,
++ std::vector<ShaderVariable> *expanded);
+
+ }
+