[Mesa-dev] [PATCH] mesa: add additional checks for uniform location query
Tapani Pälli
tapani.palli at intel.com
Mon Oct 26 02:22:50 PDT 2015
Patch adds additional check to make sure we don't return locations for
structures or arrays of structures.
>From page 79 of the OpenGL 4.2 spec:
"A valid name cannot be a structure, an array of structures, or any
portion of a single vector or a matrix."
No Piglit or CTS regressions observed.
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
---
src/mesa/main/shader_query.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp
index 8182d3d..b0707a4 100644
--- a/src/mesa/main/shader_query.cpp
+++ b/src/mesa/main/shader_query.cpp
@@ -808,6 +808,16 @@ program_resource_location(struct gl_shader_program *shProg,
if (RESOURCE_UNI(res)->builtin)
return -1;
+ /* From page 79 of the OpenGL 4.2 spec:
+ *
+ * "A valid name cannot be a structure, an array of structures, or any
+ * portion of a single vector or a matrix."
+ */
+ if (RESOURCE_UNI(res)->type->is_record() ||
+ (RESOURCE_UNI(res)->type->is_array() &&
+ RESOURCE_UNI(res)->type->fields.array->is_record()))
+ return -1;
+
/* From the GL_ARB_uniform_buffer_object spec:
*
* "The value -1 will be returned if <name> does not correspond to an
--
2.4.3
More information about the mesa-dev
mailing list