From 17d98ae25491d5781356da39658f926ed55f2eb5 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 27 Oct 2014 16:50:12 -0700 Subject: [PATCH] i965/fs: Don't set dependency hints on instructions with spilled destinations Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp index 2313af90387..44c74a3d5eb 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp @@ -881,6 +881,14 @@ fs_visitor::spill_reg(int spill_reg) inst->dst.reg = spill_src.reg; inst->dst.reg_offset = 0; + /* If we're immediately spilling the register, we should not use + * destination dependency hints. Doing so will cause the GPU do + * try to read and write the register at the same time and may + * hang the GPU. + */ + inst->no_dd_clear = false; + inst->no_dd_check = false; + /* If our write is going to affect just part of the * inst->regs_written(), then we need to unspill the destination * since we write back out all of the regs_written(). -- 2.30.2