mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
i965/fs: Determine partial writes based on the destination width
Now that we track both halves of a 16-wide vgrf, we no longer need to worry about force_sechalf or force_uncompressed. The only real issue is if the destination is too small. Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
27d7ef094a
commit
fbc0a798ee
2 changed files with 3 additions and 5 deletions
|
|
@ -821,8 +821,8 @@ bool
|
|||
fs_inst::is_partial_write() const
|
||||
{
|
||||
return ((this->predicate && this->opcode != BRW_OPCODE_SEL) ||
|
||||
this->force_uncompressed ||
|
||||
this->force_sechalf || !this->dst.is_contiguous());
|
||||
(this->dst.width * type_sz(this->dst.type)) < 32 ||
|
||||
!this->dst.is_contiguous());
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
|||
|
|
@ -787,11 +787,9 @@ fs_visitor::spill_reg(int spill_reg)
|
|||
* inst->regs_written(), then we need to unspill the destination
|
||||
* since we write back out all of the regs_written().
|
||||
*/
|
||||
if (inst->predicate || inst->force_uncompressed ||
|
||||
inst->force_sechalf || inst->dst.subreg_offset) {
|
||||
if (inst->is_partial_write())
|
||||
emit_unspill(block, inst, spill_src, subset_spill_offset,
|
||||
inst->regs_written);
|
||||
}
|
||||
|
||||
emit_spill(block, inst, spill_src, subset_spill_offset,
|
||||
inst->regs_written);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue