Fix ProgramParameteri validation
dEQP tests suggest that passing a value other than GL_FALSE or GL_TRUE
to ProgramParameteri generates INVALID_VALUE. The code is also
refactored so that the implementation of ProgramParameteri is in the
Context object.
BUG=angleproject:1101
TEST=dEQP-GLES3.functional.negative_api.shader.program_parameteri
Change-Id: I432d19fb574e58a7e0059189ab5b1863de029cdc
Reviewed-on: https://chromium-review.googlesource.com/336163
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 6dad59f..d0a1bdb 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -1961,6 +1961,15 @@
// clang-format on
}
+void Context::programParameteri(GLuint program, GLenum pname, GLint value)
+{
+ gl::Program *programObject = getProgram(program);
+ ASSERT(programObject != nullptr);
+
+ ASSERT(pname == GL_PROGRAM_BINARY_RETRIEVABLE_HINT);
+ programObject->setBinaryRetrievableHint(value != GL_FALSE);
+}
+
void Context::initRendererString()
{
std::ostringstream rendererString;