[Mesa-dev] [PATCH 07/11] intel/compiler/icl: Set the condition for dependency control on gen11+

Matt Turner mattst88 at gmail.com
Wed Mar 21 21:06:18 UTC 2018


From: Anuj Phogat <anuj.phogat at gmail.com>

When source or destination datatype is 64b or operation is integer
DWord multiply, DepCtrl must not be used.
We had this restriction on few previous intel platforms. It has been
brought back on Gen11+.
---
 src/intel/compiler/brw_vec4.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/intel/compiler/brw_vec4.cpp b/src/intel/compiler/brw_vec4.cpp
index e4838146ac1..bb668b2538a 100644
--- a/src/intel/compiler/brw_vec4.cpp
+++ b/src/intel/compiler/brw_vec4.cpp
@@ -984,15 +984,19 @@ vec4_visitor::is_dep_ctrl_unsafe(const vec4_instruction *inst)
     * SKL PRMs don't include this restriction, however, gen7 seems to be
     * affected, at least by the 64b restriction, since DepCtrl with double
     * precision instructions seems to produce GPU hangs in some cases.
+    *
+    * This restriction is back in ICL+ platforms.
     */
-   if (devinfo->gen == 8 || gen_device_info_is_9lp(devinfo)) {
+   if (devinfo->gen == 8 ||
+       gen_device_info_is_9lp(devinfo) ||
+       devinfo->gen >= 11) {
       if (inst->opcode == BRW_OPCODE_MUL &&
          IS_DWORD(inst->src[0]) &&
          IS_DWORD(inst->src[1]))
          return true;
    }
 
-   if (devinfo->gen >= 7 && devinfo->gen <= 8) {
+   if ((devinfo->gen >= 7 && devinfo->gen <= 8) || devinfo->gen >= 11) {
       if (IS_64BIT(inst->dst) || IS_64BIT(inst->src[0]) ||
           IS_64BIT(inst->src[1]) || IS_64BIT(inst->src[2]))
       return true;
-- 
2.16.1



More information about the mesa-dev mailing list