--- src/intel/vulkan/anv_pass.c | 19 +++++++++++++++++++ src/intel/vulkan/anv_private.h | 2 ++ 2 files changed, 21 insertions(+)
diff --git a/src/intel/vulkan/anv_pass.c b/src/intel/vulkan/anv_pass.c index 4a1a340..42321db 100644 --- a/src/intel/vulkan/anv_pass.c +++ b/src/intel/vulkan/anv_pass.c @@ -23,6 +23,8 @@ #include "anv_private.h" +#include "util/vk_util.h" + VkResult anv_CreateRenderPass( VkDevice _device, const VkRenderPassCreateInfo* pCreateInfo, @@ -111,6 +113,7 @@ VkResult anv_CreateRenderPass( subpass->input_count = desc->inputAttachmentCount; subpass->color_count = desc->colorAttachmentCount; subpass->attachments = p; + subpass->view_mask = 0; if (desc->inputAttachmentCount > 0) { subpass->input_attachments = p; @@ -186,6 +189,22 @@ VkResult anv_CreateRenderPass( } } + vk_foreach_struct(ext, pCreateInfo->pNext) { + switch (ext->sType) { + case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX: { + VkRenderPassMultiviewCreateInfoKHX *mv = (void *)ext; + + for (uint32_t i = 0; i < mv->subpassCount; i++) { + pass->subpasses[i].view_mask = mv->pViewMasks[i]; + } + break; + } + + default: + anv_debug_ignored_stype(ext->sType); + } + } + *pRenderPass = anv_render_pass_to_handle(pass); return VK_SUCCESS; diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index fd82ce9..d578c69 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1970,6 +1970,8 @@ struct anv_subpass { VkAttachmentReference depth_stencil_attachment; + uint32_t view_mask; + /** Subpass has a depth/stencil self-dependency */ bool has_ds_self_dep; -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev