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 a VkStructureType value identifying 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://registry.khronos.org/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_EXT -
VUID-VkImageMemoryBarrier2-srcStageMask-03935
If thetaskShaderfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT -
VUID-VkImageMemoryBarrier2-srcStageMask-07316
If neither theshadingRateImageorattachmentFragmentShadingRateare enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcStageMask-04957
If thesubpassShadingfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-srcStageMask-04995
If theinvocationMaskfeature is not enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-srcStageMask-07946
If neither the VK_NV_ray_tracing extension orrayTracingPipelinefeature are enabled,srcStageMaskmust not containVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
-
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_SHADER_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-07454
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,VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, 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,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_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_ACCELERATION_STRUCTURE_COPY_BIT_KHR,VK_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_ACCELERATION_STRUCTURE_COPY_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_COPY_BIT_KHR,VK_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-07272
IfsrcAccessMaskincludesVK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_COMMANDS_BITorVK_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-srcAccessMask-07455
IfsrcAccessMaskincludesVK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,srcStageMaskmust includeVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV -
VUID-VkImageMemoryBarrier2-srcAccessMask-07456
IfsrcAccessMaskincludesVK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV,srcStageMaskmust includeVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV -
VUID-VkImageMemoryBarrier2-srcAccessMask-07457
IfsrcAccessMaskincludesVK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT -
VUID-VkImageMemoryBarrier2-srcAccessMask-07458
IfsrcAccessMaskincludesVK_ACCESS_2_MICROMAP_READ_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXTorVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcAccessMask-08118
IfsrcAccessMaskincludesVK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT,srcStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one ofVK_PIPELINE_STAGE_*_SHADER_BITstages
-
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_EXT -
VUID-VkImageMemoryBarrier2-dstStageMask-03935
If thetaskShaderfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT -
VUID-VkImageMemoryBarrier2-dstStageMask-07316
If neither theshadingRateImageorattachmentFragmentShadingRateare enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR -
VUID-VkImageMemoryBarrier2-dstStageMask-04957
If thesubpassShadingfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-dstStageMask-04995
If theinvocationMaskfeature is not enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI -
VUID-VkImageMemoryBarrier2-dstStageMask-07946
If neither the VK_NV_ray_tracing extension orrayTracingPipelinefeature are enabled,dstStageMaskmust not containVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
-
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_SHADER_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-07454
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,VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT, 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,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_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_ACCELERATION_STRUCTURE_COPY_BIT_KHR,VK_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_ACCELERATION_STRUCTURE_COPY_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_COPY_BIT_KHR,VK_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-07272
IfdstAccessMaskincludesVK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_COMMANDS_BITorVK_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-dstAccessMask-07455
IfdstAccessMaskincludesVK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV,dstStageMaskmust includeVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV -
VUID-VkImageMemoryBarrier2-dstAccessMask-07456
IfdstAccessMaskincludesVK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV,dstStageMaskmust includeVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV -
VUID-VkImageMemoryBarrier2-dstAccessMask-07457
IfdstAccessMaskincludesVK_ACCESS_2_MICROMAP_WRITE_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT -
VUID-VkImageMemoryBarrier2-dstAccessMask-07458
IfdstAccessMaskincludesVK_ACCESS_2_MICROMAP_READ_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXTorVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR -
VUID-VkImageMemoryBarrier2-dstAccessMask-08118
IfdstAccessMaskincludesVK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT,dstStageMaskmust includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one ofVK_PIPELINE_STAGE_*_SHADER_BITstages
-
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-07793
If thesynchronization2feature is not enabled,oldLayoutmust not beVK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHRorVK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR -
VUID-VkImageMemoryBarrier2-synchronization2-07794
If thesynchronization2feature is not enabled,newLayoutmust 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-09117
Ifimagewas created with a sharing mode ofVK_SHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare not equal,srcQueueFamilyIndexmust beVK_QUEUE_FAMILY_EXTERNAL,VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family -
VUID-VkImageMemoryBarrier2-image-09118
Ifimagewas created with a sharing mode ofVK_SHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare not equal,dstQueueFamilyIndexmust beVK_QUEUE_FAMILY_EXTERNAL,VK_QUEUE_FAMILY_FOREIGN_EXT, or a valid queue family -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070
IfsrcQueueFamilyIndexis not equal todstQueueFamilyIndex, at least one ofsrcQueueFamilyIndexordstQueueFamilyIndexmust not beVK_QUEUE_FAMILY_EXTERNALorVK_QUEUE_FAMILY_FOREIGN_EXT -
VUID-VkImageMemoryBarrier2-None-09119
If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersionused to create the VkInstance is not greater than or equal to Version 1.1,srcQueueFamilyIndexmust not beVK_QUEUE_FAMILY_EXTERNAL -
VUID-VkImageMemoryBarrier2-None-09120
If the VK_KHR_external_memory extension is not enabled, and the value of VkApplicationInfo::apiVersionused to create the VkInstance is not greater than or equal to Version 1.1,dstQueueFamilyIndexmust not beVK_QUEUE_FAMILY_EXTERNAL -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09121
If the VK_EXT_queue_family_foreign extension is not enabledsrcQueueFamilyIndexmust not beVK_QUEUE_FAMILY_FOREIGN_EXT -
VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122
If the VK_EXT_queue_family_foreign extension is not enableddstQueueFamilyIndexmust not beVK_QUEUE_FAMILY_FOREIGN_EXT -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07120
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHRthenimagemust have been created withVK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07121
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHRthenimagemust have been created withVK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07122
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHRthenimagemust have been created withVK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07123
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHRthenimagemust have been created withVK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07124
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHRthenimagemust have been created withVK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07125
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHRthenimagemust have been created withVK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXTthenimagemust have been created with either theVK_IMAGE_USAGE_COLOR_ATTACHMENT_BITorVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITusage bits, and theVK_IMAGE_USAGE_INPUT_ATTACHMENT_BITorVK_IMAGE_USAGE_SAMPLED_BITusage bits, and theVK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTusage bit -
VUID-VkImageMemoryBarrier2-attachmentFeedbackLoopLayout-07313
If theattachmentFeedbackLoopLayoutfeature is not enabled,newLayoutmust not beVK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09550
IfsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisVK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHRthenimagemust have been created with eitherVK_IMAGE_USAGE_STORAGE_BIT, or with bothVK_IMAGE_USAGE_INPUT_ATTACHMENT_BITand either ofVK_IMAGE_USAGE_COLOR_ATTACHMENT_BITorVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT -
VUID-VkImageMemoryBarrier2-dynamicRenderingLocalRead-09551
If thedynamicRenderingLocalReadfeature is not enabled,oldLayoutmust not beVK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR -
VUID-VkImageMemoryBarrier2-dynamicRenderingLocalRead-09552
If thedynamicRenderingLocalReadfeature is not enabled,newLayoutmust not beVK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_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-image-09241
Ifimagehas a color format that is single-plane, then theaspectMaskmember ofsubresourceRangemust beVK_IMAGE_ASPECT_COLOR_BIT -
VUID-VkImageMemoryBarrier2-image-09242
Ifimagehas a color format and 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 at least one multi-planar aspect mask bit orVK_IMAGE_ASPECT_COLOR_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-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-aspectMask-08702
If theaspectMaskmember ofsubresourceRangeincludesVK_IMAGE_ASPECT_DEPTH_BIT,oldLayoutandnewLayoutmust not be one ofVK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMALorVK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL -
VUID-VkImageMemoryBarrier2-aspectMask-08703
If theaspectMaskmember ofsubresourceRangeincludesVK_IMAGE_ASPECT_STENCIL_BIT,oldLayoutandnewLayoutmust not be one ofVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMALorVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL -
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
EachpNextmember of any structure (including this one) in thepNextchain must be eitherNULLor a pointer to a valid instance of VkExternalMemoryAcquireUnmodifiedEXT or 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.