From 6b6a38a8beb18be1ad972589754829e16e36616f Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 11 Aug 2020 11:26:16 +0200 Subject: [PATCH] radv: limit LATE_ALLOC_GS to prevent a GPU hang on GFX10 Found by inspection, doesn't fix anything known. Cc: mesa-stable Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: (cherry picked from commit e4c6204d6595d7dc47c23ae637b8aba3307ec2cc) --- .pick_status.json | 2 +- src/amd/vulkan/si_cmd_buffer.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index b99617d70e5..78049e364d8 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -31,7 +31,7 @@ "description": "radv: limit LATE_ALLOC_GS to prevent a GPU hang on GFX10", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c index 1286a7609e7..d3b0fd24f47 100644 --- a/src/amd/vulkan/si_cmd_buffer.c +++ b/src/amd/vulkan/si_cmd_buffer.c @@ -336,6 +336,10 @@ si_emit_graphics(struct radv_device *device, late_alloc_wave64_gs = 0; cu_mask_gs = 0xffff; } + + /* Limit LATE_ALLOC_GS for prevent a hang (hw bug). */ + if (physical_device->rad_info.chip_class == GFX10) + late_alloc_wave64_gs = MIN2(late_alloc_wave64_gs, 64); } else { if (!physical_device->rad_info.use_late_alloc) { late_alloc_wave64 = 0;