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