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
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 81
PATCHVERSION = 82
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
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
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::
A value that is interpreted according to its conventional
interpretation, and is not normalized.

View File

@ -543,6 +543,38 @@ instructions:
The precision of double-precision instructions is at least that of single
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
at least as follows, unless decorated with RelaxedPrecision:
@ -593,7 +625,7 @@ additional functionality beyond what code:OpUMod provides.
[[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
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
****
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdClearColorImage-image-00001]]
pname:image must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_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
* [[VUID-vkCmdClearColorImage-image-01993]]
The <<resources-image-format-features,format features>> of pname:image
must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
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]]
pname:image must: have been created with
ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
@ -163,29 +145,11 @@ include::../api/protos/vkCmdClearDepthStencilImage.txt[]
.Valid Usage
****
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdClearDepthStencilImage-image-00008]]
pname:image must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_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
* [[VUID-vkCmdClearDepthStencilImage-image-01994]]
The <<resources-image-format-features,format features>> of pname:image
must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
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]]
pname:image must: have been created with
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
pname:pSubmits must: have been allocated from a sname:VkCommandPool that
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[]

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
layout.
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* Source images must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_SRC_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
* 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
* Source images must: have ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT in
their <<resources-image-format-features,format features>>.
* Destination images must: have ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT
in their <<resources-image-format-features,format features>>.
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
* Source images must: have been created with the
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
regions, specified by the elements of pname:pRegions, must: not overlap
in memory
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdCopyImage-srcImage-00125]]
pname:srcImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_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
* [[VUID-vkCmdCopyImage-srcImage-01995]]
The <<resources-image-format-features,format features>> of
pname:srcImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT.
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]]
pname:srcImage must: have been created with
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_SHARED_PRESENT_KHR
endif::VK_KHR_shared_presentable_image[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdCopyImage-dstImage-00130]]
pname:dstImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_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
* [[VUID-vkCmdCopyImage-dstImage-01996]]
The <<resources-image-format-features,format features>> of
pname:dstImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
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]]
pname:dstImage must: have been created with
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]]
pname:srcBuffer must: have been created with
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[]
* [[VUID-vkCmdCopyBufferToImage-dstImage-00175]]
pname:dstImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_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
* [[VUID-vkCmdCopyBufferToImage-dstImage-01997]]
The <<resources-image-format-features,format features>> of
pname:dstImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT.
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]]
If pname:srcBuffer is non-sparse then it must: be bound completely and
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
regions, specified by the elements of pname:pRegions, must: not overlap
in memory
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-vkCmdCopyImageToBuffer-srcImage-00185]]
pname:srcImage must: use a format that supports
ename:VK_FORMAT_FEATURE_TRANSFER_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
* [[VUID-vkCmdCopyImageToBuffer-srcImage-01998]]
The <<resources-image-format-features,format features>> of
pname:srcImage must: contain ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT.
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]]
pname:srcImage must: have been created with
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
pname:pRegions, must: not overlap in memory with any texel that may: be
sampled during the blit operation
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-srcImage-00218]]
pname:srcImage must: use a format that supports
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[]
* [[VUID-vkCmdBlitImage-srcImage-01999]]
The <<resources-image-format-features,format features>> of
pname:srcImage must: contain ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT.
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-vkCmdBlitImage-srcImage-01561]]
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_GENERAL
endif::VK_KHR_shared_presentable_image[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-dstImage-00223]]
pname:dstImage must: use a format that supports
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[]
* [[VUID-vkCmdBlitImage-dstImage-02000]]
The <<resources-image-format-features,format features>> of
pname:dstImage must: contain ename:VK_FORMAT_FEATURE_BLIT_DST_BIT.
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
* [[VUID-vkCmdBlitImage-dstImage-01562]]
pname:dstImage must: not use a format listed in
@ -1716,53 +1590,16 @@ endif::VK_KHR_shared_presentable_image[]
* [[VUID-vkCmdBlitImage-dstImage-00234]]
pname:dstImage must: have been created with a pname:samples value of
ename:VK_SAMPLE_COUNT_1_BIT
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-filter-00235]]
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
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[]
* [[VUID-vkCmdBlitImage-filter-02001]]
If pname:filter is ename:VK_FILTER_LINEAR, then the
<<resources-image-format-features,format features>> of pname:srcImage
must: contain ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdBlitImage-filter-00236]]
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
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-02002]]
If pname:filter is ename:VK_FILTER_CUBIC_IMG, then the
<<resources-image-format-features,format features>> of pname:srcImage
must: contain
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
* [[VUID-vkCmdBlitImage-filter-00237]]
If pname:filter is ename:VK_FILTER_CUBIC_IMG, pname:srcImage must: have
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_GENERAL
endif::VK_KHR_shared_presentable_image[]
* [[VUID-vkCmdResolveImage-dstImage-00264]]
If pname:dstImage was created with pname:tiling equal to
ename:VK_IMAGE_TILING_LINEAR, 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: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-dstImage-02003]]
The <<resources-image-format-features,format features>> of
pname:dstImage must: contain
ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT.
* [[VUID-vkCmdResolveImage-srcImage-01386]]
pname:srcImage and pname:dstImage must: have been created with the same
image format

View File

@ -86,3 +86,7 @@ endif::VK_EXT_debug_marker[]
ifdef::VK_EXT_debug_report[]
include::VK_EXT_debug_report.txt[]
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 mapping of each type to SPIR-V is listed in the
<<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
<<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
operations can: be performed on.
Storage image loads are supported in all shader stages for image formats
which report support for the
<<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).
Storage image loads are supported in all shader stages for image views whose
<<resources-image-view-format-features,format features>> contain
<<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT>>.
Stores to storage images are supported in compute shaders for image formats
which report support for the ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
feature 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 views
whose <<resources-image-view-format-features,format features>> contain
<<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT>>.
Atomic operations on storage images are supported in compute shaders for
image formats which report support for the
<<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT>>
feature via flink:vkGetPhysicalDeviceFormatProperties in
slink:VkFormatProperties::pname:linearTilingFeatures (for images with linear
tiling) or slink:VkFormatProperties::pname:optimalTilingFeatures (for images
with optimal tiling).
image views whose <<resources-image-view-format-features,format features>>
contain
<<features-formats-properties,ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT>>.
When the <<features-features-fragmentStoresAndAtomics,
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
sampling operations.
Sampled images are supported in all shader stages for image formats which
report support for the
<<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).
Sampled images are supported in all shader stages for image views whose
<<resources-image-view-format-features,format features>> contain
<<features-formats-properties,ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT>>.
The image subresources for a sampled image must: be in the
ifdef::VK_KHR_shared_presentable_image[]
@ -1603,6 +1589,11 @@ include::../api/protos/vkDestroyPipelineLayout.txt[]
* [[VUID-vkDestroyPipelineLayout-pipelineLayout-00300]]
If no sname:VkAllocationCallbacks were provided when
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[]

View File

@ -618,8 +618,11 @@ endif::VK_KHR_get_physical_device_properties2[]
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]]
== Devices

View File

@ -99,57 +99,17 @@ is assembled.
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
specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatch-linearTilingFeatures-00398]]
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-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[]
* [[VUID-vkCmdDispatch-None-02005]]
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[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatch-linearTilingFeatures-00399]]
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
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-02006]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG 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_CUBIC_BIT_IMG.
* [[VUID-vkCmdDispatch-None-00400]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
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
buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatchIndirect-linearTilingFeatures-00414]]
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-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[]
* [[VUID-vkCmdDispatchIndirect-None-02007]]
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[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDispatchIndirect-linearTilingFeatures-00415]]
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
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-02008]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG 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_CUBIC_BIT_IMG.
* [[VUID-vkCmdDispatchIndirect-None-00416]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
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
buffer, it must: not access values outside of the range of that buffer
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]]
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.
* [[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[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDraw-linearTilingFeatures-00451]]
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
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-02010]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG 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_CUBIC_BIT_IMG.
* [[VUID-vkCmdDraw-None-00452]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
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
buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexed-linearTilingFeatures-00470]]
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-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-02011]]
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.
* [[VUID-vkCmdDrawIndexed-None-01500]]
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.
ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexed-linearTilingFeatures-00471]]
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
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-02012]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG 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_CUBIC_BIT_IMG.
* [[VUID-vkCmdDrawIndexed-None-00472]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
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
buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirect-linearTilingFeatures-00496]]
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-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-02013]]
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.
* [[VUID-vkCmdDrawIndirect-None-01501]]
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.
ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirect-linearTilingFeatures-00497]]
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
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-02014]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG 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_CUBIC_BIT_IMG.
* [[VUID-vkCmdDrawIndirect-None-00498]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
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
buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set
* [[VUID-vkCmdDrawIndirectCountKHR-linearTilingFeatures-03130]]
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 (for a linear
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndirectCountKHR-None-02015]]
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.
* [[VUID-vkCmdDrawIndirectCountKHR-None-03131]]
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.
ifdef::VK_IMG_filter_cubic[]
* [[VUID-vkCmdDrawIndirectCountKHR-linearTilingFeatures-03169]]
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
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-02016]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG 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_CUBIC_BIT_IMG.
* [[VUID-vkCmdDrawIndirectCountKHR-None-03170]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
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
buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndirectCountAMD-linearTilingFeatures-00524]]
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-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-02017]]
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.
* [[VUID-vkCmdDrawIndirectCountAMD-None-01502]]
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.
@ -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
buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirect-linearTilingFeatures-00548]]
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-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-02018]]
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.
* [[VUID-vkCmdDrawIndexedIndirect-None-01503]]
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.
ifdef::VK_IMG_filter_cubic[]
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirect-linearTilingFeatures-00549]]
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
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-02019]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG 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_CUBIC_BIT_IMG.
* [[VUID-vkCmdDrawIndexedIndirect-None-00550]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
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
buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-linearTilingFeatures-03162]]
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 (for a linear
image) or sname:VkFormatProperties::pname:optimalTilingFeatures(for an
optimally tiled image) returned by
fname:vkGetPhysicalDeviceFormatProperties
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-02020]]
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.
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-03163]]
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.
ifdef::VK_IMG_filter_cubic[]
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-linearTilingFeatures-03172]]
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
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-02021]]
If a sname:VkImageView is sampled with with ename:VK_FILTER_CUBIC_IMG 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_CUBIC_BIT_IMG.
* [[VUID-vkCmdDrawIndexedIndirectCountKHR-None-03173]]
Any slink:VkImageView being sampled with ename:VK_FILTER_CUBIC_IMG as a
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
buffer, it must: not access values outside of the range of that buffer
specified in the bound descriptor set
ifndef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-vkCmdDrawIndexedIndirectCountAMD-linearTilingFeatures-00577]]
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-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-02022]]
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.
* [[VUID-vkCmdDrawIndexedIndirectCountAMD-None-01504]]
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.

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
ename:VK_STENCIL_OP_KEEP
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,
then for each color attachment in the subpass the pname:blendEnable
member of the corresponding element of the pname:pAttachment member of
pname:pColorBlendState must: be ename:VK_FALSE if the pname:format of
the attachment does not support color blend operations, as specified by
the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT flag in
sname:VkFormatProperties::pname:linearTilingFeatures or
sname:VkFormatProperties::pname:optimalTilingFeatures returned by
fname:vkGetPhysicalDeviceFormatProperties
pname:pColorBlendState must: be ename:VK_FALSE if the attached image's
<<resources-image-format-features,format features>> does not contain the
ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT.
* [[VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746]]
If rasterization is not disabled and the subpass uses color attachments,
the pname:attachmentCount member of pname:pColorBlendState must: be

View File

@ -367,8 +367,8 @@ pixel.
|
[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.875, 0.375)# +

View File

@ -1633,6 +1633,37 @@ include::../api/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]]
== Image Layouts
@ -2812,6 +2843,38 @@ include::../api/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]]
== Resource Memory Association

View File

@ -3414,33 +3414,26 @@ framebuffer-space>> pipeline stages is
feature is not enabled, pname:dstStageMask must: not contain
ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or
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,
the render pass must: have been created with a sname:VkSubpassDependency
instance in pname:pDependencies that expresses a dependency from the
current subpass to itself.
* [[VUID-vkCmdPipelineBarrier-srcStageMask-01173]]
If fname:vkCmdPipelineBarrier is called within a render pass instance,
pname:srcStageMask must: contain a subset of the bit values in the
pname:srcStageMask member of that instance of sname:VkSubpassDependency
* [[VUID-vkCmdPipelineBarrier-dstStageMask-01174]]
If fname:vkCmdPipelineBarrier is called within a render pass instance,
pname:dstStageMask must: contain a subset of the bit values in the
pname:dstStageMask member of that instance of sname:VkSubpassDependency
* [[VUID-vkCmdPipelineBarrier-srcAccessMask-01175]]
If fname:vkCmdPipelineBarrier is called within a render pass instance,
the pname:srcAccessMask of any element of pname:pMemoryBarriers or
pname:pImageMemoryBarriers must: contain a subset of the bit values the
pname:srcAccessMask member of that instance of sname:VkSubpassDependency
* [[VUID-vkCmdPipelineBarrier-dstAccessMask-01176]]
If fname:vkCmdPipelineBarrier is called within a render pass instance,
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
the render pass must: have been created with at least one
sname:VkSubpassDependency instance in
sname:VkRenderPassCreateInfo::pname:pDependencies that expresses a
dependency from the current subpass to itself, and for which
pname:srcStageMask contains a subset of the bit values in
sname:VkSubpassDependency::pname:srcStageMask, pname:dstStageMask
contains a subset of the bit values in
sname:VkSubpassDependency::pname:dstStageMask, and pname:dependencyFlags
is equal to sname:VkSubpassDependency::pname:dependencyFlags.
* If fname:vkCmdPipelineBarrier is called within a render pass instance,
for each element of pname:pMemoryBarriers and
pname:pImageMemoryBarriers, the render pass must: have been defined with
a sname:VkSubpassDependency self-dependency for the current subpass with
valid pname:srcStageMask, pname:dstStageMask, and pname:dependencyFlags
values such that stext:Vk*Barrier::pname:srcAccessMask contains a subset
of the bit values in sname:VkSubpassDependency::pname:srcAccessMask and
stext:Vk*Barrier::pname:dstAccessMask contains a subset of the bit
values in sname:VkSubpassDependency::pname:dstAccessMask.
* [[VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178]]
If fname:vkCmdPipelineBarrier is called within a render pass instance,
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
barrier>> (for an image subresource range), on a queue from the destination
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
source queue family index, and the pname:dstQueueFamilyIndex parameter to
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_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file
#define VK_HEADER_VERSION 81
#define VK_HEADER_VERSION 82
#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_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
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_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,
@ -7760,6 +7762,38 @@ typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
#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
}
#endif

View File

@ -1,2 +1,2 @@
# 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="ANDROID" 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="QCOM" author="Qualcomm Technologies, Inc." contact="Maurice Ribble @mribble"/>
<tag name="LUNARG" author="LunarG, Inc." contact="Karen Ghavam @karenghavam-lunarg"/>
@ -146,7 +147,7 @@ server.
<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>
<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">
#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>inheritedConditionalRendering</name></member>
</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>
<comment>Vulkan enumerant (token) definitions</comment>
@ -3725,7 +3737,7 @@ server.
<enum value="-10" name="VK_ERROR_TOO_MANY_OBJECTS" comment="Too many objects of the type have already been created"/>
<enum value="-11" name="VK_ERROR_FORMAT_NOT_SUPPORTED" comment="Requested format is not supported on this device"/>
<enum value="-12" name="VK_ERROR_FRAGMENTED_POOL" comment="A requested pool allocation has failed due to fragmentation of the pool's memory"/>
<unused start="-13" comment="This is the next unused available error code (negative value)"/>
<unused start="-13" comment="This is the next unused available error code (negative value)"/>
</enums>
<enums name="VkDynamicState" type="enum">
<enum value="0" name="VK_DYNAMIC_STATE_VIEWPORT"/>
@ -6239,6 +6251,17 @@ server.
<param><type>uint32_t</type> <name>maxDrawCount</name></param>
<param><type>uint32_t</type> <name>stride</name></param>
</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>
<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"/>
</require>
</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>
<enum value="0" name="VK_NV_EXTENSION_207_SPEC_VERSION"/>
<enum value="&quot;VK_NV_extension_207&quot;" name="VK_NV_EXTENSION_207_EXTENSION_NAME"/>
<enum value="2" name="VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION"/>
<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>
</extension>
<extension name="VK_KHR_extension_208" number="208" type="device" author="KHR" contact="Daniel Rakos @drakos-arm" supported="disabled">