From: Brian Paul Date: Tue, 25 Aug 2009 23:36:28 +0000 (-0600) Subject: progs/util: added ValidateShaderProgram() to shaderutil.c X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fa6299cb31b62ff2418138cbb789b900d19a0bca;p=mesa.git progs/util: added ValidateShaderProgram() to shaderutil.c --- diff --git a/progs/util/shaderutil.c b/progs/util/shaderutil.c index c58c249831e..4db950016b8 100644 --- a/progs/util/shaderutil.c +++ b/progs/util/shaderutil.c @@ -140,6 +140,25 @@ LinkShaders(GLuint vertShader, GLuint fragShader) } +GLboolean +ValidateShaderProgram(GLuint program) +{ + GLint stat; + glValidateProgramARB(program); + glGetProgramiv(program, GL_VALIDATE_STATUS, &stat); + + if (!stat) { + GLchar log[1000]; + GLsizei len; + glGetProgramInfoLog(program, 1000, &len, log); + fprintf(stderr, "Program validation error:\n%s\n", log); + return 0; + } + + return (GLboolean) stat; +} + + GLdouble GetShaderCompileTime(void) { @@ -170,6 +189,7 @@ SetUniformValues(GLuint program, struct uniform_info uniforms[]) case GL_SAMPLER_3D: case GL_SAMPLER_CUBE: case GL_SAMPLER_2D_RECT_ARB: + assert(uniforms[i].value[0] >= 0.0F); glUniform1i(uniforms[i].location, (GLint) uniforms[i].value[0]); break; diff --git a/progs/util/shaderutil.h b/progs/util/shaderutil.h index 91c0d4094f8..98c71811569 100644 --- a/progs/util/shaderutil.h +++ b/progs/util/shaderutil.h @@ -36,6 +36,9 @@ CompileShaderFile(GLenum shaderType, const char *filename); extern GLuint LinkShaders(GLuint vertShader, GLuint fragShader); +extern GLboolean +ValidateShaderProgram(GLuint program); + extern GLdouble GetShaderCompileTime(void);