Fix a regression with point sprites where the geometry shader state was not properly updated.
This was breaking the ES2 point sprites conformance test.
TRAC #22544
Signed-off-by: Geoff Lang
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1876 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index 56fa133..ed49a22 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -1099,7 +1099,9 @@
void Renderer11::applyShaders(gl::ProgramBinary *programBinary)
{
unsigned int programBinarySerial = programBinary->getSerial();
- if (programBinarySerial != mAppliedProgramBinarySerial)
+ const bool updateProgramState = (programBinarySerial != mAppliedProgramBinarySerial);
+
+ if (updateProgramState)
{
ShaderExecutable *vertexExe = programBinary->getVertexExecutable();
ShaderExecutable *pixelExe = programBinary->getPixelExecutable();
@@ -1119,9 +1121,9 @@
}
// Only use the geometry shader currently for point sprite drawing
- const bool usesGeometryShader = programBinary->usesGeometryShader() && mCurRasterState.pointDrawMode;
+ const bool usesGeometryShader = (programBinary->usesGeometryShader() && mCurRasterState.pointDrawMode);
- if (programBinarySerial != mAppliedProgramBinarySerial || usesGeometryShader != mIsGeometryShaderActive)
+ if (updateProgramState || usesGeometryShader != mIsGeometryShaderActive)
{
if (usesGeometryShader)
{