C Specification
The VkImageMemoryBarrier2KHR
structure is defined as:
// Provided by VK_KHR_synchronization2
typedef struct VkImageMemoryBarrier2KHR {
VkStructureType sType;
const void* pNext;
VkPipelineStageFlags2KHR srcStageMask;
VkAccessFlags2KHR srcAccessMask;
VkPipelineStageFlags2KHR dstStageMask;
VkAccessFlags2KHR dstAccessMask;
VkImageLayout oldLayout;
VkImageLayout newLayout;
uint32_t srcQueueFamilyIndex;
uint32_t dstQueueFamilyIndex;
VkImage image;
VkImageSubresourceRange subresourceRange;
} VkImageMemoryBarrier2KHR;
Members
-
sType
is the type of this structure. -
pNext
isNULL
or a pointer to a structure extending this structure. -
srcStageMask
is a VkPipelineStageFlags2KHR mask of pipeline stages to be included in the first synchronization scope. -
srcAccessMask
is a VkAccessFlags2KHR mask of access flags to be included in the first access scope. -
dstStageMask
is a VkPipelineStageFlags2KHR mask of pipeline stages to be included in the second synchronization scope. -
dstAccessMask
is a VkAccessFlags2KHR 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://www.khronos.org/registry/vulkan/specs/1.2-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-VkImageMemoryBarrier2KHR-srcStageMask-03929
If the geometry shaders feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03930
If the tessellation shaders feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR
orVK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03931
If the conditional rendering feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03932
If the fragment density map feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03933
If the transform feedback feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03934
If the mesh shaders feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03935
If the task shaders feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-04956
If the shading rate image feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-04957
If the subpass shading feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2KHR-srcStageMask-04995
If the invocation mask image feature is not enabled,srcStageMask
must not containVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03900
IfsrcAccessMask
includesVK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03901
IfsrcAccessMask
includesVK_ACCESS_2_INDEX_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR
,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03902
IfsrcAccessMask
includesVK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR
,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03903
IfsrcAccessMask
includesVK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR
,VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03904
IfsrcAccessMask
includesVK_ACCESS_2_UNIFORM_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03905
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03906
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03907
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03908
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03909
IfsrcAccessMask
includesVK_ACCESS_2_SHADER_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03910
IfsrcAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03911
IfsrcAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03912
IfsrcAccessMask
includesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR
,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03913
IfsrcAccessMask
includesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR
,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03914
IfsrcAccessMask
includesVK_ACCESS_2_TRANSFER_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COPY_BIT_KHR
,VK_PIPELINE_STAGE_2_BLIT_BIT_KHR
,VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03915
IfsrcAccessMask
includesVK_ACCESS_2_TRANSFER_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COPY_BIT_KHR
,VK_PIPELINE_STAGE_2_BLIT_BIT_KHR
,VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR
,VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03916
IfsrcAccessMask
includesVK_ACCESS_2_HOST_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_HOST_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03917
IfsrcAccessMask
includesVK_ACCESS_2_HOST_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_HOST_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04747
IfsrcAccessMask
includesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR
,VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04994
IfsrcAccessMask
includesVK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI
,srcStageMask
must includeVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03926
IfsrcAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
,srcStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-03928
IfsrcAccessMask
includesVK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-06256
IfrayQuery
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-VkImageMemoryBarrier2KHR-srcAccessMask-04858
IfsrcAccessMask
includesVK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04859
IfsrcAccessMask
includesVK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04860
IfsrcAccessMask
includesVK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-04861
IfsrcAccessMask
includesVK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR
,srcStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03929
If the geometry shaders feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03930
If the tessellation shaders feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR
orVK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03931
If the conditional rendering feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03932
If the fragment density map feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03933
If the transform feedback feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03934
If the mesh shaders feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-03935
If the task shaders feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-04956
If the shading rate image feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-04957
If the subpass shading feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2KHR-dstStageMask-04995
If the invocation mask image feature is not enabled,dstStageMask
must not containVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03900
IfdstAccessMask
includesVK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03901
IfdstAccessMask
includesVK_ACCESS_2_INDEX_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR
,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03902
IfdstAccessMask
includesVK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR
,VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03903
IfdstAccessMask
includesVK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR
,VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03904
IfdstAccessMask
includesVK_ACCESS_2_UNIFORM_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03905
IfdstAccessMask
includesVK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03906
IfdstAccessMask
includesVK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03907
IfdstAccessMask
includesVK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03908
IfdstAccessMask
includesVK_ACCESS_2_SHADER_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03909
IfdstAccessMask
includesVK_ACCESS_2_SHADER_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03910
IfdstAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03911
IfdstAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03912
IfdstAccessMask
includesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR
,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03913
IfdstAccessMask
includesVK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR
,VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03914
IfdstAccessMask
includesVK_ACCESS_2_TRANSFER_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COPY_BIT_KHR
,VK_PIPELINE_STAGE_2_BLIT_BIT_KHR
,VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03915
IfdstAccessMask
includesVK_ACCESS_2_TRANSFER_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COPY_BIT_KHR
,VK_PIPELINE_STAGE_2_BLIT_BIT_KHR
,VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR
,VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR
,VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR
,VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03916
IfdstAccessMask
includesVK_ACCESS_2_HOST_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_HOST_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03917
IfdstAccessMask
includesVK_ACCESS_2_HOST_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_HOST_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04747
IfdstAccessMask
includesVK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR
,VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT
,VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04994
IfdstAccessMask
includesVK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI
,dstStageMask
must includeVK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03926
IfdstAccessMask
includesVK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT
,dstStageMask
must includeVK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR
VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR
, orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-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_ALL_COMMANDS_BIT_KHR
, or one of theVK_PIPELINE_STAGE_*_SHADER_BIT
stages -
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-03928
IfdstAccessMask
includesVK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR
orVK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-06256
IfrayQuery
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-VkImageMemoryBarrier2KHR-dstAccessMask-04858
IfdstAccessMask
includesVK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04859
IfdstAccessMask
includesVK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04860
IfdstAccessMask
includesVK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-04861
IfdstAccessMask
includesVK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR
,dstStageMask
must includeVK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
-
VUID-VkImageMemoryBarrier2KHR-subresourceRange-01486
subresourceRange.baseMipLevel
must be less than themipLevels
specified in VkImageCreateInfo whenimage
was created -
VUID-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-subresourceRange-01488
subresourceRange.baseArrayLayer
must be less than thearrayLayers
specified in VkImageCreateInfo whenimage
was created -
VUID-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-image-01932
Ifimage
is non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemory
object -
VUID-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-srcQueueFamilyIndex-03938
IfsrcQueueFamilyIndex
anddstQueueFamilyIndex
define a queue family ownership transfer oroldLayout
andnewLayout
define an image layout transition, andoldLayout
ornewLayout
isVK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR
,image
must have been created withVK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
orVK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
-
VUID-VkImageMemoryBarrier2KHR-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_KHR
,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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-image-01671
Ifimage
has a single-plane color format or is not disjoint, then theaspectMask
member ofsubresourceRange
must beVK_IMAGE_ASPECT_COLOR_BIT
-
VUID-VkImageMemoryBarrier2KHR-image-01672
Ifimage
has a multi-planar format and the image is disjoint, then theaspectMask
member ofsubresourceRange
must 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-VkImageMemoryBarrier2KHR-image-01673
Ifimage
has a multi-planar format with only two planes, then theaspectMask
member ofsubresourceRange
must not includeVK_IMAGE_ASPECT_PLANE_2_BIT
-
VUID-VkImageMemoryBarrier2KHR-image-03319
Ifimage
has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then theaspectMask
member ofsubresourceRange
must include either or bothVK_IMAGE_ASPECT_DEPTH_BIT
andVK_IMAGE_ASPECT_STENCIL_BIT
-
VUID-VkImageMemoryBarrier2KHR-image-03320
Ifimage
has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then theaspectMask
member ofsubresourceRange
must include bothVK_IMAGE_ASPECT_DEPTH_BIT
andVK_IMAGE_ASPECT_STENCIL_BIT
-
VUID-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-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-VkImageMemoryBarrier2KHR-srcStageMask-03854
If eithersrcStageMask
ordstStageMask
includesVK_PIPELINE_STAGE_2_HOST_BIT_KHR
,srcQueueFamilyIndex
anddstQueueFamilyIndex
must be equal -
VUID-VkImageMemoryBarrier2KHR-srcStageMask-03855
IfsrcStageMask
includesVK_PIPELINE_STAGE_2_HOST_BIT_KHR
, 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-VkImageMemoryBarrier2KHR-sType-sType
sType
must beVK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR
-
VUID-VkImageMemoryBarrier2KHR-pNext-pNext
pNext
must beNULL
or a pointer to a valid instance of VkSampleLocationsInfoEXT -
VUID-VkImageMemoryBarrier2KHR-sType-unique
ThesType
value of each struct in thepNext
chain must be unique -
VUID-VkImageMemoryBarrier2KHR-srcStageMask-parameter
srcStageMask
must be a valid combination of VkPipelineStageFlagBits2KHR values -
VUID-VkImageMemoryBarrier2KHR-srcAccessMask-parameter
srcAccessMask
must be a valid combination of VkAccessFlagBits2KHR values -
VUID-VkImageMemoryBarrier2KHR-dstStageMask-parameter
dstStageMask
must be a valid combination of VkPipelineStageFlagBits2KHR values -
VUID-VkImageMemoryBarrier2KHR-dstAccessMask-parameter
dstAccessMask
must be a valid combination of VkAccessFlagBits2KHR values -
VUID-VkImageMemoryBarrier2KHR-oldLayout-parameter
oldLayout
must be a valid VkImageLayout value -
VUID-VkImageMemoryBarrier2KHR-newLayout-parameter
newLayout
must be a valid VkImageLayout value -
VUID-VkImageMemoryBarrier2KHR-image-parameter
image
must be a valid VkImage handle -
VUID-VkImageMemoryBarrier2KHR-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.