VkSubpassFragmentDensityMapOffsetEndInfoQCOM
If the VkSubpassEndInfo::pNext
chain includes a
VkSubpassFragmentDensityMapOffsetEndInfoQCOM
structure, then that
structure includes an array of fragment density map offsets per layer for
the render pass.
The VkSubpassFragmentDensityMapOffsetEndInfoQCOM
structure is defined
as:
typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
VkStructureType sType;
const void* pNext;
uint32_t fragmentDensityOffsetCount;
const VkOffset2D* pFragmentDensityOffsets;
} VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.fragmentDensityOffsetCount
is the number of offsets being specified.pFragmentDensityOffsets
is 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.
Offset values specified for any subpass that is not the last subpass in the
render pass are ignored.
If the VkSubpassEndInfo::pNext
chain for the last subpass of a
render pass does not include
VkSubpassFragmentDensityMapOffsetEndInfoQCOM
, or if
fragmentDensityOffsetCount
is zero, then the offset (0,0) is
used for Fetch Density Value.
Valid Usage
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-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-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504
If VkSubpassDescription
::fragmentDensityMapAttachment
is not
is not VK_ATTACHMENT_UNUSED
and was not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
,
fragmentDensityOffsetCount
must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pDepthStencilAttachment-06505
If VkSubpassDescription
::pDepthStencilAttachment
is not is
not VK_ATTACHMENT_UNUSED
and was not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
,
fragmentDensityOffsetCount
must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506
If any element of VkSubpassDescription
::pInputAttachments
is
not is not VK_ATTACHMENT_UNUSED
and was not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
,
fragmentDensityOffsetCount
must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507
If any element of VkSubpassDescription
::pColorAttachments
is
not is not VK_ATTACHMENT_UNUSED
and was not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
,
fragmentDensityOffsetCount
must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pResolveAttachments-06508
If any element of VkSubpassDescription
::pResolveAttachments
is not is not VK_ATTACHMENT_UNUSED
and was not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
,
fragmentDensityOffsetCount
must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pPreserveAttachments-06509
If any element of VkSubpassDescription
::pPreserveAttachments
is not is not VK_ATTACHMENT_UNUSED
and was not created with
VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
,
fragmentDensityOffsetCount
must equal 0
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-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-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06511
If fragmentDensityOffsetCount
is not 0
and multiview is not
enabled for the render pass, fragmentDensityOffsetCount
must
equal 1
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512
The x
component of each element of pFragmentDensityOffsets
must be an integer multiple of
fragmentDensityOffsetGranularity.width
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513
The y
component of each element of pFragmentDensityOffsets
must be an integer multiple of
fragmentDensityOffsetGranularity.height
Valid Usage (Implicit)
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-sType-sType
sType
must be VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pFragmentDensityOffsets-parameter
If fragmentDensityOffsetCount
is not 0
, pFragmentDensityOffsets
must be a valid pointer to an array of fragmentDensityOffsetCount
VkOffset2D structures