/* * Copyright 2019 Google LLC * SPDX-License-Identifier: MIT * * based in part on anv and radv which are: * Copyright © 2015 Intel Corporation * Copyright © 2016 Red Hat. * Copyright © 2016 Bas Nieuwenhuizen */ #ifndef VN_RENDER_PASS_H #define VN_RENDER_PASS_H #include "vn_common.h" struct vn_present_src_attachment { uint32_t index; VkPipelineStageFlags src_stage_mask; VkAccessFlags src_access_mask; VkPipelineStageFlags dst_stage_mask; VkAccessFlags dst_access_mask; }; struct vn_subpass { bool has_color_attachment; bool has_depth_stencil_attachment; }; struct vn_render_pass { struct vn_object_base base; VkExtent2D granularity; uint32_t present_count; uint32_t present_acquire_count; uint32_t present_release_count; uint32_t subpass_count; /* Attachments where initialLayout or finalLayout was * VK_IMAGE_LAYOUT_PRESENT_SRC_KHR. */ struct vn_present_src_attachment *present_attachments; /* Slice of present_attachments where initialLayout was * VK_IMAGE_LAYOUT_PRESENT_SRC_KHR. */ struct vn_present_src_attachment *present_acquire_attachments; /* Slice of present_attachments where finalLayout was * VK_IMAGE_LAYOUT_PRESENT_SRC_KHR. */ struct vn_present_src_attachment *present_release_attachments; struct vn_subpass *subpasses; }; VK_DEFINE_NONDISP_HANDLE_CASTS(vn_render_pass, base.base, VkRenderPass, VK_OBJECT_TYPE_RENDER_PASS) struct vn_framebuffer { struct vn_object_base base; uint32_t image_view_count; VkImageView image_views[]; }; VK_DEFINE_NONDISP_HANDLE_CASTS(vn_framebuffer, base.base, VkFramebuffer, VK_OBJECT_TYPE_FRAMEBUFFER) #endif /* VN_RENDER_PASS_H */