i965/vs: Fix swizzle related assertion
authorIan Romanick <ian.d.romanick@intel.com>
Fri, 30 Sep 2011 23:24:35 +0000 (16:24 -0700)
committerEric Anholt <eric@anholt.net>
Sun, 2 Oct 2011 05:16:06 +0000 (22:16 -0700)
commitfe006a74f6fd1ddeec778226111938193a995a6c
tree572ce28a0bb38615488c8bcfc59f6473d37f358b
parentdd9574d7a585bd470f2fe28f73e6d31430293dc9
i965/vs: Fix swizzle related assertion

As innocuous as it seemed, ebca47a basically broke the world (e.g.,
>200 piglit regressions).  In vec4_visitor::emit_block_move,
src->swizzle was expected to be BRW_SWIZZLE_NOOP before setting it to
a swizzle that would replicate the existing channels of the source
type to a vec4 (e.g., .xyyy for a vec2).

The original assertion seems to have been a little bogus.  In addition
to being BRW_SWIZZLE_NOOP, src->swizzle might already be a swizzle
that would replicate the existing channels of the source type to a
vec4.  In other words, it might already have the value that we're
about to assign to it.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp