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.
This commit is contained in:
Kenneth Graunke
2010-09-01 15:04:57 -07:00
parent ee88c46640
commit 550237eedd

View File

@@ -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);