mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
i965/fs: Consider predicated SEL instructions as whole variable writes.
The instruction (+f0.0) SEL dst, src0, src1 will write either src0 or src1 to dst, depending on the predicate. Unlike most predicated instructions, it always writes to dst. fs_inst::is_partial_write() is supposed to return true if the whole register is guaranteed to be written. The !inst->predicated check makes sense for most instructions, which might not write the whole register, but SEL is a special case. This caused live interval analysis to ignore the destination of predicated SEL instructions when computing "def" information. Requires the previous commit to avoid regressions. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
d21f542aa1
commit
2c32c3985c
1 changed files with 1 additions and 1 deletions
|
|
@ -689,7 +689,7 @@ fs_visitor::pop_force_sechalf()
|
|||
bool
|
||||
fs_inst::is_partial_write()
|
||||
{
|
||||
return (this->predicate ||
|
||||
return ((this->predicate && this->opcode != BRW_OPCODE_SEL) ||
|
||||
this->force_uncompressed ||
|
||||
this->force_sechalf);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue