Module: Mesa
Branch: master
Commit: f25b2f76b031f2427f97a4a4fc58f4d237b764b4
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f25b2f76b031f2427f97a4a4fc58f4d237b764b4

Author: Timothy Arceri <[email protected]>
Date:   Sat May 13 15:53:08 2017 +1000

mesa: don't crash in KHR_no_error uniform variants when location == -1

From Seciton 7.6 (UNIFORM VARIABLES) of the OpenGL 4.5 spec:

  "If the value of location is -1, the Uniform* commands will
  silently ignore the data passed in, and the current uniform values
  will not be changed.

Reviewed-by: Samuel Pitoiset <[email protected]>

---

 src/mesa/main/uniform_query.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
index 0e02a764a9..79a66a7ac3 100644
--- a/src/mesa/main/uniform_query.cpp
+++ b/src/mesa/main/uniform_query.cpp
@@ -911,6 +911,15 @@ _mesa_uniform(GLint location, GLsizei count, const GLvoid 
*values,
 
    struct gl_uniform_storage *uni;
    if (_mesa_is_no_error_enabled(ctx)) {
+      /* From Seciton 7.6 (UNIFORM VARIABLES) of the OpenGL 4.5 spec:
+       *
+       *   "If the value of location is -1, the Uniform* commands will
+       *   silently ignore the data passed in, and the current uniform values
+       *   will not be changed.
+       */
+      if (location == -1)
+         return;
+
       uni = shProg->UniformRemapTable[location];
 
       /* The array index specified by the uniform location is just the

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to