Mesa (main): anv: Split out state attachments allocation
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jan 26 02:46:03 UTC 2022
Module: Mesa
Branch: main
Commit: b32023573de43a1ff3253868407df16a03a92473
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b32023573de43a1ff3253868407df16a03a92473
Author: Iván Briano <ivan.briano at intel.com>
Date: Mon Nov 8 11:32:37 2021 -0800
anv: Split out state attachments allocation
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13980>
---
src/intel/vulkan/genX_cmd_buffer.c | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index f08aa26a7a0..6dc178064b7 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -1540,18 +1540,16 @@ transition_color_buffer(struct anv_cmd_buffer *cmd_buffer,
}
static VkResult
-genX(cmd_buffer_setup_attachments)(struct anv_cmd_buffer *cmd_buffer,
- const struct anv_render_pass *pass,
- const struct anv_framebuffer *framebuffer,
- const VkRenderPassBeginInfo *begin)
+cmd_buffer_alloc_state_attachments(struct anv_cmd_buffer *cmd_buffer,
+ uint32_t attachment_count)
{
struct anv_cmd_state *state = &cmd_buffer->state;
vk_free(&cmd_buffer->pool->alloc, state->attachments);
- if (pass->attachment_count > 0) {
+ if (attachment_count > 0) {
state->attachments = vk_zalloc(&cmd_buffer->pool->alloc,
- pass->attachment_count *
+ attachment_count *
sizeof(state->attachments[0]),
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
if (state->attachments == NULL) {
@@ -1563,6 +1561,23 @@ genX(cmd_buffer_setup_attachments)(struct anv_cmd_buffer *cmd_buffer,
state->attachments = NULL;
}
+ return VK_SUCCESS;
+}
+
+static VkResult
+genX(cmd_buffer_setup_attachments)(struct anv_cmd_buffer *cmd_buffer,
+ const struct anv_render_pass *pass,
+ const struct anv_framebuffer *framebuffer,
+ const VkRenderPassBeginInfo *begin)
+{
+ struct anv_cmd_state *state = &cmd_buffer->state;
+ VkResult result;
+
+ result = cmd_buffer_alloc_state_attachments(cmd_buffer,
+ pass->attachment_count);
+ if (result != VK_SUCCESS)
+ return result;
+
const VkRenderPassAttachmentBeginInfoKHR *attach_begin =
vk_find_struct_const(begin, RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR);
if (begin && !attach_begin)
More information about the mesa-commit
mailing list