Add the shader version of the compiled shaders to the program binary.
Also increment the binary version.
TRAC #23182
Signed-off-by: Shannon Woods
Signed-off-by: Nicolas Capens
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2368 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index 91c33bf..468d498 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -90,6 +90,7 @@
mUsedVertexSamplerRange = 0;
mUsedPixelSamplerRange = 0;
mUsesPointSize = false;
+ mShaderVersion = 100;
}
ProgramBinary::~ProgramBinary()
@@ -121,6 +122,11 @@
return mSerial;
}
+int ProgramBinary::getShaderVersion() const
+{
+ return mShaderVersion;
+}
+
unsigned int ProgramBinary::issueSerial()
{
return mCurrentSerial++;
@@ -1545,6 +1551,7 @@
stream.read(&mUsedVertexSamplerRange);
stream.read(&mUsedPixelSamplerRange);
stream.read(&mUsesPointSize);
+ stream.read(&mShaderVersion);
size_t size;
stream.read(&size);
@@ -1738,6 +1745,7 @@
stream.write(mUsedVertexSamplerRange);
stream.write(mUsedPixelSamplerRange);
stream.write(mUsesPointSize);
+ stream.write(mShaderVersion);
stream.write(mUniforms.size());
for (unsigned int uniformIndex = 0; uniformIndex < mUniforms.size(); ++uniformIndex)
@@ -1870,6 +1878,8 @@
return false;
}
+ mShaderVersion = vertexShader->getShaderVersion();
+
std::string pixelHLSL = fragmentShader->getHLSL();
std::string vertexHLSL = vertexShader->getHLSL();