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
-
sType
is the type of this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
srcStageMask
is a VkPipelineStageFlags2 mask of pipeline stages to be included in the first synchronization scope. -
srcAccessMask
is a VkAccessFlags2 mask of access flags to be included in the first access scope. -
dstStageMask
is a VkPipelineStageFlags2 mask of pipeline stages to be included in the second synchronization scope. -
dstAccessMask
is a VkAccessFlags2 mask of access flags to be included in the second access scope. -
oldLayout
is the old layout in an image layout transition. -
newLayout
is the new layout in an image layout transition. -
srcQueueFamilyIndex
is the source queue family for a queue family ownership transfer. -
dstQueueFamilyIndex
is the destination queue family for a queue family ownership transfer. -
image
is a handle to the image affected by this barrier. -
subresourceRange
describes the image subresource range withinimage
that 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 thegeometryShader
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
-
VUID-VkImageMemoryBarrier2-srcStageMask-03930
If thetessellationShader
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT
orVK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
-
VUID-VkImageMemoryBarrier2-srcStageMask-03931
If theconditionalRendering
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
-
VUID-VkImageMemoryBarrier2-srcStageMask-03932
If thefragmentDensityMap
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
-
VUID-VkImageMemoryBarrier2-srcStageMask-03933
If thetransformFeedback
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
-
VUID-VkImageMemoryBarrier2-srcStageMask-03934
If themeshShader
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
-
VUID-VkImageMemoryBarrier2-srcStageMask-03935
If thetaskShader
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
-
VUID-VkImageMemoryBarrier2-srcStageMask-07316
If neither theshadingRateImage
orattachmentFragmentShadingRate
are enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcStageMask-04957
If thesubpassShading
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2-srcStageMask-04995
If theinvocationMask
feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2-srcStageMask-07946
If neither the VK_NV_ray_tracing extension orrayTracingPipeline
feature are enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03900
IfsrcAccessMask
includesVK_ACCESS_2_INDIRECT_COMMAND_READ_BIT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_INDEX_READ_BIT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_UNIFORM_READ_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03905
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_SAMPLED_READ_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03906
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_STORAGE_READ_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03907
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_STORAGE_WRITE_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-srcAccessMask-07454
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_READ_BIT
,srcStageMask
must 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_BIT
stages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03909
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_WRITE_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03910
IfsrcAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03911
IfsrcAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03912
IfsrcAccessMask
includesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_TRANSFER_READ_BIT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_TRANSFER_WRITE_BIT
,srcStageMask
must 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
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03916
IfsrcAccessMask
includesVK_ACCESS_2_HOST_READ_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_HOST_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03917
IfsrcAccessMask
includesVK_ACCESS_2_HOST_WRITE_BIT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_HOST_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03918
IfsrcAccessMask
includesVK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
,srcStageMask
must 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
IfsrcAccessMask
includesVK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI
,srcStageMask
must includeVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03924
IfsrcAccessMask
includesVK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV
orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03925
IfsrcAccessMask
includesVK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV
orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03926
IfsrcAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-03927
IfsrcAccessMask
includesVK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR
,srcStageMask
must 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_BIT
stages -
VUID-VkImageMemoryBarrier2-srcAccessMask-03928
IfsrcAccessMask
includesVK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-06256
If therayQuery
feature is not enabled andsrcAccessMask
includesVK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR
,srcStageMask
must not include any of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages exceptVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcAccessMask-07272
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
orVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcAccessMask-04858
IfsrcAccessMask
includesVK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcAccessMask-04859
IfsrcAccessMask
includesVK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcAccessMask-04860
IfsrcAccessMask
includesVK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcAccessMask-04861
IfsrcAccessMask
includesVK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcAccessMask-07455
IfsrcAccessMask
includesVK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV
,srcStageMask
must includeVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
-
VUID-VkImageMemoryBarrier2-srcAccessMask-07456
IfsrcAccessMask
includesVK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV
,srcStageMask
must includeVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
-
VUID-VkImageMemoryBarrier2-srcAccessMask-07457
IfsrcAccessMask
includesVK_ACCESS_2_MICROMAP_WRITE_BIT_EXT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
-
VUID-VkImageMemoryBarrier2-srcAccessMask-07458
IfsrcAccessMask
includesVK_ACCESS_2_MICROMAP_READ_BIT_EXT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
orVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcAccessMask-08118
IfsrcAccessMask
includesVK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one ofVK_PIPELINE_STAGE_*_SHADER_BIT
stages
-
VUID-VkImageMemoryBarrier2-dstStageMask-03929
If thegeometryShader
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT
-
VUID-VkImageMemoryBarrier2-dstStageMask-03930
If thetessellationShader
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT
orVK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT
-
VUID-VkImageMemoryBarrier2-dstStageMask-03931
If theconditionalRendering
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
-
VUID-VkImageMemoryBarrier2-dstStageMask-03932
If thefragmentDensityMap
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
-
VUID-VkImageMemoryBarrier2-dstStageMask-03933
If thetransformFeedback
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
-
VUID-VkImageMemoryBarrier2-dstStageMask-03934
If themeshShader
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT
-
VUID-VkImageMemoryBarrier2-dstStageMask-03935
If thetaskShader
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT
-
VUID-VkImageMemoryBarrier2-dstStageMask-07316
If neither theshadingRateImage
orattachmentFragmentShadingRate
are enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstStageMask-04957
If thesubpassShading
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2-dstStageMask-04995
If theinvocationMask
feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2-dstStageMask-07946
If neither the VK_NV_ray_tracing extension orrayTracingPipeline
feature are enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03900
IfdstAccessMask
includesVK_ACCESS_2_INDIRECT_COMMAND_READ_BIT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_INDEX_READ_BIT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_UNIFORM_READ_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03905
IfdstAccessMask
includesVK_ACCESS_2_SHADER_SAMPLED_READ_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03906
IfdstAccessMask
includesVK_ACCESS_2_SHADER_STORAGE_READ_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03907
IfdstAccessMask
includesVK_ACCESS_2_SHADER_STORAGE_WRITE_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-dstAccessMask-07454
IfdstAccessMask
includesVK_ACCESS_2_SHADER_READ_BIT
,dstStageMask
must 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_BIT
stages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03909
IfdstAccessMask
includesVK_ACCESS_2_SHADER_WRITE_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03910
IfdstAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03911
IfdstAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03912
IfdstAccessMask
includesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_TRANSFER_READ_BIT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_TRANSFER_WRITE_BIT
,dstStageMask
must 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
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03916
IfdstAccessMask
includesVK_ACCESS_2_HOST_READ_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_HOST_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03917
IfdstAccessMask
includesVK_ACCESS_2_HOST_WRITE_BIT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_HOST_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03918
IfdstAccessMask
includesVK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV
,dstStageMask
must 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
IfdstAccessMask
includesVK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI
,dstStageMask
must includeVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03924
IfdstAccessMask
includesVK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV
orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03925
IfdstAccessMask
includesVK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV
orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03926
IfdstAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-03927
IfdstAccessMask
includesVK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR
,dstStageMask
must 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_BIT
stages -
VUID-VkImageMemoryBarrier2-dstAccessMask-03928
IfdstAccessMask
includesVK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-06256
If therayQuery
feature is not enabled anddstAccessMask
includesVK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR
,dstStageMask
must not include any of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages exceptVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstAccessMask-07272
IfdstAccessMask
includesVK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
orVK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstAccessMask-04858
IfdstAccessMask
includesVK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstAccessMask-04859
IfdstAccessMask
includesVK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstAccessMask-04860
IfdstAccessMask
includesVK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstAccessMask-04861
IfdstAccessMask
includesVK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstAccessMask-07455
IfdstAccessMask
includesVK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV
,dstStageMask
must includeVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
-
VUID-VkImageMemoryBarrier2-dstAccessMask-07456
IfdstAccessMask
includesVK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV
,dstStageMask
must includeVK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV
-
VUID-VkImageMemoryBarrier2-dstAccessMask-07457
IfdstAccessMask
includesVK_ACCESS_2_MICROMAP_WRITE_BIT_EXT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
-
VUID-VkImageMemoryBarrier2-dstAccessMask-07458
IfdstAccessMask
includesVK_ACCESS_2_MICROMAP_READ_BIT_EXT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT
orVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
-
VUID-VkImageMemoryBarrier2-dstAccessMask-08118
IfdstAccessMask
includesVK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT
, or one ofVK_PIPELINE_STAGE_*_SHADER_BIT
stages
-
VUID-VkImageMemoryBarrier2-oldLayout-01208
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
-
VUID-VkImageMemoryBarrier2-oldLayout-01209
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-
VUID-VkImageMemoryBarrier2-oldLayout-01210
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-
VUID-VkImageMemoryBarrier2-oldLayout-01211
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_SAMPLED_BIT
orVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
-
VUID-VkImageMemoryBarrier2-oldLayout-01212
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_TRANSFER_SRC_BIT
-
VUID-VkImageMemoryBarrier2-oldLayout-01213
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_TRANSFER_DST_BIT
-
VUID-VkImageMemoryBarrier2-oldLayout-01197
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition,oldLayout
must beVK_IMAGE_LAYOUT_UNDEFINED
or the current layout of the image subresources affected by the barrier -
VUID-VkImageMemoryBarrier2-newLayout-01198
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition,newLayout
must not beVK_IMAGE_LAYOUT_UNDEFINED
orVK_IMAGE_LAYOUT_PREINITIALIZED
-
VUID-VkImageMemoryBarrier2-oldLayout-01658
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-
VUID-VkImageMemoryBarrier2-oldLayout-01659
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04065
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
thenimage
must 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
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
set -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04067
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
thenimage
must 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
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
thenimage
must have been created withVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
set -
VUID-VkImageMemoryBarrier2-synchronization2-07793
If thesynchronization2
feature is not enabled,oldLayout
must not beVK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR
orVK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
-
VUID-VkImageMemoryBarrier2-synchronization2-07794
If thesynchronization2
feature is not enabled,newLayout
must not beVK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR
orVK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03938
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
,image
must have been created withVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
orVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-03939
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL
,image
must 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
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
thenimage
must have been created withVK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
set -
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070
IfsrcQueueFamilyIndex
is 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
Ifimage
was created with a sharing mode ofVK_SHARING_MODE_CONCURRENT
,srcQueueFamilyIndex
anddstQueueFamilyIndex
are not equal, and one ofsrcQueueFamilyIndex
anddstQueueFamilyIndex
is one of the special queue family values reserved for external memory transfers, the other must beVK_QUEUE_FAMILY_IGNORED
-
VUID-VkImageMemoryBarrier2-image-04072
Ifimage
was created with a sharing mode ofVK_SHARING_MODE_EXCLUSIVE
, andsrcQueueFamilyIndex
anddstQueueFamilyIndex
are not equal,srcQueueFamilyIndex
anddstQueueFamilyIndex
must 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-srcQueueFamilyIndex-07120
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR
thenimage
must have been created withVK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07121
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR
thenimage
must have been created withVK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07122
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR
thenimage
must have been created withVK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07123
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR
thenimage
must have been created withVK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07124
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR
thenimage
must have been created withVK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07125
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR
thenimage
must have been created withVK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
-
VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07006
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
thenimage
must have been created with either theVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
orVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
usage bits, and theVK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
orVK_IMAGE_USAGE_SAMPLED_BIT
usage bits, and theVK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
usage bit -
VUID-VkImageMemoryBarrier2-attachmentFeedbackLoopLayout-07313
If theattachmentFeedbackLoopLayout
feature is not enabled,newLayout
must not beVK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
-
VUID-VkImageMemoryBarrier2-subresourceRange-01486
subresourceRange.baseMipLevel
must be less than themipLevels
specified in VkImageCreateInfo whenimage
was created -
VUID-VkImageMemoryBarrier2-subresourceRange-01724
IfsubresourceRange.levelCount
is notVK_REMAINING_MIP_LEVELS
,subresourceRange.baseMipLevel
+subresourceRange.levelCount
must be less than or equal to themipLevels
specified in VkImageCreateInfo whenimage
was created -
VUID-VkImageMemoryBarrier2-subresourceRange-01488
subresourceRange.baseArrayLayer
must be less than thearrayLayers
specified in VkImageCreateInfo whenimage
was created -
VUID-VkImageMemoryBarrier2-subresourceRange-01725
IfsubresourceRange.layerCount
is notVK_REMAINING_ARRAY_LAYERS
,subresourceRange.baseArrayLayer
+subresourceRange.layerCount
must be less than or equal to thearrayLayers
specified in VkImageCreateInfo whenimage
was created -
VUID-VkImageMemoryBarrier2-image-01932
Ifimage
is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemory
object -
VUID-VkImageMemoryBarrier2-image-01671
Ifimage
has a single-plane color format or is not disjoint, then theaspectMask
member ofsubresourceRange
must beVK_IMAGE_ASPECT_COLOR_BIT
-
VUID-VkImageMemoryBarrier2-image-01672
Ifimage
has a multi-planar format and the image is disjoint, then theaspectMask
member ofsubresourceRange
must include at least one multi-planar aspect mask orVK_IMAGE_ASPECT_COLOR_BIT
-
VUID-VkImageMemoryBarrier2-image-03319
Ifimage
has a depth/stencil format with both depth and stencil and theseparateDepthStencilLayouts
feature is enabled, then theaspectMask
member ofsubresourceRange
must include either or bothVK_IMAGE_ASPECT_DEPTH_BIT
andVK_IMAGE_ASPECT_STENCIL_BIT
-
VUID-VkImageMemoryBarrier2-image-03320
Ifimage
has a depth/stencil format with both depth and stencil and theseparateDepthStencilLayouts
feature is not enabled, then theaspectMask
member ofsubresourceRange
must include bothVK_IMAGE_ASPECT_DEPTH_BIT
andVK_IMAGE_ASPECT_STENCIL_BIT
-
VUID-VkImageMemoryBarrier2-aspectMask-08702
If theaspectMask
member ofsubresourceRange
includesVK_IMAGE_ASPECT_DEPTH_BIT
,oldLayout
andnewLayout
must not be one ofVK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
orVK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
-
VUID-VkImageMemoryBarrier2-aspectMask-08703
If theaspectMask
member ofsubresourceRange
includesVK_IMAGE_ASPECT_STENCIL_BIT
,oldLayout
andnewLayout
must not be one ofVK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
orVK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
-
VUID-VkImageMemoryBarrier2-srcStageMask-03854
If eithersrcStageMask
ordstStageMask
includesVK_PIPELINE_STAGE_2_HOST_BIT
,srcQueueFamilyIndex
anddstQueueFamilyIndex
must be equal -
VUID-VkImageMemoryBarrier2-srcStageMask-03855
IfsrcStageMask
includesVK_PIPELINE_STAGE_2_HOST_BIT
, andsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition,oldLayout
must be one ofVK_IMAGE_LAYOUT_PREINITIALIZED
,VK_IMAGE_LAYOUT_UNDEFINED
, orVK_IMAGE_LAYOUT_GENERAL
-
VUID-VkImageMemoryBarrier2-sType-sType
sType
must beVK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2
-
VUID-VkImageMemoryBarrier2-pNext-pNext
pNext
must beNULL
or a pointer to a valid instance of VkSampleLocationsInfoEXT -
VUID-VkImageMemoryBarrier2-sType-unique
ThesType
value of each struct in thepNext
chain must be unique -
VUID-VkImageMemoryBarrier2-srcStageMask-parameter
srcStageMask
must be a valid combination of VkPipelineStageFlagBits2 values -
VUID-VkImageMemoryBarrier2-srcAccessMask-parameter
srcAccessMask
must be a valid combination of VkAccessFlagBits2 values -
VUID-VkImageMemoryBarrier2-dstStageMask-parameter
dstStageMask
must be a valid combination of VkPipelineStageFlagBits2 values -
VUID-VkImageMemoryBarrier2-dstAccessMask-parameter
dstAccessMask
must be a valid combination of VkAccessFlagBits2 values -
VUID-VkImageMemoryBarrier2-oldLayout-parameter
oldLayout
must be a valid VkImageLayout value -
VUID-VkImageMemoryBarrier2-newLayout-parameter
newLayout
must be a valid VkImageLayout value -
VUID-VkImageMemoryBarrier2-image-parameter
image
must be a valid VkImage handle -
VUID-VkImageMemoryBarrier2-subresourceRange-parameter
subresourceRange
must 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.