intel/fs: Fix FB write inst groups
authorJason Ekstrand <jason@jlekstrand.net>
Mon, 2 Sep 2019 02:57:05 +0000 (21:57 -0500)
committerJason Ekstrand <jason@jlekstrand.net>
Fri, 6 Sep 2019 03:58:09 +0000 (03:58 +0000)
This commit does two things.  First, it simplifies the way we compute
the FB write group bit.  There's no reason to use a ternary because
inst->group / 16 can only be 0 or 1.  Second, it fixes an order-of-
operations bug where the ternary wasn't selecting between (1 << 11) and
0 but between (1 << 11) and 0 | brw_dp_write_desc(...).

Fixes: 0d9648416 "intel/compiler: Use generic SEND for Gen7+ FB writes"
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/compiler/brw_fs.cpp

index 8bf11f9aa938884c75856a3f9cc5caf8068e2905..381d10bfccded7fef7383b83b29575824e61ab00 100644 (file)
@@ -4447,7 +4447,7 @@ lower_fb_write_logical_send(const fs_builder &bld, fs_inst *inst,
       uint32_t ex_desc = 0;
 
       inst->desc =
-         (inst->group / 16) ? (1 << 11) : 0 | /* rt slot group */
+         (inst->group / 16) << 11 | /* rt slot group */
          brw_dp_write_desc(devinfo, inst->target, msg_ctl,
                            GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE,
                            inst->last_rt, false);