VkRenderPassFragmentDensityMapCreateInfoEXT
If the VkRenderPassCreateInfo::pNext chain includes a
VkRenderPassFragmentDensityMapCreateInfoEXT structure, then that
structure includes a fragment density map attachment for the render pass.
The VkRenderPassFragmentDensityMapCreateInfoEXT structure is defined
as:
typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
VkStructureType sType;
const void* pNext;
VkAttachmentReference fragmentDensityMapAttachment;
} VkRenderPassFragmentDensityMapCreateInfoEXT;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.fragmentDensityMapAttachmentis the fragment density map to use for the render pass.
The fragment density map is read at an implementation-dependent time with
the following constraints determined by the attachment’s image view
flags:
VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXTspecifies that the fragment density map will be read by the device duringVK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXTVK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXTspecifies that the fragment density map will be read by the host during vkEndCommandBuffer of the primary command buffer that the render pass is recorded into- Otherwise the fragment density map will be read by the host during vkCmdBeginRenderPass
The fragment density map may additionally be read by the device during
VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT for any mode.
If this structure is not present, it is as if
fragmentDensityMapAttachment was given as VK_ATTACHMENT_UNUSED.
Valid Usage
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548
If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED,
fragmentDensityMapAttachment must not be an element of
VkSubpassDescription::pInputAttachments,
VkSubpassDescription::pColorAttachments,
VkSubpassDescription::pResolveAttachments,
VkSubpassDescription::pDepthStencilAttachment, or
VkSubpassDescription::pPreserveAttachments for any subpass
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02549
If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED,
layout must be equal to
VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, or
VK_IMAGE_LAYOUT_GENERAL
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02550
If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED,
fragmentDensityMapAttachment must reference an attachment with a
loadOp equal to VK_ATTACHMENT_LOAD_OP_LOAD or
VK_ATTACHMENT_LOAD_OP_DONT_CARE
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551
If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED,
fragmentDensityMapAttachment must reference an attachment with a
storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE
Valid Usage (Implicit)
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT
VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-parameter
fragmentDensityMapAttachment must be a valid VkAttachmentReference structure