From 89f3d116a8a2f8cbb50616ed58823aa582889bef Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Mon, 24 Feb 2020 15:51:41 -0600 Subject: [PATCH] anv: Plumb the device into *bits_for_access_flags Reviewed-by: Kenneth Graunke Part-of: --- src/intel/vulkan/anv_pass.c | 19 +++++++++++-------- src/intel/vulkan/anv_private.h | 6 ++++-- src/intel/vulkan/genX_cmd_buffer.c | 4 ++-- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/intel/vulkan/anv_pass.c b/src/intel/vulkan/anv_pass.c index 49ad6043573..af23b87969d 100644 --- a/src/intel/vulkan/anv_pass.c +++ b/src/intel/vulkan/anv_pass.c @@ -26,25 +26,26 @@ #include "vk_util.h" static void -anv_render_pass_add_subpass_dep(struct anv_render_pass *pass, +anv_render_pass_add_subpass_dep(struct anv_device *device, + struct anv_render_pass *pass, const VkSubpassDependency2KHR *dep) { if (dep->dstSubpass == VK_SUBPASS_EXTERNAL) { pass->subpass_flushes[pass->subpass_count] |= - anv_pipe_invalidate_bits_for_access_flags(dep->dstAccessMask); + anv_pipe_invalidate_bits_for_access_flags(device, dep->dstAccessMask); } else { assert(dep->dstSubpass < pass->subpass_count); pass->subpass_flushes[dep->dstSubpass] |= - anv_pipe_invalidate_bits_for_access_flags(dep->dstAccessMask); + anv_pipe_invalidate_bits_for_access_flags(device, dep->dstAccessMask); } if (dep->srcSubpass == VK_SUBPASS_EXTERNAL) { pass->subpass_flushes[0] |= - anv_pipe_flush_bits_for_access_flags(dep->srcAccessMask); + anv_pipe_flush_bits_for_access_flags(device, dep->srcAccessMask); } else { assert(dep->srcSubpass < pass->subpass_count); pass->subpass_flushes[dep->srcSubpass + 1] |= - anv_pipe_flush_bits_for_access_flags(dep->srcAccessMask); + anv_pipe_flush_bits_for_access_flags(device, dep->srcAccessMask); } } @@ -361,7 +362,7 @@ VkResult anv_CreateRenderPass( .dstAccessMask = pCreateInfo->pDependencies[i].dstAccessMask, .dependencyFlags = pCreateInfo->pDependencies[i].dependencyFlags, }; - anv_render_pass_add_subpass_dep(pass, &dep2); + anv_render_pass_add_subpass_dep(device, pass, &dep2); } vk_foreach_struct(ext, pCreateInfo->pNext) { @@ -568,8 +569,10 @@ VkResult anv_CreateRenderPass2( } } - for (uint32_t i = 0; i < pCreateInfo->dependencyCount; i++) - anv_render_pass_add_subpass_dep(pass, &pCreateInfo->pDependencies[i]); + for (uint32_t i = 0; i < pCreateInfo->dependencyCount; i++) { + anv_render_pass_add_subpass_dep(device, pass, + &pCreateInfo->pDependencies[i]); + } vk_foreach_struct(ext, pCreateInfo->pNext) { switch (ext->sType) { diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 76477f863e2..b045918b8c9 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -2506,7 +2506,8 @@ enum anv_pipe_bits { ANV_PIPE_AUX_TABLE_INVALIDATE_BIT) static inline enum anv_pipe_bits -anv_pipe_flush_bits_for_access_flags(VkAccessFlags flags) +anv_pipe_flush_bits_for_access_flags(struct anv_device *device, + VkAccessFlags flags) { enum anv_pipe_bits pipe_bits = 0; @@ -2566,7 +2567,8 @@ anv_pipe_flush_bits_for_access_flags(VkAccessFlags flags) } static inline enum anv_pipe_bits -anv_pipe_invalidate_bits_for_access_flags(VkAccessFlags flags) +anv_pipe_invalidate_bits_for_access_flags(struct anv_device *device, + VkAccessFlags flags) { enum anv_pipe_bits pipe_bits = 0; diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index c2ce1ca6a39..dbad350d035 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -2365,8 +2365,8 @@ void genX(CmdPipelineBarrier)( } cmd_buffer->state.pending_pipe_bits |= - anv_pipe_flush_bits_for_access_flags(src_flags) | - anv_pipe_invalidate_bits_for_access_flags(dst_flags); + anv_pipe_flush_bits_for_access_flags(cmd_buffer->device, src_flags) | + anv_pipe_invalidate_bits_for_access_flags(cmd_buffer->device, dst_flags); } static void