Mesa (master): radv/winsys: be more robust when a CS failed during recording

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 22 15:19:07 UTC 2020


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Sun Jul 12 19:13:18 2020 +0200

radv/winsys: be more robust when a CS failed during recording

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5872>

---

 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index 4f91aa1562a..b024ef97104 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -575,7 +575,7 @@ static void radv_amdgpu_cs_add_buffer_internal(struct radv_amdgpu_cs *cs,
 	unsigned hash;
 	int index = radv_amdgpu_cs_find_buffer(cs, bo);
 
-	if (index != -1 || cs->status != VK_SUCCESS)
+	if (index != -1)
 		return;
 
 	if (cs->num_buffers == cs->max_num_buffers) {
@@ -660,6 +660,9 @@ static void radv_amdgpu_cs_add_buffer(struct radeon_cmdbuf *_cs,
 	struct radv_amdgpu_cs *cs = radv_amdgpu_cs(_cs);
 	struct radv_amdgpu_winsys_bo *bo = radv_amdgpu_winsys_bo(_bo);
 
+	if (cs->status != VK_SUCCESS)
+		return;
+
 	if (bo->is_virtual)  {
 		radv_amdgpu_cs_add_virtual_buffer(_cs, _bo);
 		return;
@@ -677,6 +680,9 @@ static void radv_amdgpu_cs_execute_secondary(struct radeon_cmdbuf *_parent,
 	struct radv_amdgpu_cs *parent = radv_amdgpu_cs(_parent);
 	struct radv_amdgpu_cs *child = radv_amdgpu_cs(_child);
 
+	if (parent->status != VK_SUCCESS || child->status != VK_SUCCESS)
+		return;
+
 	for (unsigned i = 0; i < child->num_buffers; ++i) {
 		radv_amdgpu_cs_add_buffer_internal(parent,
 		                                   child->handles[i].bo_handle,



More information about the mesa-commit mailing list