From b29f92daec59a4181a45175b6bfc6e636c57fb33 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Mon, 19 Oct 2015 15:08:28 -0700 Subject: [PATCH] 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 --- src/mesa/drivers/dri/i965/brw_eu_compact.c | 4 ++++ src/mesa/drivers/dri/i965/brw_inst.h | 2 ++ 2 files changed, 6 insertions(+) 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) -- 2.30.2