intel/fs: Rename half() helpers to quarter(), allow index up to 3.

Makes more sense considering SIMD32.  Relaxing the assertion in
brw_ir_fs.h will be required in order to avoid assertion failures on
SNB with SIMD32 fragment shaders.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Francisco Jerez
2020-04-03 13:04:43 -07:00
parent bdad7f429a
commit 6310a05f68
4 changed files with 14 additions and 14 deletions

View File

@@ -208,7 +208,7 @@ fs_visitor::DEP_RESOLVE_MOV(const fs_builder &bld, int grf)
* dependencies, and to avoid having to deal with aligning its regs to 2.
*/
const fs_builder ubld = bld.annotate("send dependency resolve")
.half(0);
.quarter(0);
ubld.MOV(ubld.null_reg_f(), fs_reg(VGRF, grf, BRW_REGISTER_TYPE_F));
}
@@ -3885,9 +3885,9 @@ fs_visitor::lower_load_payload()
} else {
/* Platform doesn't have COMPR4. We have to fake it */
fs_reg mov_dst = retype(dst, inst->src[i].type);
ibld.half(0).MOV(mov_dst, half(inst->src[i], 0));
ibld.quarter(0).MOV(mov_dst, quarter(inst->src[i], 0));
mov_dst.nr += 4;
ibld.half(1).MOV(mov_dst, half(inst->src[i], 1));
ibld.quarter(1).MOV(mov_dst, quarter(inst->src[i], 1));
}
}

View File

@@ -140,7 +140,7 @@ namespace brw {
* Alias for group() with width equal to eight.
*/
fs_builder
half(unsigned i) const
quarter(unsigned i) const
{
return group(8, i);
}

View File

@@ -179,10 +179,10 @@ fs_visitor::emit_interpolation_setup_gen4()
if (devinfo->has_pln) {
for (unsigned i = 0; i < dispatch_width / 8; i++) {
abld.half(i).ADD(half(offset(delta_xy, abld, 0), i),
half(this->pixel_x, i), xstart);
abld.half(i).ADD(half(offset(delta_xy, abld, 1), i),
half(this->pixel_y, i), ystart);
abld.quarter(i).ADD(quarter(offset(delta_xy, abld, 0), i),
quarter(this->pixel_x, i), xstart);
abld.quarter(i).ADD(quarter(offset(delta_xy, abld, 1), i),
quarter(this->pixel_y, i), ystart);
}
} else {
abld.ADD(offset(delta_xy, abld, 0), this->pixel_x, xstart);
@@ -360,9 +360,10 @@ fs_visitor::emit_interpolation_setup_gen6()
for (unsigned c = 0; c < 2; c++) {
for (unsigned q = 0; q < dispatch_width / 8; q++) {
set_predicate(BRW_PREDICATE_NORMAL,
bld.half(q).SEL(half(offset(delta_xy[i], bld, c), q),
half(offset(centroid_delta_xy, bld, c), q),
half(offset(pixel_delta_xy, bld, c), q)));
bld.quarter(q).SEL(
quarter(offset(delta_xy[i], bld, c), q),
quarter(offset(centroid_delta_xy, bld, c), q),
quarter(offset(pixel_delta_xy, bld, c), q)));
}
}
}

View File

@@ -276,12 +276,11 @@ is_uniform(const fs_reg &reg)
/**
* Get the specified 8-component quarter of a register.
* XXX - Maybe come up with a less misleading name for this (e.g. quarter())?
*/
static inline fs_reg
half(const fs_reg &reg, unsigned idx)
quarter(const fs_reg &reg, unsigned idx)
{
assert(idx < 2);
assert(idx < 4);
return horiz_offset(reg, 8 * idx);
}