Mesa (master): i965: Add mask_control_ex field and handle it in compaction.

Matt Turner mattst88 at kemper.freedesktop.org
Wed Oct 21 17:17:54 UTC 2015


Module: Mesa
Branch: master
Commit: b29f92daec59a4181a45175b6bfc6e636c57fb33
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b29f92daec59a4181a45175b6bfc6e636c57fb33

Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Oct 19 15:08:28 2015 -0700

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 <itoral at igalia.com>

---

 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 b122dec..f787ea3 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 cb3d7e6..819ce59 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)




More information about the mesa-commit mailing list