Mesa (master): intel/fs: don't spill a register, set by undef

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Dec 21 21:28:19 UTC 2020


Module: Mesa
Branch: master
Commit: 5ad54d498cae78ffda5075258b24f218115bbcba
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ad54d498cae78ffda5075258b24f218115bbcba

Author: Yevhenii Kolesnikov <yevhenii.kolesnikov at globallogic.com>
Date:   Wed Dec  9 21:16:37 2020 +0200

intel/fs: don't spill a register, set by undef

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3941
Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov at globallogic.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8185>

---

 src/intel/compiler/brw_fs_reg_allocate.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_fs_reg_allocate.cpp b/src/intel/compiler/brw_fs_reg_allocate.cpp
index 978f9087071..52da2be2745 100644
--- a/src/intel/compiler/brw_fs_reg_allocate.cpp
+++ b/src/intel/compiler/brw_fs_reg_allocate.cpp
@@ -1208,7 +1208,8 @@ fs_reg_alloc::spill_reg(unsigned spill_reg)
       }
 
       if (inst->dst.file == VGRF &&
-          inst->dst.nr == spill_reg) {
+          inst->dst.nr == spill_reg &&
+          inst->opcode != SHADER_OPCODE_UNDEF) {
          int subset_spill_offset = spill_offset +
             ROUND_DOWN_TO(inst->dst.offset, REG_SIZE);
          fs_reg spill_src = alloc_spill_reg(regs_written(inst), ip);



More information about the mesa-commit mailing list