am 47706d40: Merge "GLES2 translator: workaround for nvidia bug with GL_VALIDATE_STAUS"

* commit '47706d40ab7ceaac975bd7859258d8b4d5bc6c4a':
  GLES2 translator: workaround for nvidia bug with GL_VALIDATE_STAUS
This commit is contained in:
David Turner
2011-08-03 06:50:31 -07:00
committed by Android Git Automerger

View File

@@ -935,6 +935,21 @@ GL_APICALL void GL_APIENTRY glGetProgramiv(GLuint program, GLenum pname, GLint*
params[0] = programData->getLinkStatus();
}
break;
#ifdef NV_WAR
//validate status should not return GL_TRUE if link failed
case GL_VALIDATE_STATUS:
{
ObjectDataPtr objData = thrd->shareGroup->getObjectData(SHADER,program);
SET_ERROR_IF(!objData.Ptr() ,GL_INVALID_OPERATION);
SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
ProgramData* programData = (ProgramData*)objData.Ptr();
if (programData->getLinkStatus()==GL_TRUE)
ctx->dispatcher().glGetProgramiv(globalProgramName,pname,params);
else
params[0] = GL_FALSE;
}
break;
#endif
default:
ctx->dispatcher().glGetProgramiv(globalProgramName,pname,params);
}