blob: 5539cd9a449fe671164803d4d63291b6a6ea2eee [file] [log] [blame]
// Copyright 2019-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0
// Common Valid Usage
// Common to VkBufferMemoryBarrier* structs
* [[VUID-{refpage}-offset-01187]]
pname:offset must: be less than the size of pname:buffer
* [[VUID-{refpage}-size-01188]]
If pname:size is not equal to ename:VK_WHOLE_SIZE, pname:size must: be
greater than `0`
* [[VUID-{refpage}-size-01189]]
If pname:size is not equal to ename:VK_WHOLE_SIZE, pname:size must: be
less than or equal to than the size of pname:buffer minus pname:offset
* [[VUID-{refpage}-buffer-01931]]
If pname:buffer is non-sparse then it must: be bound completely and
contiguously to a single sname:VkDeviceMemory object
ifndef::VK_VERSION_1_1,VK_KHR_external_memory[]
* [[VUID-{refpage}-buffer-04086]]
If pname:buffer was created with a sharing mode of
ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and
pname:dstQueueFamilyIndex are not equal, pname:srcQueueFamilyIndex and
pname:dstQueueFamilyIndex must: be valid queue families
endif::VK_VERSION_1_1,VK_KHR_external_memory[]
ifdef::VK_VERSION_1_1,VK_KHR_external_memory[]
* [[VUID-{refpage}-srcQueueFamilyIndex-04087]]
If pname:srcQueueFamilyIndex is not equal to pname:dstQueueFamilyIndex,
at least one must: not be a special queue family reserved for external
memory ownership transfers, as described in
<<synchronization-queue-transfers>>
* [[VUID-{refpage}-buffer-04088]]
If pname:buffer was created with a sharing mode of
ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and
pname:dstQueueFamilyIndex are not equal, and one of
pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex is one of the
special queue family values reserved for external memory transfers, the
other must: be ename:VK_QUEUE_FAMILY_IGNORED
* [[VUID-{refpage}-buffer-04089]]
If pname:buffer was created with a sharing mode of
ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and
pname:dstQueueFamilyIndex are not equal, pname:srcQueueFamilyIndex and
pname:dstQueueFamilyIndex 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>>
endif::VK_VERSION_1_1,VK_KHR_external_memory[]
// Common Valid Usage