On 11/8/18 4:43 PM, Emil Velikov wrote:
HI guys,

On Tue, 16 Oct 2018 at 22:06, Marek Olšák <mar...@gmail.com> wrote:

On Thu, Oct 11, 2018 at 4:43 AM Samuel Pitoiset
<samuel.pitoi...@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-sta...@lists.freedesktop.org
Signed-off-by: Samuel Pitoiset <samuel.pitoi...@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.

Hi,

"[PATCH v2] radv: add a workaround for a VGT hang with prim restart and strips" should already be in stable.

This one hasn't been pushed because it might decrease performance and we might want to find a better solution.

Thanks.

Thanks
Emil

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to