Change log for July 30, 2018 Vulkan 1.1.82 spec update:

* Update release number to 82.

Public Issues:

  * Add flink:vkDestroyPipelineLayout valid usage statement that the layout
    must not have been used with command buffers still in the recording
    state (public issue 730).
  * Correct \<unused> tag for elink:VkResult in `vk.xml` (public merge
    request 746).

Internal Issues:

  * Add a valid usage statement to flink:vkQueueSubmit, and similar language
    to the definitions of <<synchronization-queue-transfers-acquire, acquire
    operations>> requiring that an acquire operation follow a previous
    release of the same subresource (internal issue 1290).
  * Add <<resources-image-format-features,Image Format Features>> and
    <<resources-image-view-format-features,Image View Format Features>>
    sections that precisely define the slink:VkFormatFeatures supported by
    images and image views, and rewrite valid usage statements to reference
    these sections instead of duplicating language (internal issue 1310).
  * Reword and consolidate synchronization valid usage statements for
    flink:vkCmdPipelineBarrier such that they correctly account for mutiple
    possible self-dependencies (internal issue 1322).
  * Change order of <<Standard sample locations>> for 2xMSAA (internal issue
    1347).
  * Add definitions of "`<<Correctly Rounded>>`" and "`<<ULP>>`" in the
    SPIR-V environment appendix, and "`Units in the Last Place (ULP)`" in
    the glossary.

New Extensions:

  * `VK_NV_device_diagnostic_checkpoints`
This commit is contained in:
Jon Leech 2018-07-30 03:20:00 -07:00
parent d5fc0a72f3
commit ff0c233908
21 changed files with 536 additions and 708 deletions

View File

@ -107,7 +107,7 @@ VERBOSE =
# EXTRAATTRIBS sets additional attributes, if passed to make # EXTRAATTRIBS sets additional attributes, if passed to make
# ADOCOPTS options for asciidoc->HTML5 output # ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 81 PATCHVERSION = 82
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS))) ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION) SPECREVISION = 1.1.$(PATCHVERSION)
else else

View File

@ -0,0 +1,55 @@
include::meta/VK_NV_device_diagnostic_checkpoints.txt[]
*Last Modified Date*::
2018-07-16
*Contributors*::
- Oleg Kuznetsov, NVIDIA
- Alex Dunn, NVIDIA
- Jeff Bolz, NVIDIA
- Eric Werness, NVIDIA
- Daniel Koch, NVIDIA
This extension allows applications to insert markers in the command stream
and associate them with custom data.
If a device lost error occurs, the application may: then query the
implementation for the last markers to cross specific implementation-defined
pipeline stages, in order to narrow down which commands were executing at
the time and might have caused the failure.
=== New Object Types
None.
=== New Enum Constants
Extending slink:VkStructureType:
* ename:VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV
* ename:VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV
=== New Enums
None.
=== New Structures
* slink:VkCheckpointDataNV
* slink:VkQueueFamilyCheckpointPropertiesNV
=== New Functions
* flink:vkCmdSetCheckpointNV
* flink:vkGetQueueCheckpointDataNV
=== Issues
None yet!
=== Version History
* Revision 1, 2018-07-16 (Nuno Subtil)
- Internal revisions

View File

@ -1227,6 +1227,14 @@ Uniform Buffer::
A descriptor type that represents a buffer, and supports read-only A descriptor type that represents a buffer, and supports read-only
access in a shader. access in a shader.
Units in the Last Place (ULP)::
A measure of floating-point error loosely defined as the smallest
representable step in a floating-point format near a given value.
For the precise definition see <<spirvenv-precision-operation, Precision
and Operation of SPIR-V instructions>> or Jean-Michel Muller, "On the
definition of ulp(x).", RR-5504, INRIA.
Other sources may also use the term "unit of least precision".
Unnormalized:: Unnormalized::
A value that is interpreted according to its conventional A value that is interpreted according to its conventional
interpretation, and is not normalized. interpretation, and is not normalized.

View File

@ -543,6 +543,38 @@ instructions:
The precision of double-precision instructions is at least that of single The precision of double-precision instructions is at least that of single
precision. precision.
The precision of operations is defined either in terms of rounding or as an
error bound in ULP, as follows.
.Correctly Rounded
Operations described as "correctly rounded" will return the infinitely
precise result, [eq]#x#, rounded so as to be representable in
floating-point.
The rounding mode used is not defined but if [eq]#x# is exactly
representable then [eq]#x# will be returned.
Otherwise, either the floating-point value closest to and no less than
[eq]#x# or the value closest to and no greater than [eq]#x# will be
returned.
.ULP
Where an error bound of [eq]#n# ULP (units in the last place) is given, for
an operation with infinitely precise result #x# the value returned must be
in the range #[x - n * ulp(x), x + n * ulp(x)]#.
The function #ulp(x)# is defined as follows:
:: If there exist non-equal floating-point numbers #a# and #b# such that
[eq]#a {leq} x {leq} b# then #ulp(x)# is the minimum possible distance
between such numbers, latexmath:[ulp(x) = \mathrm{min}_{a,b} | b - a |].
If such numbers do not exist then #ulp(x)# is defined to be the difference
between the two finite floating-point numbers nearest to #x#.
Where the range of allowed return values includes any value of magnitude
larger than that of the largest representable finite floating-point number,
operations may return an infinity of the appropriate sign.
If the infinitely precise result of the operation is not mathematically
defined then the value returned is undefined.
For single precision (32 bit) instructions, precisions are required: to be For single precision (32 bit) instructions, precisions are required: to be
at least as follows, unless decorated with RelaxedPrecision: at least as follows, unless decorated with RelaxedPrecision:
@ -593,7 +625,7 @@ additional functionality beyond what code:OpUMod provides.
[[spirvenv-image-formats]] [[spirvenv-image-formats]]
.Compatibility Between SPIR-V Image Formats And Vulkan Formats == Compatibility Between SPIR-V Image Formats And Vulkan Formats
Images which are read from or written to by shaders must: have SPIR-V image Images which are read from or written to by shaders must: have SPIR-V image
formats compatible with the Vulkan image formats backing the image under the formats compatible with the Vulkan image formats backing the image under the

View File

@ -0,0 +1,94 @@
== Device Loss Debugging
=== Device Diagnostic Checkpoints
Device execution progress can: be tracked for the purposes of debugging a
device loss by annotating the command stream with application-defined
diagnostic checkpoints.
Each diagnostic checkpoint command is executed at two pipeline stages:
ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, and
ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.
If the device is lost, the application can: call
slink:vkGetQueueCheckpointDataNV to retrieve checkpoint data associated with
both pipeline stages, indicating the range of diagnostic checkpoints that
are currently in the execution pipeline on the device.
[open,refpage='vkCmdSetCheckpointNV',desc='insert diagnostic checkpoint in command stream',type='protos']
--
Device diagnostic checkpoints are inserted into the command stream by
calling slink:vkCmdSetCheckpointNV.
include::../../api/protos/vkCmdSetCheckpointNV.txt[]
* pname:commandBuffer is the command buffer that will receive the marker
* pname:pCheckpointMarker is an opaque application-provided value that
will be associated with the checkpoint.
include::../../validity/protos/vkCmdSetCheckpointNV.txt[]
--
Note that pname:pCheckpointMarker is treated as an opaque value.
It does not need to be a valid pointer and will not be dereferenced by the
implementation.
[open,refpage='vkGetQueueCheckpointDataNV',desc='retrieve diagnostic checkpoint data',type='protos']
--
If the device encounters an error during execution, the implementation will
return a ename:VK_ERROR_DEVICE_LOST error to the application at a certain
point during host execution.
When this happens, the application can: call
slink:vkGetQueueCheckpointDataNV to retrieve information on the most recent
diagnostic checkpoints that were executed by the device.
include::../../api/protos/vkGetQueueCheckpointDataNV.txt[]
* pname:queue is the elink:VkQueue object the caller would like to retrieve
checkpoint data for
* pname:pCheckpointDataCount is a pointer to an integer related to the
number of checkpoint markers available or queried, as described below.
* pname:pCheckpointData is either `NULL` or a pointer to an array of
sname:VkCheckpointDataNV structures.
If pname:pCheckpointData is `NULL`, then the number of checkpoint markers
available is returned in pname:pCheckpointDataCount.
Otherwise, pname:pCheckpointDataCount must: point to a variable set by the
user to the number of elements in the pname:pCheckpointData array, and on
return the variable is overwritten with the number of structures actually
written to pname:pCheckpointData.
If pname:pCheckpointDataCount is less than the number of checkpoint markers
available, at most pname:pCheckpointDataCount structures will be written.
.Valid Usage
****
* [[VUID-vkGetQueueCheckpointDataNV-queue-02025]]
The device that pname:queue belongs to must: be in the lost state
****
include::../../validity/protos/vkGetQueueCheckpointDataNV.txt[]
--
[open,refpage='VkCheckpointDataNV',desc='return structure for command buffer checkpoint data',type='structs']
--
The slink:VkCheckpointDataNV structure is defined as:
include::../../api/structs/VkCheckpointDataNV.txt[]
* pname:sType is the type of this structure
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:stage indicates which pipeline stage the checkpoint marker data
refers to.
* pname:pCheckpointMarker contains the value of the last checkpoint marker
executed in the stage that pname:stage refers to.
include::../../validity/structs/VkCheckpointDataNV.txt[]
Note that the stages at which a checkpoint marker can: be executed are
implementation-defined and can: be queried by calling
slink:vkGetPhysicalDeviceQueueFamilyProperties2.
--

View File

@ -0,0 +1,18 @@
Additional queue family information can be queried by setting
slink:VkQueueFamilyProperties2::pname:pNext to point to an instance of the
slink:VkQueueFamilyCheckpointPropertiesNV structure.
[open,refpage='VkQueueFamilyCheckpointPropertiesNV',desc='return structure for queue family checkpoint info query']
--
The slink:VkQueueFamilyCheckpointPropertiesNV structure is defined as:
include::../../api/structs/VkQueueFamilyCheckpointPropertiesNV.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:checkpointExecutionStageMask is a mask indicating which pipeline
stages the implementation can execute checkpoint markers in.
include::../../validity/structs/VkQueueFamilyCheckpointPropertiesNV.txt[]
--

View File

@ -48,29 +48,11 @@ pname:pColor.
.Valid Usage .Valid Usage
**** ****
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdClearColorImage-image-00001]] * [[VUID-vkCmdClearColorImage-image-01993]]
pname:image must: use a format that supports The <<resources-image-format-features,format features>> of pname:image
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_VERSION_1_1,VK_KHR_maintenance1[] endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdClearColorImage-image-01935]]
pname:image must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdClearColorImage-image-00002]] * [[VUID-vkCmdClearColorImage-image-00002]]
pname:image must: have been created with pname:image must: have been created with
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
@ -163,29 +145,11 @@ include::../api/protos/vkCmdClearDepthStencilImage.txt[]
.Valid Usage .Valid Usage
**** ****
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdClearDepthStencilImage-image-00008]] * [[VUID-vkCmdClearDepthStencilImage-image-01994]]
pname:image must: use a format that supports The <<resources-image-format-features,format features>> of pname:image
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_VERSION_1_1,VK_KHR_maintenance1[] endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdClearDepthStencilImage-image-01936]]
pname:image must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdClearDepthStencilImage-image-00009]] * [[VUID-vkCmdClearDepthStencilImage-image-00009]]
pname:image must: have been created with pname:image must: have been created with
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag

View File

@ -1022,6 +1022,16 @@ See <<devsandqueues-lost-device,Lost Device>>.
Each element of the pname:pCommandBuffers member of each element of Each element of the pname:pCommandBuffers member of each element of
pname:pSubmits must: have been allocated from a sname:VkCommandPool that pname:pSubmits must: have been allocated from a sname:VkCommandPool that
was created for the same queue family pname:queue belongs to. was created for the same queue family pname:queue belongs to.
* [[VUID-vkQueueSubmit-pCommandBuffers]]
If any element of pname:pSubmits->pname:pCommandBuffers includes a
<<synchronization-queue-transfers-acquire, Queue Family Transfer Acquire
Operation>>, there must: exist a previously submitted
<<synchronization-queue-transfers-release, Queue Family Transfer Release
Operation>> on a queue in the queue family identified by the acquire
operation, with parameters matching the acquire operation as defined in
the definition of such <<synchronization-queue-transfers-acquire,
acquire operations>>, and which happens before the acquire operation.
**** ****
include::../validity/protos/vkQueueSubmit.txt[] include::../validity/protos/vkQueueSubmit.txt[]

View File

@ -45,28 +45,10 @@ endif::VK_KHR_shared_presentable_image[]
destination of a copy, it must: be in the ename:VK_IMAGE_LAYOUT_GENERAL destination of a copy, it must: be in the ename:VK_IMAGE_LAYOUT_GENERAL
layout. layout.
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* Source images must: use a format that supports * Source images must: have ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT in
ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, which is indicated by their <<resources-image-format-features,format features>>.
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[] * Destination images must: have ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures in their <<resources-image-format-features,format features>>.
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
* Destination images must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_VERSION_1_1,VK_KHR_maintenance1[] endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
* Source images must: have been created with the * Source images must: have been created with the
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage bit enabled and destination ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage bit enabled and destination
@ -348,29 +330,11 @@ endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
The union of all source regions, and the union of all destination The union of all source regions, and the union of all destination
regions, specified by the elements of pname:pRegions, must: not overlap regions, specified by the elements of pname:pRegions, must: not overlap
in memory in memory
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdCopyImage-srcImage-00125]] * [[VUID-vkCmdCopyImage-srcImage-01995]]
pname:srcImage must: use a format that supports The <<resources-image-format-features,format features>> of
ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, which is indicated by pname:srcImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_VERSION_1_1,VK_KHR_maintenance1[] endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdCopyImage-srcImage-01938]]
pname:srcImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, which is indicated by
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdCopyImage-srcImage-00126]] * [[VUID-vkCmdCopyImage-srcImage-00126]]
pname:srcImage must: have been created with pname:srcImage must: have been created with
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
@ -401,29 +365,11 @@ ifdef::VK_KHR_shared_presentable_image[]
ename:VK_IMAGE_LAYOUT_GENERAL, or ename:VK_IMAGE_LAYOUT_GENERAL, or
ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
endif::VK_KHR_shared_presentable_image[] endif::VK_KHR_shared_presentable_image[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdCopyImage-dstImage-00130]] * [[VUID-vkCmdCopyImage-dstImage-01996]]
pname:dstImage must: use a format that supports The <<resources-image-format-features,format features>> of
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by pname:dstImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_VERSION_1_1,VK_KHR_maintenance1[] endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdCopyImage-dstImage-01939]]
pname:dstImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdCopyImage-dstImage-00131]] * [[VUID-vkCmdCopyImage-dstImage-00131]]
pname:dstImage must: have been created with pname:dstImage must: have been created with
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
@ -927,29 +873,11 @@ endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-vkCmdCopyBufferToImage-srcBuffer-00174]] * [[VUID-vkCmdCopyBufferToImage-srcBuffer-00174]]
pname:srcBuffer must: have been created with pname:srcBuffer must: have been created with
ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdCopyBufferToImage-dstImage-00175]] * [[VUID-vkCmdCopyBufferToImage-dstImage-01997]]
pname:dstImage must: use a format that supports The <<resources-image-format-features,format features>> of
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by pname:dstImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_VERSION_1_1,VK_KHR_maintenance1[] endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdCopyBufferToImage-dstImage-01940]]
pname:dstImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdCopyBufferToImage-srcBuffer-00176]] * [[VUID-vkCmdCopyBufferToImage-srcBuffer-00176]]
If pname:srcBuffer is non-sparse then it must: be bound completely and If pname:srcBuffer is non-sparse then it must: be bound completely and
contiguously to a single sname:VkDeviceMemory object contiguously to a single sname:VkDeviceMemory object
@ -1065,29 +993,11 @@ endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
The union of all source regions, and the union of all destination The union of all source regions, and the union of all destination
regions, specified by the elements of pname:pRegions, must: not overlap regions, specified by the elements of pname:pRegions, must: not overlap
in memory in memory
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[] ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdCopyImageToBuffer-srcImage-00185]] * [[VUID-vkCmdCopyImageToBuffer-srcImage-01998]]
pname:srcImage must: use a format that supports The <<resources-image-format-features,format features>> of
ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, which is indicated by pname:srcImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_VERSION_1_1,VK_KHR_maintenance1[] endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdCopyImageToBuffer-srcImage-01941]]
pname:srcImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, which is indicated by
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdCopyImageToBuffer-srcImage-00186]] * [[VUID-vkCmdCopyImageToBuffer-srcImage-00186]]
pname:srcImage must: have been created with pname:srcImage must: have been created with
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
@ -1599,27 +1509,9 @@ representable range of the destination format, then casting the value.
The union of all destination regions, specified by the elements of The union of all destination regions, specified by the elements of
pname:pRegions, must: not overlap in memory with any texel that may: be pname:pRegions, must: not overlap in memory with any texel that may: be
sampled during the blit operation sampled during the blit operation
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdBlitImage-srcImage-01999]]
* [[VUID-vkCmdBlitImage-srcImage-00218]] The <<resources-image-format-features,format features>> of
pname:srcImage must: use a format that supports pname:srcImage must: contain ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT.
ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT, which is indicated by
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-srcImage-01942]]
pname:srcImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, which is indicated by
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-vkCmdBlitImage-srcImage-01561]] * [[VUID-vkCmdBlitImage-srcImage-01561]]
pname:srcImage must: not use a format listed in pname:srcImage must: not use a format listed in
@ -1646,27 +1538,9 @@ ifdef::VK_KHR_shared_presentable_image[]
ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or
ename:VK_IMAGE_LAYOUT_GENERAL ename:VK_IMAGE_LAYOUT_GENERAL
endif::VK_KHR_shared_presentable_image[] endif::VK_KHR_shared_presentable_image[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdBlitImage-dstImage-02000]]
* [[VUID-vkCmdBlitImage-dstImage-00223]] The <<resources-image-format-features,format features>> of
pname:dstImage must: use a format that supports pname:dstImage must: contain ename:VK_FORMAT_FEATURE_BLIT_DST_BIT.
ename:VK_FORMAT_FEATURE_BLIT_DST_BIT, which is indicated by
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-dstImage-01943]]
pname:dstImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[] ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-vkCmdBlitImage-dstImage-01562]] * [[VUID-vkCmdBlitImage-dstImage-01562]]
pname:dstImage must: not use a format listed in pname:dstImage must: not use a format listed in
@ -1716,53 +1590,16 @@ endif::VK_KHR_shared_presentable_image[]
* [[VUID-vkCmdBlitImage-dstImage-00234]] * [[VUID-vkCmdBlitImage-dstImage-00234]]
pname:dstImage must: have been created with a pname:samples value of pname:dstImage must: have been created with a pname:samples value of
ename:VK_SAMPLE_COUNT_1_BIT ename:VK_SAMPLE_COUNT_1_BIT
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdBlitImage-filter-02001]]
* [[VUID-vkCmdBlitImage-filter-00235]] If pname:filter is ename:VK_FILTER_LINEAR, then the
If pname:filter is ename:VK_FILTER_LINEAR, pname:srcImage must: be of a <<resources-image-format-features,format features>> of pname:srcImage
format which supports linear filtering, as specified by the must: contain ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-filter-01944]]
If pname:filter is ename:VK_FILTER_LINEAR, pname:srcImage must: be of a
format which supports linear filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdBlitImage-filter-02002]]
* [[VUID-vkCmdBlitImage-filter-00236]] If pname:filter is ename:VK_FILTER_CUBIC_IMG, then the
If pname:filter is ename:VK_FILTER_CUBIC_IMG, pname:srcImage must: be of <<resources-image-format-features,format features>> of pname:srcImage
a format which supports cubic filtering, as specified by the must: contain
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-filter-01945]]
If pname:filter is ename:VK_FILTER_CUBIC_IMG, pname:srcImage must: be of
a format which supports cubic filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned byflink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-filter-00237]] * [[VUID-vkCmdBlitImage-filter-00237]]
If pname:filter is ename:VK_FILTER_CUBIC_IMG, pname:srcImage must: have If pname:filter is ename:VK_FILTER_CUBIC_IMG, pname:srcImage must: have
a elink:VkImageType of ename:VK_IMAGE_TYPE_2D a elink:VkImageType of ename:VK_IMAGE_TYPE_2D
@ -1980,20 +1817,10 @@ ifdef::VK_KHR_shared_presentable_image[]
ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or
ename:VK_IMAGE_LAYOUT_GENERAL ename:VK_IMAGE_LAYOUT_GENERAL
endif::VK_KHR_shared_presentable_image[] endif::VK_KHR_shared_presentable_image[]
* [[VUID-vkCmdResolveImage-dstImage-00264]] * [[VUID-vkCmdResolveImage-dstImage-02003]]
If pname:dstImage was created with pname:tiling equal to The <<resources-image-format-features,format features>> of
ename:VK_IMAGE_TILING_LINEAR, pname:dstImage must: have been created pname:dstImage must: contain
with a pname:format that supports being a color attachment, as specified ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT.
by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdResolveImage-dstImage-00265]]
If pname:dstImage was created with pname:tiling equal to
ename:VK_IMAGE_TILING_OPTIMAL, pname:dstImage must: have been created
with a pname:format that supports being a color attachment, as specified
by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdResolveImage-srcImage-01386]] * [[VUID-vkCmdResolveImage-srcImage-01386]]
pname:srcImage and pname:dstImage must: have been created with the same pname:srcImage and pname:dstImage must: have been created with the same
image format image format

View File

@ -86,3 +86,7 @@ endif::VK_EXT_debug_marker[]
ifdef::VK_EXT_debug_report[] ifdef::VK_EXT_debug_report[]
include::VK_EXT_debug_report.txt[] include::VK_EXT_debug_report.txt[]
endif::VK_EXT_debug_report[] endif::VK_EXT_debug_report[]
ifdef::VK_NV_device_diagnostic_checkpoints[]
include::VK_NV_device_diagnostic_checkpoints/device_diagnostic_checkpoints.txt[]
endif::VK_NV_device_diagnostic_checkpoints[]

View File

@ -32,7 +32,7 @@ corresponding to different resources or usage.
The following sections describe the API definitions of each descriptor type. The following sections describe the API definitions of each descriptor type.
The mapping of each type to SPIR-V is listed in the The mapping of each type to SPIR-V is listed in the
<<interfaces-resources-correspondence, Shader Resource and Descriptor Type <<interfaces-resources-correspondence, Shader Resource and Descriptor Type
Correspondence>> and <<interfaces-resources-storage-class-correspondence Correspondence>> and <<interfaces-resources-storage-class-correspondence,
Shader Resource and Storage Class Correspondence>> tables in the Shader Resource and Storage Class Correspondence>> tables in the
<<interfaces, Shader Interfaces>> chapter. <<interfaces, Shader Interfaces>> chapter.
@ -45,28 +45,18 @@ type associated with an <<resources-images, image resource>> via an
<<resources-image-views, image view>> that load, store, and atomic <<resources-image-views, image view>> that load, store, and atomic
operations can: be performed on. operations can: be performed on.
Storage image loads are supported in all shader stages for image formats Storage image loads are supported in all shader stages for image views whose
which report support for the <<resources-image-view-format-features,format features>> contain
<<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT>> <<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT>>.
feature bit via flink:vkGetPhysicalDeviceFormatProperties in
slink:VkFormatProperties::pname:linearTilingFeatures (for images with linear
tiling) or slink:VkFormatProperties::pname:optimalTilingFeatures (for images
with optimal tiling).
Stores to storage images are supported in compute shaders for image formats Stores to storage images are supported in compute shaders for image views
which report support for the ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT whose <<resources-image-view-format-features,format features>> contain
feature via flink:vkGetPhysicalDeviceFormatProperties in <<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT>>.
slink:VkFormatProperties::pname:linearTilingFeatures (for images with linear
tiling) or slink:VkFormatProperties::pname:optimalTilingFeatures (for images
with optimal tiling).
Atomic operations on storage images are supported in compute shaders for Atomic operations on storage images are supported in compute shaders for
image formats which report support for the image views whose <<resources-image-view-format-features,format features>>
<<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT>> contain
feature via flink:vkGetPhysicalDeviceFormatProperties in <<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT>>.
slink:VkFormatProperties::pname:linearTilingFeatures (for images with linear
tiling) or slink:VkFormatProperties::pname:optimalTilingFeatures (for images
with optimal tiling).
When the <<features-features-fragmentStoresAndAtomics, When the <<features-features-fragmentStoresAndAtomics,
pname:fragmentStoresAndAtomics>> feature is enabled, stores and atomic pname:fragmentStoresAndAtomics>> feature is enabled, stores and atomic
@ -105,13 +95,9 @@ can: be performed on.
Shaders combine a sampled image variable and a sampler variable to perform Shaders combine a sampled image variable and a sampler variable to perform
sampling operations. sampling operations.
Sampled images are supported in all shader stages for image formats which Sampled images are supported in all shader stages for image views whose
report support for the <<resources-image-view-format-features,format features>> contain
<<features-formats-properties,ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT>> <<features-formats-properties,ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT>>.
feature bit via flink:vkGetPhysicalDeviceFormatProperties in
slink:VkFormatProperties::pname:linearTilingFeatures (for images with linear
tiling) or slink:VkFormatProperties::pname:optimalTilingFeatures (for images
with optimal tiling).
The image subresources for a sampled image must: be in the The image subresources for a sampled image must: be in the
ifdef::VK_KHR_shared_presentable_image[] ifdef::VK_KHR_shared_presentable_image[]
@ -1603,6 +1589,11 @@ include::../api/protos/vkDestroyPipelineLayout.txt[]
* [[VUID-vkDestroyPipelineLayout-pipelineLayout-00300]] * [[VUID-vkDestroyPipelineLayout-pipelineLayout-00300]]
If no sname:VkAllocationCallbacks were provided when If no sname:VkAllocationCallbacks were provided when
pname:pipelineLayout was created, pname:pAllocator must: be `NULL` pname:pipelineLayout was created, pname:pAllocator must: be `NULL`
* [[VUID-vkDestroyPipelineLayout-pipelineLayout-02004]]
pname:pipelineLayout must: not have been passed to any vkCmd* command
for any command buffers that are still in the
<<commandbuffers-lifecycle, recording state>> when
fname:vkDestroyPipelineLayout is called
**** ****
include::../validity/protos/vkDestroyPipelineLayout.txt[] include::../validity/protos/vkDestroyPipelineLayout.txt[]

View File

@ -618,8 +618,11 @@ endif::VK_KHR_get_physical_device_properties2[]
include::../validity/structs/VkQueueFamilyProperties2.txt[] include::../validity/structs/VkQueueFamilyProperties2.txt[]
-- --
endif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[] ifdef::VK_NV_device_diagnostic_checkpoints[]
include::VK_NV_device_diagnostic_checkpoints/queue_checkpoint_properties.txt[]
endif::VK_NV_device_diagnostic_checkpoints[]
endif::VK_VERSION_1_1,VK_KHR_get_physical_device_properties2[]
[[devsandqueues-devices]] [[devsandqueues-devices]]
== Devices == Devices

View File

@ -99,57 +99,17 @@ is assembled.
object bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDispatch-None-02005]]
* [[VUID-vkCmdDispatch-linearTilingFeatures-00398]] If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a result of this command, then the image view's
result of this command must: be of a format which supports linear <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatch-formatFeatures-01949]]
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDispatch-None-02006]]
* [[VUID-vkCmdDispatch-linearTilingFeatures-00399]] If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG as
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a a result of this command, then the image view's
result of this command must: be of a format which supports cubic <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatch-formatFeatures-01950]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: be of a format which supports cubic
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatch-None-00400]] * [[VUID-vkCmdDispatch-None-00400]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: not have a elink:VkImageViewType of result of this command must: not have a elink:VkImageViewType of
@ -267,57 +227,17 @@ at pname:offset.
object bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_COMPUTE accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDispatchIndirect-None-02007]]
* [[VUID-vkCmdDispatchIndirect-linearTilingFeatures-00414]] If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a result of this command, then the image view's
result of this command must: be of a format which supports linear <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatchIndirect-formatFeatures-01951]]
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDispatchIndirect-None-02008]]
* [[VUID-vkCmdDispatchIndirect-linearTilingFeatures-00415]] If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG as
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a a result of this command, then the image view's
result of this command must: be of a format which supports cubic <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatchIndirect-formatFeatures-01952]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: be of a format which supports cubic
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatchIndirect-None-00416]] * [[VUID-vkCmdDispatchIndirect-None-00416]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: not have a elink:VkImageViewType of result of this command must: not have a elink:VkImageViewType of

View File

@ -597,60 +597,20 @@ The assembled primitives execute the bound graphics pipeline.
object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDraw-linearTilingFeatures-00450]]
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDraw-formatFeatures-01953]]
Any slink:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDraw-None-01499]] * [[VUID-vkCmdDraw-None-01499]]
Image subresources used as attachments in the current render pass must: Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command. not be accessed in any way other than as an attachment by this command.
* [[VUID-vkCmdDraw-None-02009]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
result of this command, then the image view's
<<resources-image-view-format-features,format features>> must: contain
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDraw-None-02010]]
* [[VUID-vkCmdDraw-linearTilingFeatures-00451]] If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG as
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a a result of this command, then the image view's
result of this command must: be of a format which supports cubic <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDraw-formatFeatures-01954]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: be of a format which supports cubic
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDraw-None-00452]] * [[VUID-vkCmdDraw-None-00452]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: not have a elink:VkImageViewType of result of this command must: not have a elink:VkImageViewType of
@ -823,60 +783,20 @@ The assembled primitives execute the bound graphics pipeline.
object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDrawIndexed-None-02011]]
* [[VUID-vkCmdDrawIndexed-linearTilingFeatures-00470]] If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a result of this command, then the image view's
result of this command must: be of a format which supports linear <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexed-formatFeatures-01955]]
Any slink:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexed-None-01500]] * [[VUID-vkCmdDrawIndexed-None-01500]]
Image subresources used as attachments in the current render pass must: Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command. not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDrawIndexed-None-02012]]
* [[VUID-vkCmdDrawIndexed-linearTilingFeatures-00471]] If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG as
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a a result of this command, then the image view's
result of this command must: be of a format which supports cubic <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexed-formatFeatures-01956]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: be of a format which supports cubic
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexed-None-00472]] * [[VUID-vkCmdDrawIndexed-None-00472]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: not have a elink:VkImageViewType of result of this command must: not have a elink:VkImageViewType of
@ -1058,60 +978,20 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDrawIndirect-None-02013]]
* [[VUID-vkCmdDrawIndirect-linearTilingFeatures-00496]] If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a result of this command, then the image view's
result of this command must: be of a format which supports linear <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirect-formatFeatures-01957]]
Any slink:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirect-None-01501]] * [[VUID-vkCmdDrawIndirect-None-01501]]
Image subresources used as attachments in the current render pass must: Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command. not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDrawIndirect-None-02014]]
* [[VUID-vkCmdDrawIndirect-linearTilingFeatures-00497]] If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG as
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a a result of this command, then the image view's
result of this command must: be of a format which supports cubic <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirect-formatFeatures-01958]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: be of a format which supports cubic
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirect-None-00498]] * [[VUID-vkCmdDrawIndirect-None-00498]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: not have a elink:VkImageViewType of result of this command must: not have a elink:VkImageViewType of
@ -1338,28 +1218,20 @@ located at pname:countBufferOffset and use this as the draw count.
object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
* [[VUID-vkCmdDrawIndirectCountKHR-linearTilingFeatures-03130]] * [[VUID-vkCmdDrawIndirectCountKHR-None-02015]]
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear result of this command, then the image view's
filtering, as specified by the <<resources-image-view-format-features,format features>> must: contain
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures (for a linear
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndirectCountKHR-None-03131]] * [[VUID-vkCmdDrawIndirectCountKHR-None-03131]]
Image subresources used as attachments in the current render pass must: Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command. not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
* [[VUID-vkCmdDrawIndirectCountKHR-linearTilingFeatures-03169]] * [[VUID-vkCmdDrawIndirectCountKHR-None-02016]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG as
result of this command must: be of a format which supports cubic a result of this command, then the image view's
filtering, as specified by the <<resources-image-view-format-features,format features>> must: contain
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
sname:VkFormatProperties::pname:linearTilingFeatures (for a linear
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndirectCountKHR-None-03170]] * [[VUID-vkCmdDrawIndirectCountKHR-None-03170]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: not have a elink:VkImageViewType of result of this command must: not have a elink:VkImageViewType of
@ -1557,31 +1429,11 @@ located at pname:countBufferOffset and use this as the draw count.
object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDrawIndirectCountAMD-None-02017]]
* [[VUID-vkCmdDrawIndirectCountAMD-linearTilingFeatures-00524]] If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a result of this command, then the image view's
result of this command must: be of a format which supports linear <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirectCountAMD-formatFeatures-01959]]
Any slink:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirectCountAMD-None-01502]] * [[VUID-vkCmdDrawIndirectCountAMD-None-01502]]
Image subresources used as attachments in the current render pass must: Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command. not be accessed in any way other than as an attachment by this command.
@ -1763,60 +1615,20 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDrawIndexedIndirect-None-02018]]
* [[VUID-vkCmdDrawIndexedIndirect-linearTilingFeatures-00548]] If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a result of this command, then the image view's
result of this command must: be of a format which supports linear <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirect-formatFeatures-01960]]
Any slink:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirect-None-01503]] * [[VUID-vkCmdDrawIndexedIndirect-None-01503]]
Image subresources used as attachments in the current render pass must: Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command. not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDrawIndexedIndirect-None-02019]]
* [[VUID-vkCmdDrawIndexedIndirect-linearTilingFeatures-00549]] If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG as
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a a result of this command, then the image view's
result of this command must: be of a format which supports cubic <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirect-formatFeatures-01961]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: be of a format which supports cubic
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirect-None-00550]] * [[VUID-vkCmdDrawIndexedIndirect-None-00550]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: not have a elink:VkImageViewType of result of this command must: not have a elink:VkImageViewType of
@ -2051,28 +1863,20 @@ located at pname:countBufferOffset and use this as the draw count.
object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-linearTilingFeatures-03162]] * [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-02020]]
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear result of this command, then the image view's
filtering, as specified by the <<resources-image-view-format-features,format features>> must: contain
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures (for a linear
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-03163]] * [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-03163]]
Image subresources used as attachments in the current render pass must: Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command. not be accessed in any way other than as an attachment by this command.
ifdef::VK_IMG_filter_cubic[] ifdef::VK_IMG_filter_cubic[]
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-linearTilingFeatures-03172]] * [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-02021]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG as
result of this command must: be of a format which supports cubic a result of this command, then the image view's
filtering, as specified by the <<resources-image-view-format-features,format features>> must: contain
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
sname:VkFormatProperties::pname:linearTilingFeatures (for a linear
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-03173]] * [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-03173]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
result of this command must: not have a elink:VkImageViewType of result of this command must: not have a elink:VkImageViewType of
@ -2271,31 +2075,11 @@ located at pname:countBufferOffset and use this as the draw count.
object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage object bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage
buffer, it must: not access values outside of the range of that buffer buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[] * [[VUID-vkCmdDrawIndexedIndirectCountAMD-None-02022]]
* [[VUID-vkCmdDrawIndexedIndirectCountAMD-linearTilingFeatures-00577]] If a sname:VkImageView is sampled with with ename:VK_FILTER_LINEAR as a
Any sname:VkImageView being sampled with ename:VK_FILTER_LINEAR as a result of this command, then the image view's
result of this command must: be of a format which supports linear <<resources-image-view-format-features,format features>> must: contain
filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties for linearly or optimally
tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirectCountAMD-formatFeatures-01962]]
Any slink:VkImageView being sampled with ename:VK_FILTER_LINEAR as a
result of this command must: be of a format which supports linear
filtering, as specified by the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
returned by flink:vkGetAndroidHardwareBufferPropertiesANDROID for
external format images, or by
slink:VkFormatProperties::pname:linearTilingFeatures or
slink:VkFormatProperties::pname:optimalTilingFeatures returned by
flink:vkGetPhysicalDeviceFormatProperties for non-external format
linearly or optimally tiled images, respectively
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirectCountAMD-None-01504]] * [[VUID-vkCmdDrawIndexedIndirectCountAMD-None-01504]]
Image subresources used as attachments in the current render pass must: Image subresources used as attachments in the current render pass must:
not be accessed in any way other than as an attachment by this command. not be accessed in any way other than as an attachment by this command.

View File

@ -630,16 +630,13 @@ ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[]
pname:front and pname:back members of pname:pDepthStencilState must: be pname:front and pname:back members of pname:pDepthStencilState must: be
ename:VK_STENCIL_OP_KEEP ename:VK_STENCIL_OP_KEEP
endif::VK_VERSION_1_1,VK_KHR_maintenance2[] endif::VK_VERSION_1_1,VK_KHR_maintenance2[]
* [[VUID-VkGraphicsPipelineCreateInfo-subpass-00745]] * [[VUID-VkGraphicsPipelineCreateInfo-blendEnable-02023]]
If rasterization is not disabled and the subpass uses color attachments, If rasterization is not disabled and the subpass uses color attachments,
then for each color attachment in the subpass the pname:blendEnable then for each color attachment in the subpass the pname:blendEnable
member of the corresponding element of the pname:pAttachment member of member of the corresponding element of the pname:pAttachment member of
pname:pColorBlendState must: be ename:VK_FALSE if the pname:format of pname:pColorBlendState must: be ename:VK_FALSE if the attached image's
the attachment does not support color blend operations, as specified by <<resources-image-format-features,format features>> does not contain the
the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT flag in ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT.
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746]] * [[VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746]]
If rasterization is not disabled and the subpass uses color attachments, If rasterization is not disabled and the subpass uses color attachments,
the pname:attachmentCount member of pname:pColorBlendState must: be the pname:attachmentCount member of pname:pColorBlendState must: be

View File

@ -367,8 +367,8 @@ pixel.
| |
[eq]#(0.5,0.5)# [eq]#(0.5,0.5)#
| |
[eq]#(0.25,0.25)# + [eq]#(0.75,0.75)# +
[eq]#(0.75,0.75)# [eq]#(0.25,0.25)#
| |
[eq]#(0.375, 0.125)# + [eq]#(0.375, 0.125)# +
[eq]#(0.875, 0.375)# + [eq]#(0.875, 0.375)# +

View File

@ -1633,6 +1633,37 @@ include::../api/protos/vkDestroyImage.txt[]
include::../validity/protos/vkDestroyImage.txt[] include::../validity/protos/vkDestroyImage.txt[]
-- --
[[resources-image-format-features]]
=== Image Format Features
Valid usage of a slink:VkImage may: be constrained by the image's format
features, defined below.
Such constraints are documented in the affected valid usage statement.
* If the image was created with ename:VK_IMAGE_TILING_LINEAR, then its set
of _format features_ is the value of
slink:VkFormatProperties::pname:linearTilingFeatures found by calling
flink:vkGetPhysicalDeviceFormatProperties on the same pname:format as
slink:VkImageCreateInfo::pname:format.
* If the image was created with ename:VK_IMAGE_TILING_OPTIMAL,
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
but without an
<<memory-external-android-hardware-buffer-external-formats,external
format>>,
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
then its set of _format features_ is the value of
slink:VkFormatProperties::pname:optimalTilingFeatures found by calling
flink:vkGetPhysicalDeviceFormatProperties on the same pname:format as
slink:VkImageCreateInfo::pname:format.
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* If the image was created with an
<<memory-external-android-hardware-buffer-external-formats,external
format>>, then its set of _format features_ is the value of
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
found by calling flink:vkGetAndroidHardwareBufferPropertiesANDROID on
the Android hardware buffer that was imported to the
slink:VkDeviceMemory to which the image is bound.
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
[[resources-image-layouts]] [[resources-image-layouts]]
== Image Layouts == Image Layouts
@ -2812,6 +2843,38 @@ include::../api/protos/vkDestroyImageView.txt[]
include::../validity/protos/vkDestroyImageView.txt[] include::../validity/protos/vkDestroyImageView.txt[]
-- --
[[resources-image-view-format-features]]
=== Image View Format Features
Valid usage of a slink:VkImageView may: be constrained by the image view's
format features, defined below.
Such constraints are documented in the affected valid usage statement.
* If the view's image was created with ename:VK_IMAGE_TILING_LINEAR, then
the image view's set of _format features_ is the value of
slink:VkFormatProperties::pname:linearTilingFeatures found by calling
flink:vkGetPhysicalDeviceFormatProperties on the same pname:format as
slink:VkImageViewCreateInfo::pname:format.
* If the view's image was created with ename:VK_IMAGE_TILING_OPTIMAL,
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
but without an
<<memory-external-android-hardware-buffer-external-formats,external
format>>,
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
then the image view's set of _format features_ is the value of
slink:VkFormatProperties::pname:optimalTilingFeatures found by calling
flink:vkGetPhysicalDeviceFormatProperties on the same pname:format as
slink:VkImageViewCreateInfo::pname:format.
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* If the view's image was created with an
<<memory-external-android-hardware-buffer-external-formats,external
format>>, then the image views's set of _format features_ is the value
of
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
found by calling flink:vkGetAndroidHardwareBufferPropertiesANDROID on
the Android hardware buffer that was imported to the
slink:VkDeviceMemory to which the image is bound.
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
[[resources-association]] [[resources-association]]
== Resource Memory Association == Resource Memory Association

View File

@ -3414,33 +3414,26 @@ framebuffer-space>> pipeline stages is
feature is not enabled, pname:dstStageMask must: not contain feature is not enabled, pname:dstStageMask must: not contain
ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or
ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
* [[VUID-vkCmdPipelineBarrier-pDependencies-01172]] * [[VUID-vkCmdPipelineBarrier-pDependencies-02024]]
If fname:vkCmdPipelineBarrier is called within a render pass instance, If fname:vkCmdPipelineBarrier is called within a render pass instance,
the render pass must: have been created with a sname:VkSubpassDependency the render pass must: have been created with at least one
instance in pname:pDependencies that expresses a dependency from the sname:VkSubpassDependency instance in
current subpass to itself. sname:VkRenderPassCreateInfo::pname:pDependencies that expresses a
* [[VUID-vkCmdPipelineBarrier-srcStageMask-01173]] dependency from the current subpass to itself, and for which
If fname:vkCmdPipelineBarrier is called within a render pass instance, pname:srcStageMask contains a subset of the bit values in
pname:srcStageMask must: contain a subset of the bit values in the sname:VkSubpassDependency::pname:srcStageMask, pname:dstStageMask
pname:srcStageMask member of that instance of sname:VkSubpassDependency contains a subset of the bit values in
* [[VUID-vkCmdPipelineBarrier-dstStageMask-01174]] sname:VkSubpassDependency::pname:dstStageMask, and pname:dependencyFlags
If fname:vkCmdPipelineBarrier is called within a render pass instance, is equal to sname:VkSubpassDependency::pname:dependencyFlags.
pname:dstStageMask must: contain a subset of the bit values in the * If fname:vkCmdPipelineBarrier is called within a render pass instance,
pname:dstStageMask member of that instance of sname:VkSubpassDependency for each element of pname:pMemoryBarriers and
* [[VUID-vkCmdPipelineBarrier-srcAccessMask-01175]] pname:pImageMemoryBarriers, the render pass must: have been defined with
If fname:vkCmdPipelineBarrier is called within a render pass instance, a sname:VkSubpassDependency self-dependency for the current subpass with
the pname:srcAccessMask of any element of pname:pMemoryBarriers or valid pname:srcStageMask, pname:dstStageMask, and pname:dependencyFlags
pname:pImageMemoryBarriers must: contain a subset of the bit values the values such that stext:Vk*Barrier::pname:srcAccessMask contains a subset
pname:srcAccessMask member of that instance of sname:VkSubpassDependency of the bit values in sname:VkSubpassDependency::pname:srcAccessMask and
* [[VUID-vkCmdPipelineBarrier-dstAccessMask-01176]] stext:Vk*Barrier::pname:dstAccessMask contains a subset of the bit
If fname:vkCmdPipelineBarrier is called within a render pass instance, values in sname:VkSubpassDependency::pname:dstAccessMask.
the pname:dstAccessMask of any element of pname:pMemoryBarriers or
pname:pImageMemoryBarriers must: contain a subset of the bit values the
pname:dstAccessMask member of that instance of sname:VkSubpassDependency
* [[VUID-vkCmdPipelineBarrier-dependencyFlags-01177]]
If fname:vkCmdPipelineBarrier is called within a render pass instance,
pname:dependencyFlags must: be equal to the pname:dependencyFlags member
of that instance of sname:VkSubpassDependency
* [[VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178]] * [[VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178]]
If fname:vkCmdPipelineBarrier is called within a render pass instance, If fname:vkCmdPipelineBarrier is called within a render pass instance,
pname:bufferMemoryBarrierCount must: be `0` pname:bufferMemoryBarrierCount must: be `0`
@ -4120,6 +4113,8 @@ An acquire operation is defined by executing a
buffer range) or an <<synchronization-image-memory-barriers, image memory buffer range) or an <<synchronization-image-memory-barriers, image memory
barrier>> (for an image subresource range), on a queue from the destination barrier>> (for an image subresource range), on a queue from the destination
queue family. queue family.
The buffer range or image subresource range specified in an acquire
operation must: match exactly that of a previous release operation.
The pname:srcQueueFamilyIndex parameter of the barrier must: be set to the The pname:srcQueueFamilyIndex parameter of the barrier must: be set to the
source queue family index, and the pname:dstQueueFamilyIndex parameter to source queue family index, and the pname:dstQueueFamilyIndex parameter to
the destination queue family index. the destination queue family index.

View File

@ -43,7 +43,7 @@ extern "C" {
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file // Version of this file
#define VK_HEADER_VERSION 81 #define VK_HEADER_VERSION 82
#define VK_NULL_HANDLE 0 #define VK_NULL_HANDLE 0
@ -406,6 +406,8 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
@ -7760,6 +7762,38 @@ typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
#define VK_NV_device_diagnostic_checkpoints 1
#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
typedef struct VkQueueFamilyCheckpointPropertiesNV {
VkStructureType sType;
void* pNext;
VkPipelineStageFlags checkpointExecutionStageMask;
} VkQueueFamilyCheckpointPropertiesNV;
typedef struct VkCheckpointDataNV {
VkStructureType sType;
void* pNext;
VkPipelineStageFlagBits stage;
void* pCheckpointMarker;
} VkCheckpointDataNV;
typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
VkCommandBuffer commandBuffer,
const void* pCheckpointMarker);
VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
VkQueue queue,
uint32_t* pCheckpointDataCount,
VkCheckpointDataNV* pCheckpointData);
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -1,2 +1,2 @@
# The value to start tagging VU statements at, unless overridden by -nextvu # The value to start tagging VU statements at, unless overridden by -nextvu
startVUID = 1993 startVUID = 2026

View File

@ -72,6 +72,7 @@ server.
<tag name="KDAB" author="KDAB" contact="Sean Harmer @seanharmer"/> <tag name="KDAB" author="KDAB" contact="Sean Harmer @seanharmer"/>
<tag name="ANDROID" author="Google, Inc." contact="Jesse Hall @critsec"/> <tag name="ANDROID" author="Google, Inc." contact="Jesse Hall @critsec"/>
<tag name="CHROMIUM" author="Google, Inc." contact="Jesse Hall @critsec"/> <tag name="CHROMIUM" author="Google, Inc." contact="Jesse Hall @critsec"/>
<tag name="FUCHSIA" author="Google, Inc." contact="Craig Stout @cdotstout, Jesse Hall @critsec"/>
<tag name="GOOGLE" author="Google, Inc." contact="Jesse Hall @critsec"/> <tag name="GOOGLE" author="Google, Inc." contact="Jesse Hall @critsec"/>
<tag name="QCOM" author="Qualcomm Technologies, Inc." contact="Maurice Ribble @mribble"/> <tag name="QCOM" author="Qualcomm Technologies, Inc." contact="Maurice Ribble @mribble"/>
<tag name="LUNARG" author="LunarG, Inc." contact="Karen Ghavam @karenghavam-lunarg"/> <tag name="LUNARG" author="LunarG, Inc." contact="Karen Ghavam @karenghavam-lunarg"/>
@ -146,7 +147,7 @@ server.
<type category="define">// Vulkan 1.1 version number <type category="define">// Vulkan 1.1 version number
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type> #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file <type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 81</type> #define <name>VK_HEADER_VERSION</name> 82</type>
<type category="define"> <type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -3198,6 +3199,17 @@ server.
<member><type>VkBool32</type> <name>conditionalRendering</name></member> <member><type>VkBool32</type> <name>conditionalRendering</name></member>
<member><type>VkBool32</type> <name>inheritedConditionalRendering</name></member> <member><type>VkBool32</type> <name>inheritedConditionalRendering</name></member>
</type> </type>
<type category="struct" name="VkQueueFamilyCheckpointPropertiesNV" structextends="VkQueueFamilyProperties2" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkPipelineStageFlags</type> <name>checkpointExecutionStageMask</name></member>
</type>
<type category="struct" name="VkCheckpointDataNV" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkPipelineStageFlagBits</type> <name>stage</name></member>
<member noautovalidity="true"><type>void</type>* <name>pCheckpointMarker</name></member>
</type>
</types> </types>
<comment>Vulkan enumerant (token) definitions</comment> <comment>Vulkan enumerant (token) definitions</comment>
@ -6239,6 +6251,17 @@ server.
<param><type>uint32_t</type> <name>maxDrawCount</name></param> <param><type>uint32_t</type> <name>maxDrawCount</name></param>
<param><type>uint32_t</type> <name>stride</name></param> <param><type>uint32_t</type> <name>stride</name></param>
</command> </command>
<command queues="graphics,compute,transfer" renderpass="both" cmdbufferlevel="primary,secondary">
<proto><type>void</type> <name>vkCmdSetCheckpointNV</name></proto>
<param><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
<param noautovalidity="true">const <type>void</type>* <name>pCheckpointMarker</name></param>
</command>
<command>
<proto><type>void</type> <name>vkGetQueueCheckpointDataNV</name></proto>
<param><type>VkQueue</type> <name>queue</name></param>
<param optional="false,true"><type>uint32_t</type>* <name>pCheckpointDataCount</name></param>
<param optional="true" len="pCheckpointDataCount"><type>VkCheckpointDataNV</type>* <name>pCheckpointData</name></param>
</command>
</commands> </commands>
<feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions"> <feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
@ -8960,10 +8983,16 @@ server.
<enum value="&quot;VK_NV_extension_206&quot;" name="VK_NV_EXTENSION_206_EXTENSION_NAME"/> <enum value="&quot;VK_NV_extension_206&quot;" name="VK_NV_EXTENSION_206_EXTENSION_NAME"/>
</require> </require>
</extension> </extension>
<extension name="VK_NV_extension_207" number="207" author="NV" contact="Nuno Subtil @nsubtil" supported="disabled"> <extension name="VK_NV_device_diagnostic_checkpoints" type="device" number="207" requires="VK_KHR_get_physical_device_properties2" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="vulkan">
<require> <require>
<enum value="0" name="VK_NV_EXTENSION_207_SPEC_VERSION"/> <enum value="2" name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION"/>
<enum value="&quot;VK_NV_extension_207&quot;" name="VK_NV_EXTENSION_207_EXTENSION_NAME"/> <enum value="&quot;VK_NV_device_diagnostic_checkpoints&quot;" name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"/>
<type name="VkQueueFamilyCheckpointPropertiesNV"/>
<type name="VkCheckpointDataNV"/>
<command name="vkCmdSetCheckpointNV"/>
<command name="vkGetQueueCheckpointDataNV"/>
</require> </require>
</extension> </extension>
<extension name="VK_KHR_extension_208" number="208" type="device" author="KHR" contact="Daniel Rakos @drakos-arm" supported="disabled"> <extension name="VK_KHR_extension_208" number="208" type="device" author="KHR" contact="Daniel Rakos @drakos-arm" supported="disabled">