summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe
diff options
context:
space:
mode:
authorMatt Turner <[email protected]>2016-08-18 15:54:47 -0700
committerMatt Turner <[email protected]>2016-08-19 16:52:25 -0700
commite7c376adfdecd4c1333997c8be8bb066a87c67b4 (patch)
tree74c63969607d898899afadec9d05fed723bb96fe /src/gallium/drivers/llvmpipe
parent3ef31122d08fdf7e8e6a8d74a9d91006fe840f86 (diff)
i965/vec4: Ignore swizzle of VGRF for use by var_range_end().
var_range_end(v, n) loops over the n components of variable number v and finds the maximum value, giving the last use of any component of v. Therefore it expects v to correspond to the variable associated with the .x channel of the VGRF. var_from_reg() however returns the variable for the first channel of the VGRF, post-swizzle. So, if the last register had a swizzle with y, z, or w in the swizzle component, we would read out of bounds. For any other register, we would read liveness information from the next register. The fix is to convert the src_reg to a dst_reg in order to call the dst_reg version of var_from_reg() that doesn't consider the swizzle. Cc: [email protected] Reviewed-by: Francisco Jerez <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/gallium/drivers/llvmpipe')
0 files changed, 0 insertions, 0 deletions