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

Author: Kenneth Graunke <kenn...@whitecape.org>
Date:   Wed Sep  1 15:04:57 2010 -0700

ast_function: Fix check for "too few components".

This was triggering even for matrix-from-matrix constructors.  It is
perfectly legal to construct a mat3 from a mat2 - the rest will be
filled in by the identity matrix.

Changes piglit test constructor-23.vert from FAIL to PASS, but the
generated code is incorrect.

---

 src/glsl/ast_function.cpp |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/glsl/ast_function.cpp b/src/glsl/ast_function.cpp
index d7d1b3e..0c9f890 100644
--- a/src/glsl/ast_function.cpp
+++ b/src/glsl/ast_function.cpp
@@ -1151,7 +1151,8 @@ ast_function_expression::hir(exec_list *instructions,
        *    arguments to provide an initializer for every component in the
        *    constructed value."
        */
-      if ((components_used < type_components) && (components_used != 1)) {
+      if (components_used < type_components && components_used != 1
+         && matrix_parameters == 0) {
         _mesa_glsl_error(& loc, state, "too few components to construct "
                          "`%s'",
                          constructor_type->name);

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to