i965: SF: Change calculate_masks to use the VUE map.

Previously, SF code used the idx_to_attr[] array to compute the
location of entries in the VUE map.  This array didn't properly
account for gl_PointSize.  Now we use the VUE map directly.

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Paul Berry 2011-08-24 15:48:55 -07:00
parent aafe2cdf86
commit 84e7d04e1d

View file

@ -350,10 +350,10 @@ static GLboolean calculate_masks( struct brw_sf_compile *c,
*pc_linear = 0;
*pc = 0xf;
if (persp_mask & BITFIELD64_BIT(c->idx_to_attr[reg*2]))
if (persp_mask & BITFIELD64_BIT(vert_reg_to_vert_result(c, reg, 0)))
*pc_persp = 0xf;
if (linear_mask & BITFIELD64_BIT(c->idx_to_attr[reg*2]))
if (linear_mask & BITFIELD64_BIT(vert_reg_to_vert_result(c, reg, 0)))
*pc_linear = 0xf;
/* Maybe only processs one attribute on the final round:
@ -361,10 +361,10 @@ static GLboolean calculate_masks( struct brw_sf_compile *c,
if (reg*2+1 < c->nr_setup_attrs) {
*pc |= 0xf0;
if (persp_mask & BITFIELD64_BIT(c->idx_to_attr[reg*2+1]))
if (persp_mask & BITFIELD64_BIT(vert_reg_to_vert_result(c, reg, 1)))
*pc_persp |= 0xf0;
if (linear_mask & BITFIELD64_BIT(c->idx_to_attr[reg*2+1]))
if (linear_mask & BITFIELD64_BIT(vert_reg_to_vert_result(c, reg, 1)))
*pc_linear |= 0xf0;
}