From: Anuj Phogat <anuj.pho...@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

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to