i965/fs: Set stride correctly for immediates in fs_reg(brw_reg).
authorMatt Turner <mattst88@gmail.com>
Mon, 2 Nov 2015 00:25:04 +0000 (00:25 +0000)
committerMatt Turner <mattst88@gmail.com>
Fri, 13 Nov 2015 19:27:51 +0000 (11:27 -0800)
commit4b0fbebf024e564c195f3ce94e1ce43a3d6442ea
tree1a769ea36756bdb78fbd9419d1cc3fd2fa2a5166
parentb99e1fd547035be9a6da5ee1b78b8a853c2ef3e0
i965/fs: Set stride correctly for immediates in fs_reg(brw_reg).

The fs_reg() constructors for immediates set stride to 0, except for
vector-immediates, which set stride to 1.  This patch makes the fs_reg
constructor that takes a brw_reg do likewise, so that stride is set
correctly for cases such as fs_reg(brw_imm_v(...)).

The generator asserts that this is true (and presumably it's useful in
some optimization passes?) and the VF fs_reg constructors did this (by
virtue of the fact that it doesn't override what init() does).

In the next commit, calling this constructor with brw_imm_* will generate
an IMM file register rather than a HW_REG, making this change necessary
to avoid breakage with existing uses of brw_imm_v().

Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs.cpp