VkRenderPassSampleLocationsBeginInfoEXT
The image layout of the depth aspect of a depth/stencil attachment referring
to an image created with
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
is dependent
on the last sample locations used to render to the image subresource, thus
preserving the contents of such depth/stencil attachments across subpass
boundaries requires the application to specify these sample locations
whenever a layout transition of the attachment may occur.
This information can be provided by adding a
VkRenderPassSampleLocationsBeginInfoEXT
structure to the pNext
chain of VkRenderPassBeginInfo
.
The VkRenderPassSampleLocationsBeginInfoEXT
structure is defined as:
typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
VkStructureType sType;
const void* pNext;
uint32_t attachmentInitialSampleLocationsCount;
const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
uint32_t postSubpassSampleLocationsCount;
const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
} VkRenderPassSampleLocationsBeginInfoEXT;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.attachmentInitialSampleLocationsCount
is the number of elements in thepAttachmentInitialSampleLocations
array.pAttachmentInitialSampleLocations
is a pointer to an array ofattachmentInitialSampleLocationsCount
VkAttachmentSampleLocationsEXT structures specifying the attachment indices and their corresponding sample location state. Each element ofpAttachmentInitialSampleLocations
can specify the sample location state to use in the automatic layout transition performed to transition a depth/stencil attachment from the initial layout of the attachment to the image layout specified for the attachment in the first subpass using it.postSubpassSampleLocationsCount
is the number of elements in thepPostSubpassSampleLocations
array.pPostSubpassSampleLocations
is a pointer to an array ofpostSubpassSampleLocationsCount
VkSubpassSampleLocationsEXT structures specifying the subpass indices and their corresponding sample location state. Each element ofpPostSubpassSampleLocations
can specify the sample location state to use in the automatic layout transition performed to transition the depth/stencil attachment used by the specified subpass to the image layout specified in a dependent subpass or to the final layout of the attachment in case the specified subpass is the last subpass using that attachment. In addition, if VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations
isVK_FALSE
, each element ofpPostSubpassSampleLocations
must specify the sample location state that matches the sample locations used by all pipelines that will be bound to a command buffer during the specified subpass. IfvariableSampleLocations
isVK_TRUE
, the sample locations used for rasterization do not depend onpPostSubpassSampleLocations
.
Valid Usage (Implicit)
VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sType
sType
must be VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT
VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameter
If attachmentInitialSampleLocationsCount
is not 0
, pAttachmentInitialSampleLocations
must be a valid pointer to an array of attachmentInitialSampleLocationsCount
valid VkAttachmentSampleLocationsEXT structures
VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameter
If postSubpassSampleLocationsCount
is not 0
, pPostSubpassSampleLocations
must be a valid pointer to an array of postSubpassSampleLocationsCount
valid VkSubpassSampleLocationsEXT structures