summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/amd/vulkan/radv_device.c5
-rw-r--r--src/amd/vulkan/radv_private.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 23f5e70321..b2aef2a813 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 e673527811..e58fb2175e 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.