Module: Mesa
Branch: master
Commit: 65dcff7a26730e2e1112f7f326b941e3a3549870
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=65dcff7a26730e2e1112f7f326b941e3a3549870

Author: Samuel Pitoiset <[email protected]>
Date:   Thu Oct  5 14:55:24 2017 +0200

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 <[email protected]>
Reviewed-by: Dave Airlie <[email protected]>

---

 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 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.

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to