Mesa (main): radv: Move queue submit sparse bindings to a separate function.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue May 10 08:48:41 UTC 2022
Module: Mesa
Branch: main
Commit: c54c2901ff38b86197a7ee093c545001db6c8760
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c54c2901ff38b86197a7ee093c545001db6c8760
Author: Timur Kristóf <timur.kristof at gmail.com>
Date: Thu May 5 15:11:23 2022 +0200
radv: Move queue submit sparse bindings to a separate function.
Signed-off-by: Timur Kristóf <timur.kristof at gmail.com>
Reviewed-by: Dave Airlie <airlied at redhat.com>
Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki at gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16358>
---
src/amd/vulkan/radv_device.c | 46 +++++++++++++++++++++++++++-----------------
1 file changed, 28 insertions(+), 18 deletions(-)
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index b6343d1e504..7326de82f10 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -4514,6 +4514,31 @@ struct radv_deferred_queue_submission {
struct list_head processing_list;
};
+static VkResult
+radv_queue_submit_bind_sparse_memory(struct radv_device *device, struct vk_queue_submit *submission)
+{
+ for (uint32_t i = 0; i < submission->buffer_bind_count; ++i) {
+ VkResult result = radv_sparse_buffer_bind_memory(device, submission->buffer_binds + i);
+ if (result != VK_SUCCESS)
+ return result;
+ }
+
+ for (uint32_t i = 0; i < submission->image_opaque_bind_count; ++i) {
+ VkResult result =
+ radv_sparse_image_opaque_bind_memory(device, submission->image_opaque_binds + i);
+ if (result != VK_SUCCESS)
+ return result;
+ }
+
+ for (uint32_t i = 0; i < submission->image_bind_count; ++i) {
+ VkResult result = radv_sparse_image_bind_memory(device, submission->image_binds + i);
+ if (result != VK_SUCCESS)
+ return result;
+ }
+
+ return VK_SUCCESS;
+}
+
static VkResult
radv_queue_submit(struct vk_queue *vqueue, struct vk_queue_submit *submission)
{
@@ -4534,24 +4559,9 @@ radv_queue_submit(struct vk_queue *vqueue, struct vk_queue_submit *submission)
if (result != VK_SUCCESS)
goto fail;
- for (uint32_t i = 0; i < submission->buffer_bind_count; ++i) {
- result = radv_sparse_buffer_bind_memory(queue->device, submission->buffer_binds + i);
- if (result != VK_SUCCESS)
- goto fail;
- }
-
- for (uint32_t i = 0; i < submission->image_opaque_bind_count; ++i) {
- result =
- radv_sparse_image_opaque_bind_memory(queue->device, submission->image_opaque_binds + i);
- if (result != VK_SUCCESS)
- goto fail;
- }
-
- for (uint32_t i = 0; i < submission->image_bind_count; ++i) {
- result = radv_sparse_image_bind_memory(queue->device, submission->image_binds + i);
- if (result != VK_SUCCESS)
- goto fail;
- }
+ result = radv_queue_submit_bind_sparse_memory(queue->device, submission);
+ if (result != VK_SUCCESS)
+ goto fail;
if (!submission->command_buffer_count && !submission->wait_count && !submission->signal_count)
return VK_SUCCESS;
More information about the mesa-commit
mailing list