i965: Claim that SEND/math has two sources.
authorMatt Turner <mattst88@gmail.com>
Mon, 7 Nov 2016 05:50:14 +0000 (21:50 -0800)
committerMatt Turner <mattst88@gmail.com>
Fri, 20 Jan 2017 19:40:52 +0000 (11:40 -0800)
src1 must be a descriptor (including the information to determine that
the SEND is doing an extended math operation), but src0 can actually be
null since it serves as the source of the implicit GRF -> MRF move.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_eu_validate.c

index 8c2eb99f8e5e9132dcf7acc2084b6b1e071bb894..9648f0d0732e6642c7e528a0ac5a1fa536c918c7 100644 (file)
@@ -96,7 +96,14 @@ num_sources_from_inst(const struct gen_device_info *devinfo,
    } else if (devinfo->gen < 6 &&
               brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SEND) {
       if (brw_inst_sfid(devinfo, inst) == BRW_SFID_MATH) {
-         math_function = brw_inst_math_msg_function(devinfo, inst);
+         /* src1 must be a descriptor (including the information to determine
+          * that the SEND is doing an extended math operation), but src0 can
+          * actually be null since it serves as the source of the implicit GRF
+          * to MRF move.
+          *
+          * If we stop using that functionality, we'll have to revisit this.
+          */
+         return 2;
       } else {
          /* Send instructions are allowed to have null sources since they use
           * the base_mrf field to specify which message register source.