diff options
| author | Kenneth Graunke <kenneth@whitecape.org> | 2016-10-15 03:18:36 -0700 |
|---|---|---|
| committer | Emil Velikov <emil.l.velikov@gmail.com> | 2016-10-27 11:06:02 +0100 |
| commit | de826a10a703f1c2351cff48ab816474f34e9ded (patch) | |
| tree | 5360fd8a1e400c22f43322c8dd7a32fe05b7d4a2 /common.py | |
| parent | 188a866fd024314545eee8942c348d920c0e2679 (diff) | |
| download | external_mesa3d-de826a10a703f1c2351cff48ab816474f34e9ded.zip external_mesa3d-de826a10a703f1c2351cff48ab816474f34e9ded.tar.gz external_mesa3d-de826a10a703f1c2351cff48ab816474f34e9ded.tar.bz2 | |
i965: Make split_virtual_grfs() call compact_virtual_grfs().
Post-splitting, VGRFs have a maximum size (MAX_VGRF_SIZE). This is
required by the register allocator, as we have to create classes for
each size of VGRF.
We can (and do) allocate virtual registers larger than MAX_VGRF_SIZE,
but we must ensure that they are splittable. split_virtual_grfs()
asserts that the post-splitting register size is in range.
Unfortunately, these trip for completely dead registers which are too
large - we only set split points for live registers. So dead ones are
never split, and if they happened to be too large, they'd trip asserts.
To fix this, call compact_virtual_grfs() to eliminate dead registers
before splitting.
v2: Add a comment written by Iago.
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
(cherry picked from commit 27715c73ff84349466f62df0023863acd477f262)
Diffstat (limited to 'common.py')
0 files changed, 0 insertions, 0 deletions
