glsl: fix assignment of multiple scalar and vecs to matrices.
authorSamuel Iglesias Gonsalvez <siglesias@igalia.com>
Thu, 27 Nov 2014 08:39:05 +0000 (09:39 +0100)
committerSamuel Iglesias Gonsalvez <siglesias@igalia.com>
Wed, 15 Apr 2015 06:11:18 +0000 (08:11 +0200)
commit3cbefe3cf4c745c7c681cfc18a1e47461fec91db
treea97735249570fc5affbb1c6109867fd1eaf93624
parentbc672e261c5f7ff56cd2b8f6b518ebfdc0163bb7
glsl: fix assignment of multiple scalar and vecs to matrices.

When a vec has more elements than row components in a matrix, the
code could end up failing an assert inside assign_to_matrix_column().

This patch makes sure that when there is still room in the matrix for
more elements (but in other columns of the matrix), the data is actually
assigned.

This patch fixes the following dEQP test:

  dEQP-GLES3.functional.shaders.conversions.matrix_combine.float_bvec4_ivec2_bool_to_mat4x2_vertex
  dEQP-GLES3.functional.shaders.conversions.matrix_combine.float_bvec4_ivec2_bool_to_mat4x2_fragment

Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
src/glsl/ast_function.cpp