C Specification
The VkImageMemoryBarrier2 structure is defined as:
// Provided by VK_VERSION_1_3
typedef struct VkImageMemoryBarrier2 {
VkStructureType sType;
const void* pNext;
VkPipelineStageFlags2 srcStageMask;
VkAccessFlags2 srcAccessMask;
VkPipelineStageFlags2 dstStageMask;
VkAccessFlags2 dstAccessMask;
VkImageLayout oldLayout;
VkImageLayout newLayout;
uint32_t srcQueueFamilyIndex;
uint32_t dstQueueFamilyIndex;
VkImage image;
VkImageSubresourceRange subresourceRange;
} VkImageMemoryBarrier2;
or the equivalent
// Provided by VK_KHR_synchronization2
typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
Members
-
sTypeis the type of this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
srcStageMaskis a VkPipelineStageFlags2 mask of pipeline stages to be included in the first synchronization scope. -
srcAccessMaskis a VkAccessFlags2 mask of access flags to be included in the first access scope. -
dstStageMaskis a VkPipelineStageFlags2 mask of pipeline stages to be included in the second synchronization scope. -
dstAccessMaskis a VkAccessFlags2 mask of access flags to be included in the second access scope. -
oldLayoutis the old layout in an image layout transition. -
newLayoutis the new layout in an image layout transition. -
srcQueueFamilyIndexis the source queue family for a queue family ownership transfer. -
dstQueueFamilyIndexis the destination queue family for a queue family ownership transfer. -
imageis a handle to the image affected by this barrier. -
subresourceRangedescribes the image subresource range withinimagethat is affected by this barrier.
Description
This structure defines a memory dependency limited to an image subresource range, and can define a queue family transfer operation and image layout transition for that subresource range.
The first synchronization scope and
access scope described by
this structure include only operations and memory accesses specified by
srcStageMask and srcAccessMask.
The second synchronization scope
and access scope described
by this structure include only operations and memory accesses specified by
dstStageMask and dstAccessMask.
Both access scopes are
limited to only memory accesses to image in the subresource range
defined by subresourceRange.
If image was created with VK_SHARING_MODE_EXCLUSIVE, and
srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, this
memory barrier defines a queue family
transfer operation.
When executed on a queue in the family identified by
srcQueueFamilyIndex, this barrier defines a
queue family release operation
for the specified image subresource range, and the second synchronization
and access scopes do not synchronize operations on that queue.
When executed on a queue in the family identified by
dstQueueFamilyIndex, this barrier defines a
queue family acquire operation
for the specified image subresource range, and the first synchronization and
access scopes do not synchronize operations on that queue.
A queue family transfer operation is
also defined if the values are not equal, and either is one of the special
queue family values reserved for external memory ownership transfers, as
described in https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-queue-transfers.
A queue family release
operation is defined when dstQueueFamilyIndex is one of those
values, and a queue family
acquire operation is defined when srcQueueFamilyIndex is one of
those values.
If oldLayout is not equal to newLayout, then the memory barrier
defines an image layout
transition for the specified image subresource range.
If this memory barrier defines a queue
family transfer operation, the layout transition is only executed once
between the queues.
|
Note
When the old and new layout are equal, the layout values are ignored - data is preserved no matter what values are specified, or what layout the image is currently in. |
If image has a multi-planar format and the image is disjoint, then
including VK_IMAGE_ASPECT_COLOR_BIT in the aspectMask member of
subresourceRange is equivalent to including
VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, and
(for three-plane formats only) VK_IMAGE_ASPECT_PLANE_2_BIT.
-
VUID-VkImageMemoryBarrier2-srcStageMask-03929
If thegeometryShaderfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT -
VUID-VkImageMemoryBarrier2-srcStageMask-03930
If thetessellationShaderfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BITorVK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT -
VUID-VkImageMemoryBarrier2-srcStageMask-03931
If theconditionalRenderingfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT -
VUID-VkImageMemoryBarrier2-srcStageMask-03932
If thefragmentDensityMapfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT -
VUID-VkImageMemoryBarrier2-srcStageMask-03933
If thetransformFeedbackfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT -
VUID-VkImageMemoryBarrier2-srcStageMask-03934
If themeshShaderfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV -
VUID-VkImageMemoryBarrier2-srcStageMask-03935
If thetaskShaderfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV -
VUID-VkImageMemoryBarrier2-srcStageMask-04956
If theshadingRateImagefeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV -
VUID-VkImageMemoryBarrier2-srcStageMask-04957
If thesubpassShadingfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-srcStageMask-04995
If theinvocationMaskfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-srcAccessMask-03900
IfsrcAccessMaskincludesVK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03901
IfsrcAccessMaskincludesVK_ACCESS_2_INDEX_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03902
IfsrcAccessMaskincludesVK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03903
IfsrcAccessMaskincludesVK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03904
IfsrcAccessMaskincludesVK_ACCESS_2_UNIFORM_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03905
IfsrcAccessMaskincludesVK_ACCESS_2_SHADER_SAMPLED_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03906
IfsrcAccessMaskincludesVK_ACCESS_2_SHADER_STORAGE_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03907
IfsrcAccessMaskincludesVK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03908
IfsrcAccessMaskincludesVK_ACCESS_2_SHADER_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03909
IfsrcAccessMaskincludesVK_ACCESS_2_SHADER_WRITE_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03910
IfsrcAccessMaskincludesVK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03911
IfsrcAccessMaskincludesVK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03912
IfsrcAccessMaskincludesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03913
IfsrcAccessMaskincludesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03914
IfsrcAccessMaskincludesVK_ACCESS_2_TRANSFER_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT,VK_PIPELINE_STAGE_2_RESOLVE_BIT,VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03915
IfsrcAccessMaskincludesVK_ACCESS_2_TRANSFER_WRITE_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT,VK_PIPELINE_STAGE_2_RESOLVE_BIT,VK_PIPELINE_STAGE_2_CLEAR_BIT,VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03916
IfsrcAccessMaskincludesVK_ACCESS_2_HOST_READ_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_HOST_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03917
IfsrcAccessMaskincludesVK_ACCESS_2_HOST_WRITE_BIT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_HOST_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03918
IfsrcAccessMaskincludesVK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03919
IfsrcAccessMaskincludesVK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03920
IfsrcAccessMaskincludesVK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-04747
IfsrcAccessMaskincludesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03922
IfsrcAccessMaskincludesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03923
IfsrcAccessMaskincludesVK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV,srcStageMaskmust includeVK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-04994
IfsrcAccessMaskincludesVK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,srcStageMaskmust includeVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-srcAccessMask-03924
IfsrcAccessMaskincludesVK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,srcStageMaskmust includeVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVorVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03925
IfsrcAccessMaskincludesVK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,srcStageMaskmust includeVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVorVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03926
IfsrcAccessMaskincludesVK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-03927
IfsrcAccessMaskincludesVK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03928
IfsrcAccessMaskincludesVK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHRorVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-srcAccessMask-06256
If therayQueryfeature is not enabled andsrcAccessMaskincludesVK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,srcStageMaskmust not include any of theVK_PIPELINE_STAGE_*_SHADER_BITstages exceptVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcAccessMask-04858
IfsrcAccessMaskincludesVK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,srcStageMaskmust includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcAccessMask-04859
IfsrcAccessMaskincludesVK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,srcStageMaskmust includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcAccessMask-04860
IfsrcAccessMaskincludesVK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,srcStageMaskmust includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcAccessMask-04861
IfsrcAccessMaskincludesVK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,srcStageMaskmust includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstStageMask-03929
If thegeometryShaderfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT -
VUID-VkImageMemoryBarrier2-dstStageMask-03930
If thetessellationShaderfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BITorVK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT -
VUID-VkImageMemoryBarrier2-dstStageMask-03931
If theconditionalRenderingfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT -
VUID-VkImageMemoryBarrier2-dstStageMask-03932
If thefragmentDensityMapfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT -
VUID-VkImageMemoryBarrier2-dstStageMask-03933
If thetransformFeedbackfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT -
VUID-VkImageMemoryBarrier2-dstStageMask-03934
If themeshShaderfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV -
VUID-VkImageMemoryBarrier2-dstStageMask-03935
If thetaskShaderfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV -
VUID-VkImageMemoryBarrier2-dstStageMask-04956
If theshadingRateImagefeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV -
VUID-VkImageMemoryBarrier2-dstStageMask-04957
If thesubpassShadingfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-dstStageMask-04995
If theinvocationMaskfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-dstAccessMask-03900
IfdstAccessMaskincludesVK_ACCESS_2_INDIRECT_COMMAND_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03901
IfdstAccessMaskincludesVK_ACCESS_2_INDEX_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_INDEX_INPUT_BIT,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03902
IfdstAccessMaskincludesVK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03903
IfdstAccessMaskincludesVK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03904
IfdstAccessMaskincludesVK_ACCESS_2_UNIFORM_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03905
IfdstAccessMaskincludesVK_ACCESS_2_SHADER_SAMPLED_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03906
IfdstAccessMaskincludesVK_ACCESS_2_SHADER_STORAGE_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03907
IfdstAccessMaskincludesVK_ACCESS_2_SHADER_STORAGE_WRITE_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03908
IfdstAccessMaskincludesVK_ACCESS_2_SHADER_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03909
IfdstAccessMaskincludesVK_ACCESS_2_SHADER_WRITE_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03910
IfdstAccessMaskincludesVK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03911
IfdstAccessMaskincludesVK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03912
IfdstAccessMaskincludesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03913
IfdstAccessMaskincludesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03914
IfdstAccessMaskincludesVK_ACCESS_2_TRANSFER_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT,VK_PIPELINE_STAGE_2_RESOLVE_BIT,VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03915
IfdstAccessMaskincludesVK_ACCESS_2_TRANSFER_WRITE_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_COPY_BIT,VK_PIPELINE_STAGE_2_BLIT_BIT,VK_PIPELINE_STAGE_2_RESOLVE_BIT,VK_PIPELINE_STAGE_2_CLEAR_BIT,VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03916
IfdstAccessMaskincludesVK_ACCESS_2_HOST_READ_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_HOST_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03917
IfdstAccessMaskincludesVK_ACCESS_2_HOST_WRITE_BIT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_HOST_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03918
IfdstAccessMaskincludesVK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03919
IfdstAccessMaskincludesVK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03920
IfdstAccessMaskincludesVK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-04747
IfdstAccessMaskincludesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT,VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03922
IfdstAccessMaskincludesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03923
IfdstAccessMaskincludesVK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV,dstStageMaskmust includeVK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-04994
IfdstAccessMaskincludesVK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,dstStageMaskmust includeVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-dstAccessMask-03924
IfdstAccessMaskincludesVK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,dstStageMaskmust includeVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVorVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03925
IfdstAccessMaskincludesVK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,dstStageMaskmust includeVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVorVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03926
IfdstAccessMaskincludesVK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-03927
IfdstAccessMaskincludesVK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03928
IfdstAccessMaskincludesVK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHRorVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT -
VUID-VkImageMemoryBarrier2-dstAccessMask-06256
If therayQueryfeature is not enabled anddstAccessMaskincludesVK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,dstStageMaskmust not include any of theVK_PIPELINE_STAGE_*_SHADER_BITstages exceptVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR -
VUID-VkImageMemoryBarrier2-dstAccessMask-04858
IfdstAccessMaskincludesVK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR,dstStageMaskmust includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR -
VUID-VkImageMemoryBarrier2-dstAccessMask-04859
IfdstAccessMaskincludesVK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,dstStageMaskmust includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR -
VUID-VkImageMemoryBarrier2-dstAccessMask-04860
IfdstAccessMaskincludesVK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,dstStageMaskmust includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR -
VUID-VkImageMemoryBarrier2-dstAccessMask-04861
IfdstAccessMaskincludesVK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,dstStageMaskmust includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-subresourceRange-01486
subresourceRange.baseMipLevelmust be less than themipLevelsspecified in VkImageCreateInfo whenimagewas created -
VUID-VkImageMemoryBarrier2-subresourceRange-01724
IfsubresourceRange.levelCountis notVK_REMAINING_MIP_LEVELS,subresourceRange.baseMipLevel+subresourceRange.levelCountmust be less than or equal to themipLevelsspecified in VkImageCreateInfo whenimagewas created -
VUID-VkImageMemoryBarrier2-subresourceRange-01488
subresourceRange.baseArrayLayermust be less than thearrayLayersspecified in VkImageCreateInfo whenimagewas created -
VUID-VkImageMemoryBarrier2-subresourceRange-01725
IfsubresourceRange.layerCountis notVK_REMAINING_ARRAY_LAYERS,subresourceRange.baseArrayLayer+subresourceRange.layerCountmust be less than or equal to thearrayLayersspecified in VkImageCreateInfo whenimagewas created -
VUID-VkImageMemoryBarrier2-image-01932
Ifimageis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject -
VUID-VkImageMemoryBarrier2-oldLayout-01208
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-oldLayout-01209
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-oldLayout-01210
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-oldLayout-01211
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_SAMPLED_BITorVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-oldLayout-01212
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_TRANSFER_SRC_BIT -
VUID-VkImageMemoryBarrier2-oldLayout-01213
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_TRANSFER_DST_BIT -
VUID-VkImageMemoryBarrier2-oldLayout-01197
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition,oldLayoutmust beVK_IMAGE_LAYOUT_UNDEFINEDor the current layout of the image subresources affected by the barrier -
VUID-VkImageMemoryBarrier2-newLayout-01198
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition,newLayoutmust not beVK_IMAGE_LAYOUT_UNDEFINEDorVK_IMAGE_LAYOUT_PREINITIALIZED -
VUID-VkImageMemoryBarrier2-oldLayout-01658
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-oldLayout-01659
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMALthenimagemust have been created with at least one ofVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,VK_IMAGE_USAGE_SAMPLED_BIT, orVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04066
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created with at least one ofVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,VK_IMAGE_USAGE_SAMPLED_BIT, orVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04068
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset -
VUID-VkImageMemoryBarrier2-synchronization2-06911
If thesynchronization2feature is not enabled,layoutmust not beVK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHRorVK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,imagemust have been created withVK_IMAGE_USAGE_COLOR_ATTACHMENT_BITorVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,imagemust have been created with at least one ofVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,VK_IMAGE_USAGE_SAMPLED_BIT, orVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-oldLayout-02088
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHRthenimagemust have been created withVK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRset -
VUID-VkImageMemoryBarrier2-image-01671
Ifimagehas a single-plane color format or is not disjoint, then theaspectMaskmember ofsubresourceRangemust beVK_IMAGE_ASPECT_COLOR_BIT -
VUID-VkImageMemoryBarrier2-image-01672
Ifimagehas a multi-planar format and the image is disjoint, then theaspectMaskmember ofsubresourceRangemust include either at least one ofVK_IMAGE_ASPECT_PLANE_0_BIT,VK_IMAGE_ASPECT_PLANE_1_BIT, andVK_IMAGE_ASPECT_PLANE_2_BIT; or must includeVK_IMAGE_ASPECT_COLOR_BIT -
VUID-VkImageMemoryBarrier2-image-01673
Ifimagehas a multi-planar format with only two planes, then theaspectMaskmember ofsubresourceRangemust not includeVK_IMAGE_ASPECT_PLANE_2_BIT -
VUID-VkImageMemoryBarrier2-image-03319
Ifimagehas a depth/stencil format with both depth and stencil and theseparateDepthStencilLayoutsfeature is enabled, then theaspectMaskmember ofsubresourceRangemust include either or bothVK_IMAGE_ASPECT_DEPTH_BITandVK_IMAGE_ASPECT_STENCIL_BIT -
VUID-VkImageMemoryBarrier2-image-03320
Ifimagehas a depth/stencil format with both depth and stencil and theseparateDepthStencilLayoutsfeature is not enabled, then theaspectMaskmember ofsubresourceRangemust include bothVK_IMAGE_ASPECT_DEPTH_BITandVK_IMAGE_ASPECT_STENCIL_BIT -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070
IfsrcQueueFamilyIndexis not equal todstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in [synchronization-queue-transfers] -
VUID-VkImageMemoryBarrier2-image-04071
Ifimagewas created with a sharing mode ofVK_SHARING_MODE_CONCURRENT,srcQueueFamilyIndexanddstQueueFamilyIndexare not equal, and one ofsrcQueueFamilyIndexanddstQueueFamilyIndexis one of the special queue family values reserved for external memory transfers, the other must beVK_QUEUE_FAMILY_IGNORED -
VUID-VkImageMemoryBarrier2-image-04072
Ifimagewas created with a sharing mode ofVK_SHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare not equal,srcQueueFamilyIndexanddstQueueFamilyIndexmust both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in [synchronization-queue-transfers] -
VUID-VkImageMemoryBarrier2-srcStageMask-03854
If eithersrcStageMaskordstStageMaskincludesVK_PIPELINE_STAGE_2_HOST_BIT,srcQueueFamilyIndexanddstQueueFamilyIndexmust be equal -
VUID-VkImageMemoryBarrier2-srcStageMask-03855
IfsrcStageMaskincludesVK_PIPELINE_STAGE_2_HOST_BIT, andsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition,oldLayoutmust be one ofVK_IMAGE_LAYOUT_PREINITIALIZED,VK_IMAGE_LAYOUT_UNDEFINED, orVK_IMAGE_LAYOUT_GENERAL
-
VUID-VkImageMemoryBarrier2-sType-sType
sTypemust beVK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 -
VUID-VkImageMemoryBarrier2-pNext-pNext
pNextmust beNULLor a pointer to a valid instance of VkSampleLocationsInfoEXT -
VUID-VkImageMemoryBarrier2-sType-unique
ThesTypevalue of each struct in thepNextchain must be unique -
VUID-VkImageMemoryBarrier2-srcStageMask-parameter
srcStageMaskmust be a valid combination of VkPipelineStageFlagBits2 values -
VUID-VkImageMemoryBarrier2-srcAccessMask-parameter
srcAccessMaskmust be a valid combination of VkAccessFlagBits2 values -
VUID-VkImageMemoryBarrier2-dstStageMask-parameter
dstStageMaskmust be a valid combination of VkPipelineStageFlagBits2 values -
VUID-VkImageMemoryBarrier2-dstAccessMask-parameter
dstAccessMaskmust be a valid combination of VkAccessFlagBits2 values -
VUID-VkImageMemoryBarrier2-oldLayout-parameter
oldLayoutmust be a valid VkImageLayout value -
VUID-VkImageMemoryBarrier2-newLayout-parameter
newLayoutmust be a valid VkImageLayout value -
VUID-VkImageMemoryBarrier2-image-parameter
imagemust be a valid VkImage handle -
VUID-VkImageMemoryBarrier2-subresourceRange-parameter
subresourceRangemust be a valid VkImageSubresourceRange structure
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.