mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
i965: Test instruction compaction on all supported Gens
Note that there's no point in testing on G45, since its compaction is the same as Gen5. Same logic applies to Gen7 variants and low-power parts. Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com>
This commit is contained in:
parent
9ff7d9b853
commit
3d661e6062
1 changed files with 42 additions and 8 deletions
|
|
@ -74,6 +74,13 @@ clear_pad_bits(const struct gen_device_info *devinfo, brw_inst *inst)
|
|||
brw_inst_src1_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE) {
|
||||
brw_inst_set_bits(inst, 127, 111, 0);
|
||||
}
|
||||
|
||||
if (devinfo->gen == 8 && !devinfo->is_cherryview &&
|
||||
is_3src(devinfo, (opcode)brw_inst_opcode(devinfo, inst))) {
|
||||
brw_inst_set_bits(inst, 105, 105, 0);
|
||||
brw_inst_set_bits(inst, 84, 84, 0);
|
||||
brw_inst_set_bits(inst, 36, 35, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
@ -87,13 +94,41 @@ skip_bit(const struct gen_device_info *devinfo, brw_inst *src, int bit)
|
|||
if (bit == 29)
|
||||
return true;
|
||||
|
||||
/* pad bit */
|
||||
if (bit == 47)
|
||||
return true;
|
||||
if (is_3src(devinfo, (opcode)brw_inst_opcode(devinfo, src))) {
|
||||
if (devinfo->gen >= 9 || devinfo->is_cherryview) {
|
||||
if (bit == 127)
|
||||
return true;
|
||||
} else {
|
||||
if (bit >= 126 && bit <= 127)
|
||||
return true;
|
||||
|
||||
/* pad bits */
|
||||
if (bit >= 90 && bit <= 95)
|
||||
return true;
|
||||
if (bit == 105)
|
||||
return true;
|
||||
|
||||
if (bit == 84)
|
||||
return true;
|
||||
|
||||
if (bit >= 35 && bit <= 36)
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (bit == 47)
|
||||
return true;
|
||||
|
||||
if (devinfo->gen >= 8) {
|
||||
if (bit == 11)
|
||||
return true;
|
||||
|
||||
if (bit == 95)
|
||||
return true;
|
||||
} else {
|
||||
if (devinfo->gen < 7 && bit == 90)
|
||||
return true;
|
||||
|
||||
if (bit >= 91 && bit <= 95)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* sometimes these are pad bits. */
|
||||
if (brw_inst_opcode(devinfo, src) != BRW_OPCODE_SEND &&
|
||||
|
|
@ -289,10 +324,9 @@ int
|
|||
main(int argc, char **argv)
|
||||
{
|
||||
struct gen_device_info *devinfo = (struct gen_device_info *)calloc(1, sizeof(*devinfo));
|
||||
devinfo->gen = 6;
|
||||
bool fail = false;
|
||||
|
||||
for (devinfo->gen = 6; devinfo->gen <= 7; devinfo->gen++) {
|
||||
for (devinfo->gen = 5; devinfo->gen <= 9; devinfo->gen++) {
|
||||
fail |= run_tests(devinfo);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue