From 65dcff7a26730e2e1112f7f326b941e3a3549870 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Thu, 5 Oct 2017 14:55:24 +0200 Subject: [PATCH] radv: add has_clear_state and enable it on CIK+ only This will allow us to emit the CLEAR_STATE packet instead of a bunch of useless packets when doing CS initialization. Signed-off-by: Samuel Pitoiset Reviewed-by: Dave Airlie --- src/amd/vulkan/radv_device.c | 5 +++++ src/amd/vulkan/radv_private.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 23f5e70321d..b2aef2a8130 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -401,6 +401,11 @@ radv_physical_device_init(struct radv_physical_device *device, device->rbplus_allowed = device->rad_info.family == CHIP_STONEY; } + /* The mere presense of CLEAR_STATE in the IB causes random GPU hangs + * on SI. + */ + device->has_clear_state = device->rad_info.chip_class >= CIK; + return VK_SUCCESS; fail: diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index e673527811f..e58fb2175e2 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -277,7 +277,7 @@ struct radv_physical_device { bool has_rbplus; /* if RB+ register exist */ bool rbplus_allowed; /* if RB+ is allowed */ - + bool has_clear_state; /* This is the drivers on-disk cache used as a fallback as opposed to * the pipeline cache defined by apps. -- 2.30.2