[Mesa-dev] [PATCH] mesa: Fix pixel shader scratch space allocation on Gen9+ platforms.
Kenneth Graunke
kenneth at whitecape.org
Tue Nov 8 20:04:21 UTC 2016
On Tuesday, November 8, 2016 11:49:58 AM PST Matt Turner wrote:
> On Tue, Nov 8, 2016 at 10:25 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> > We had missed a bit of errata - PS scratch needs to be computed as if
> > there were 4 subslices per slice, rather than 3.
> >
> > Skylake Broxton Kabylake
> > GT1 GT2 GT3 GT4 2x6 3x6 GT1 GT1.5 GT2 GT3 GT4
> > Actual Slices 1 1 2 3 1 1 1 1 1 2 3
> > Total Subslices 3 3 6 9 2 3 2 3 3 6 9
> > Subsl. for PS Scratch 4 4 8 12 4 4 4 4 4 8 12
> >
> > Note that Skylake GT1-3 already worked because we allocated 64 * 9
> > (trying to use a value that would work on GT4, with 9 subslices),
> > and the actual required values were 64 * 4 or 64 * 8. However, all
> > others (Skylake GT4, Broxton, and Kabylake GT1-4) underallocated,
> > which can lead to scratch writes trashing random process memory,
> > and rendering corruption or GPU hangs.
> >
> > Fixes GPU hangs and rendering corruption on Skylake GT4 in shaders that
> > spill. Particularly, dEQP-GLES31.functional.ubo.all_per_block_buffers.*
> > now runs successfully with no hangs and renders correctly. This may
> > fix problems on Broxton and Kabylake as well.
> >
> > Cc: "13.0" <mesa-stable at lists.freedesktop.org>
> > Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> > ---
> > src/intel/common/gen_device_info.c | 33 +++++++++++++++++++--------------
> > 1 file changed, 19 insertions(+), 14 deletions(-)
> >
> > diff --git a/src/intel/common/gen_device_info.c b/src/intel/common/gen_device_info.c
> > index 30df0b2..1dc1769 100644
> > --- a/src/intel/common/gen_device_info.c
> > +++ b/src/intel/common/gen_device_info.c
> > @@ -335,7 +335,6 @@ static const struct gen_device_info gen_device_info_chv = {
> > .max_gs_threads = 336, \
> > .max_tcs_threads = 336, \
> > .max_tes_threads = 336, \
> > - .max_wm_threads = 64 * 9, \
>
> Is this intentional? I don't see CHV called out in the commit message,
> and the new code at the bottom is for gen >= 9, while CHV is 8.
Sorry, I should have used a bigger -U setting when sending these out.
This change is to the GEN9_FEATURES macro which is directly below the
chv struct...and diff doesn't handle the header nicely.
--Ken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161108/920a7d8c/attachment.sig>
More information about the mesa-dev
mailing list