i965/fs: Calculate maximum execution size of MOV_INDIRECT correctly.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Francisco Jerez 2016-05-17 16:10:38 -07:00
parent 122e031548
commit dea9c1df89

View file

@ -4901,15 +4901,9 @@ get_lowered_simd_width(const struct brw_device_info *devinfo,
case SHADER_OPCODE_MOV_INDIRECT:
/* Prior to Broadwell, we only have 8 address subregisters */
if (devinfo->gen < 8)
return 8;
if (inst->exec_size < 16) {
return inst->exec_size;
} else {
assert(type_sz(inst->dst.type) >= 4);
return MIN2(inst->exec_size / (type_sz(inst->dst.type) / 4), 16);
}
return MIN3(devinfo->gen >= 8 ? 16 : 8,
2 * REG_SIZE / (inst->dst.stride * type_sz(inst->dst.type)),
inst->exec_size);
default:
return inst->exec_size;