[Mesa-stable] [PATCH] radv: adjust the VGT workaround for prim restart on GFX9

Emil Velikov emil.l.velikov at gmail.com
Thu Nov 8 15:43:15 UTC 2018


HI guys,

On Tue, 16 Oct 2018 at 22:06, Marek Olšák <maraeo at gmail.com> wrote:
>
> On Thu, Oct 11, 2018 at 4:43 AM Samuel Pitoiset
> <samuel.pitoiset at gmail.com> wrote:
> >
> > WD_SWITCH_ON_EOP seems to be the only workaround that fixes
> > the GPU hangs with Yakuza and The Evil Within on Vega. I don't
> > like as it might decrease geometry performance as pointed out
> > by Marek, but I don't know how to implement a better one.
> >
> > Cc: mesa-stable at lists.freedesktop.org
> > Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> > ---
> >  src/amd/vulkan/radv_pipeline.c | 13 +++++++++++--
> >  1 file changed, 11 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
> > index 426b417e172..2256b2c58e9 100644
> > --- a/src/amd/vulkan/radv_pipeline.c
> > +++ b/src/amd/vulkan/radv_pipeline.c
> > @@ -3412,14 +3412,23 @@ radv_compute_ia_multi_vgt_param_helpers(struct radv_pipeline *pipeline,
> >         }
> >
> >         /* Workaround for a VGT hang when strip primitive types are used with
> > -        * primitive restart.
> > +        * primitive restart. This fixes GPU hangs with Yakuza and The Evil
> > +        * Within, at least. Not sure if we can implement a better workaround.
> >          */
> >         if (pipeline->graphics.prim_restart_enable &&
> >             (prim == V_008958_DI_PT_LINESTRIP ||
> >              prim == V_008958_DI_PT_TRISTRIP ||
> >              prim == V_008958_DI_PT_LINESTRIP_ADJ ||
> >              prim == V_008958_DI_PT_TRISTRIP_ADJ)) {
>
> Adjacency primitive types should already have wd_switch_on_eop set to true.
>
> The workaround I'm going to use is:
>
>         if (!wd_switch_on_eop && key->u.primitive_restart)
>             partial_vs_wave = true;
>
> Our docs say we should do this. I don't know why it still hangs with
> this workaround.
>
I can see that Marek committed the above suggestion to radeonsi as
commit eae8f49fc65e6e625f5e05d38c3bf1b61b84bd3d
Yet I cannot see an equivalent patch for radv.

Samuel I'm assuming that you're working on something else and didn't
get back to this one?
Alternatively, please let me know which commit addresses the GPU
hangs, and if we'd want it in stable.

Thanks
Emil


More information about the mesa-stable mailing list