mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 06:30:10 +01:00
i965/fs: Use the correct base_mrf for spilling pairs in SIMD8
Before, we were hard-coding the base_mrf based on dispatch width not number of registers spilled at a time. This caused us to emit instructions with a base_mrf or 14 and a mlen of 3 so we used the magical non-existant m16 register. This fixes the problem. Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
50d0e2e118
commit
493bfa54a5
1 changed files with 4 additions and 3 deletions
|
|
@ -656,11 +656,12 @@ void
|
|||
fs_visitor::emit_spill(bblock_t *block, fs_inst *inst, fs_reg src,
|
||||
uint32_t spill_offset, int count)
|
||||
{
|
||||
int spill_base_mrf = dispatch_width > 8 ? 13 : 14;
|
||||
|
||||
int reg_size = 1;
|
||||
if (count % 2 == 0)
|
||||
int spill_base_mrf = 14;
|
||||
if (count % 2 == 0) {
|
||||
spill_base_mrf = 13;
|
||||
reg_size = 2;
|
||||
}
|
||||
|
||||
for (int i = 0; i < count / reg_size; i++) {
|
||||
fs_inst *spill_inst =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue