anv: Handle companion RCS in end/destory/reset code path
If we have valid companion RCS command buffer, we should end/destroy/reset in the same fashion as of main command buffer. v2: - Add lock around anv_cmd_buffer_destroy (Sagar) Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23661>
This commit is contained in:
@@ -231,7 +231,14 @@ anv_cmd_buffer_destroy(struct vk_command_buffer *vk_cmd_buffer)
|
||||
struct anv_cmd_buffer *cmd_buffer =
|
||||
container_of(vk_cmd_buffer, struct anv_cmd_buffer, vk);
|
||||
|
||||
pthread_mutex_lock(&cmd_buffer->device->mutex);
|
||||
if (cmd_buffer->companion_rcs_cmd_buffer) {
|
||||
destroy_cmd_buffer(cmd_buffer->companion_rcs_cmd_buffer);
|
||||
cmd_buffer->companion_rcs_cmd_buffer = NULL;
|
||||
}
|
||||
|
||||
destroy_cmd_buffer(cmd_buffer);
|
||||
pthread_mutex_unlock(&cmd_buffer->device->mutex);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -286,6 +293,12 @@ anv_cmd_buffer_reset(struct vk_command_buffer *vk_cmd_buffer,
|
||||
struct anv_cmd_buffer *cmd_buffer =
|
||||
container_of(vk_cmd_buffer, struct anv_cmd_buffer, vk);
|
||||
|
||||
if (cmd_buffer->companion_rcs_cmd_buffer) {
|
||||
reset_cmd_buffer(cmd_buffer->companion_rcs_cmd_buffer, flags);
|
||||
destroy_cmd_buffer(cmd_buffer->companion_rcs_cmd_buffer);
|
||||
cmd_buffer->companion_rcs_cmd_buffer = NULL;
|
||||
}
|
||||
|
||||
reset_cmd_buffer(cmd_buffer, flags);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user