On 10/26/2015 12:11 PM, Timothy Arceri wrote:
On Mon, 2015-10-26 at 11:22 +0200, Tapani Pälli wrote:
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.pa...@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;
+
This could just be RESOURCE_UNI(res)->type->without_array()
->is_record() then it would also work for arrays of arrays.
True, this is simpler way to say the same thing, I'll change this.
/* From the GL_ARB_uniform_buffer_object spec:
*
* "The value -1 will be returned if <name> does not
correspond to an
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev