VkRenderPassFragmentDensityMapOffsetEndInfoEXT
If the VkSubpassEndInfo::pNext chain
or VkRenderingEndInfoEXT::pNext chain
includes a VkRenderPassFragmentDensityMapOffsetEndInfoEXT structure,
then that structure includes an array of fragment density map offsets per
layer for the render pass.
The VkRenderPassFragmentDensityMapOffsetEndInfoEXT structure is
defined as:
typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT {
VkStructureType sType;
const void* pNext;
uint32_t fragmentDensityOffsetCount;
const VkOffset2D* pFragmentDensityOffsets;
} VkRenderPassFragmentDensityMapOffsetEndInfoEXT;
pub struct RenderPassFragmentDensityMapOffsetEndInfoEXT {
s_type: vk::StructureType,
p_next: *const c_void,
fragment_density_offset_count: u32,
p_fragment_density_offsets: *const vk::Offset2D,
}
typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
type SubpassFragmentDensityMapOffsetEndInfoQCOM = vk::RenderPassFragmentDensityMapOffsetEndInfoEXT;
sTypeis a VkStructureType value identifying this structure.pNextisNULLor a pointer to a structure extending this structure.fragmentDensityOffsetCountis the number of offsets being specified.pFragmentDensityOffsetsis a pointer to an array of VkOffset2D structs, each of which describes the offset per layer.
The array elements are given per layer as defined by
Fetch Density Value, where
index = layer.
Each (x,y) offset is in framebuffer pixels and shifts the fetch of the
fragment density map by that amount.
Offsets can be positive or negative.
If neither the VkSubpassEndInfo::pNext chain for the last
subpass of a render pass nor the VkRenderingEndInfoEXT::pNext
chain of a dynamic render pass include
VkRenderPassFragmentDensityMapOffsetEndInfoEXT, or if
fragmentDensityOffsetCount is zero, then the offset (0,0) is
used for Fetch Density Value.
Valid Usage
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-fragmentDensityMapOffsets-06503
If the fragmentDensityMapOffset feature is not enabled or fragment
density map is not enabled in the render pass,
fragmentDensityOffsetCount must equal 0
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-fragmentDensityMapAttachment-06504
If
VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment
is not VK_ATTACHMENT_UNUSED and was not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCount must equal 0
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-pDepthStencilAttachment-06505
If the depth or stencil attachments for the render pass are used and
were not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCount must equal 0
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-pInputAttachments-06506
If any used input attachments for the render pass were not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCount must equal 0
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-pColorAttachments-06507
If any used color attachments for the render pass were not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCount must equal 0
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-pResolveAttachments-06508
If any used resolve attachments for the render pass were not created
with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCount must equal 0
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-pPreserveAttachments-06509
If any used preserve attachments for the render pass were not created
with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCount must equal 0
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-fragmentDensityOffsetCount-06510
If fragmentDensityOffsetCount is not 0 and multiview is enabled
for the render pass, fragmentDensityOffsetCount must equal the
layerCount that was specified in creating the fragment density map
attachment view
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-fragmentDensityOffsetCount-06511
If fragmentDensityOffsetCount is not 0 and multiview is not
enabled for the render pass, fragmentDensityOffsetCount must
equal 1
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-x-06512
The x component of each element of pFragmentDensityOffsetsmust be an integer multiple of
fragmentDensityOffsetGranularity.width
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-y-06513
The y component of each element of pFragmentDensityOffsetsmust be an integer multiple of
fragmentDensityOffsetGranularity.height
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-pFragmentDensityOffsets-10730
Each element of pFragmentDensityOffsets must be identical for
every vkCmdEndRendering2KHR call made in a render pass
Valid Usage (Implicit)
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-sType-sType
sType must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT
VUID-VkRenderPassFragmentDensityMapOffsetEndInfoEXT-pFragmentDensityOffsets-parameter
If fragmentDensityOffsetCount is not 0, pFragmentDensityOffsets must be a valid pointer to an array of fragmentDensityOffsetCount VkOffset2D structures