mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 15:38:09 +02:00
i965/fs: recognize writes with a subreg_offset > 0 as partial
Usually, writes to a subreg_offset > 0 would also have a stride > 1 and we would recognize them as partial, however, there is one case where this does not happen, that is when we generate code for 64-bit imemdiates in gen7, where we produce something like this: mov(8) vgrf10:UD, <low 32-bit> mov(8) vgrf10+0.4:UD, <high 32-bit> and then we use the result with a stride of 0, as in: mov(8) vgrf13:DF, vgrf10<0>:DF Although we could try to avoid this issue by producing different code for this by using writes with a stride of 2, that runs into other problems affecting gen7 and the fact is that any instruction that writes to a subreg_offset > 0 is a partial write so we should really recognize them as such. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
34ed61b334
commit
193cb67a84
1 changed files with 2 additions and 1 deletions
|
|
@ -700,7 +700,8 @@ fs_inst::is_partial_write() const
|
|||
{
|
||||
return ((this->predicate && this->opcode != BRW_OPCODE_SEL) ||
|
||||
(this->exec_size * type_sz(this->dst.type)) < 32 ||
|
||||
!this->dst.is_contiguous());
|
||||
!this->dst.is_contiguous() ||
|
||||
this->dst.subreg_offset > 0);
|
||||
}
|
||||
|
||||
unsigned
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue