anv/cmd_buffer: Enable a CS stall workaround for Sky Lake gt4
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 10 Nov 2016 22:09:08 +0000 (14:09 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 10 Nov 2016 23:21:18 +0000 (15:21 -0800)
This fixes hangs in Dota2

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "12.0 13.0" <mesa-stable@lists.freedesktop.org>
src/intel/vulkan/genX_cmd_buffer.c

index 35f5dd6e003e2908ddc4b6b2a91266a0127f3116..2bc7e7473a36aab6e0314b4b55e3b387374b425d 100644 (file)
@@ -1880,6 +1880,9 @@ emit_ps_depth_count(struct anv_cmd_buffer *cmd_buffer,
       pc.PostSyncOperation       = WritePSDepthCount;
       pc.DepthStallEnable        = true;
       pc.Address                 = (struct anv_address) { bo, offset };
+
+      if (GEN_GEN == 9 && cmd_buffer->device->info.gt == 4)
+         pc.CommandStreamerStallEnable = true;
    }
 }
 
@@ -1985,6 +1988,9 @@ void genX(CmdWriteTimestamp)(
          pc.DestinationAddressType  = DAT_PPGTT;
          pc.PostSyncOperation       = WriteTimestamp;
          pc.Address = (struct anv_address) { &pool->bo, offset };
+
+         if (GEN_GEN == 9 && cmd_buffer->device->info.gt == 4)
+            pc.CommandStreamerStallEnable = true;
       }
       break;
    }