diff options
author | Matt Turner <[email protected]> | 2015-10-19 15:08:28 -0700 |
---|---|---|
committer | Matt Turner <[email protected]> | 2015-10-21 10:17:38 -0700 |
commit | b29f92daec59a4181a45175b6bfc6e636c57fb33 (patch) | |
tree | b80c5d0187a122af995c69de51e167bdb362df5c | |
parent | 3ec9d96d435d5f57b35d4a8c75149fd75eaba187 (diff) |
i965: Add mask_control_ex field and handle it in compaction.
Documentation is sparse, but it appears to have existed on G45 and ILK
as a second bit extension of the mask_control field. Setting the pair of
bits to 0b11 enables "NoCMask".
Reviewed-by: Iago Toral Quiroga <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu_compact.c | 4 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_inst.h | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_eu_compact.c b/src/mesa/drivers/dri/i965/brw_eu_compact.c index b122deca727..f787ea3d4f8 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_compact.c +++ b/src/mesa/drivers/dri/i965/brw_eu_compact.c @@ -1018,6 +1018,8 @@ brw_try_compact_instruction(const struct brw_device_info *devinfo, if (devinfo->gen >= 6) { compact(acc_wr_control); + } else { + compact(mask_control_ex); } compact(cond_modifier); @@ -1229,6 +1231,8 @@ brw_uncompact_instruction(const struct brw_device_info *devinfo, brw_inst *dst, if (devinfo->gen >= 6) { uncompact(acc_wr_control); + } else { + uncompact(mask_control_ex); } uncompact(cond_modifier); diff --git a/src/mesa/drivers/dri/i965/brw_inst.h b/src/mesa/drivers/dri/i965/brw_inst.h index cb3d7e69a9a..819ce596547 100644 --- a/src/mesa/drivers/dri/i965/brw_inst.h +++ b/src/mesa/drivers/dri/i965/brw_inst.h @@ -182,6 +182,7 @@ F(debug_control, 30, 30) F(cmpt_control, 29, 29) FC(branch_control, 28, 28, devinfo->gen >= 8) FC(acc_wr_control, 28, 28, devinfo->gen >= 6) +FC(mask_control_ex, 28, 28, devinfo->is_g4x || devinfo->gen == 5) F(cond_modifier, 27, 24) FC(math_function, 27, 24, devinfo->gen >= 6) F(exec_size, 23, 21) @@ -792,6 +793,7 @@ F(cmpt_control, 29, 29) /* Same location as brw_inst */ FC(flag_subreg_nr, 28, 28, devinfo->gen <= 6) F(cond_modifier, 27, 24) /* Same location as brw_inst */ FC(acc_wr_control, 23, 23, devinfo->gen >= 6) +FC(mask_control_ex, 23, 23, devinfo->is_g4x || devinfo->gen == 5) F(subreg_index, 22, 18) F(datatype_index, 17, 13) F(control_index, 12, 8) |