Change log for July 1, 2018 Vulkan 1.1.79 spec update:

* Update release number to 79.

Public Issues:

  * Add a note to the <<features-required-format-support, Required Format
    Support>> section clarifying that the required formats don't depend on
    the used flags (public issue 671).
  * Add a valid usage statement for flink:vkUpdateDescriptors that was
    previously described for slink:VkImageSubresourceRange, but not as a
    valid usage statement (public issue 713).
  * Modify implicit valid usage generator script to not emit 'must: not be
    0' for a parameter that is a pointer to a flags field, such as
    pname:pPeerMemoryFeatures (public issue 729).

Internal Issues:

  * Add definitions of "`obsoleted`" and "`deprecated`", and modify the
    definition of "`promoted`" in the <<glossary, Glossary>> (internal issue
    988).
  * Add language for integer texel output conversions (the conversion is
    undefined) to the <<textures-output-format-conversion]] Texel Output
    Format Conversion>> section. Simplify and clarify the floating-point
    conversion language in the <<fundamentals-general, General
    Requirements>> section and the new <<fundamentals-fp-conversion,
    Floating-Point Format Conversions>> section, and remove obsolete
    language in the format-specific floating-point sections (internal issue
    1275).
  * Add the elink:VkVendorId enumerated type to the Vulkan API / XML /
    header, so reserved Khronos vendor IDs can be referred to symbolically
    by clients. Note that only Khronos vendor IDs (e.g. non-PCI vendor IDs)
    are defined (internal issue 1299).
  * Fix typo in the <<fig-non-strict-lines, Non strict lines>> table
    (internal issue 1315).
  * Clean up and simplify the
    <<features-formats-requiring-sampler-ycbcr-conversion, YCbCr format
    properties>> table and use symbols consistently with other tables. Add a
    column for the number of planes.
  * Add code:Float16 to the <<spirvenv-capabilities-table, List of optional
    SPIR-V capabilities>> for the `VK_AMD_gpu_shader_half_float` extension.
This commit is contained in:
Jon Leech 2018-07-01 21:26:49 -07:00
parent 07d059c798
commit ff9357a4ba
22 changed files with 439 additions and 200 deletions

View File

@ -8,6 +8,242 @@ public pull requests that have been accepted.
-----------------------------------------------------
Change log for July 1, 2018 Vulkan 1.1.79 spec update:
* Update release number to 79.
Public Issues:
* Add a note to the <<features-required-format-support, Required Format
Support>> section clarifying that the required formats don't depend on
the used flags (public issue 671).
* Add a valid usage statement for flink:vkUpdateDescriptors that was
previously described for slink:VkImageSubresourceRange, but not as a
valid usage statement (public issue 713).
* Modify implicit valid usage generator script to not emit 'must: not be
0' for a parameter that is a pointer to a flags field, such as
pname:pPeerMemoryFeatures (public issue 729).
Internal Issues:
* Add definitions of "`obsoleted`" and "`deprecated`", and modify the
definition of "`promoted`" in the <<glossary, Glossary>> (internal issue
988).
* Add language for integer texel output conversions (the conversion is
undefined) to the <<textures-output-format-conversion]] Texel Output
Format Conversion>> section. Simplify and clarify the floating-point
conversion language in the <<fundamentals-general, General
Requirements>> section and the new <<fundamentals-fp-conversion,
Floating-Point Format Conversions>> section, and remove obsolete
language in the format-specific floating-point sections (internal issue
1275).
* Add the elink:VkVendorId enumerated type to the Vulkan API / XML /
header, so reserved Khronos vendor IDs can be referred to symbolically
by clients. Note that only Khronos vendor IDs (e.g. non-PCI vendor IDs)
are defined (internal issue 1299).
* Fix typo in the <<fig-non-strict-lines, Non strict lines>> table
(internal issue 1315).
* Clean up and simplify the
<<features-formats-requiring-sampler-ycbcr-conversion, YCbCr format
properties>> table and use symbols consistently with other tables. Add a
column for the number of planes.
* Add code:Float16 to the <<spirvenv-capabilities-table, List of optional
SPIR-V capabilities>> for the `VK_AMD_gpu_shader_half_float` extension.
-----------------------------------------------------
Change log for June 18, 2018 Vulkan 1.1.78 spec update:
* Update release number to 78.
Public Issues:
* Change markup so parameter descriptions include links to structures,
instead of just their names (public issue 697).
* Resume publishing updated Vulkan 1.0 + KHR extensions and Vulkan 1.0 +
all extensions versions of the specification (public issue 722).
* Reapply fixes from public pull request 698 for
`VK_ANDROID_external_memory_android_hardware_buffer`, which accidentally
were reverted at some point (public pull request 724).
* Fix undefined format valid usage statements for slink:VkImageCreateInfo
in the presence of the
`VK_ANDROID_external_memory_android_hardware_buffer` extension (public
pull request 725).
* Miscellaneous markup consistency fixes (public pull request 728).
Internal Issues:
* When building specifications containing vendor extensions, add terms to
the Khronos spec copyright specifying that the result is not a ratified
specification (internal issue 739).
* Change the value of the
pname:maxDescriptorSetUpdateAfterBindUniformBuffers minimum limit to 72
(6 times pname:maxPerStageDescriptorUpdateAfterBindUniformBuffers) in
the <<features-limits-required, Required Limits>> table (internal issue
1300).
Other Issues:
* Fix link to resource image view compatibility table in the valid usage
statements for slink:VkImageFormatListCreateInfoKHR (internal pull
request 2711).
-----------------------------------------------------
Change log for June 10, 2018 Vulkan 1.1.77 spec update:
* Update release number to 77.
Public Issues:
* Remove redundant asciidoctor ifdef in slink:VkDeviceCreateInfo valid
usage statement (public pull request 718).
Internal Issues:
* Require that the returned slink:VkMemoryRequirements::pname:alignment
reflect the minimum alignment requirements for the buffer's usages, and
make dynamic offset alignment valid usage more explicit for
flink:vkBindBufferMemory and flink:vkCmdBindDescriptorSets (internal
issue 1170).
* Explicitly state that objects of type code:OpTypeImage,
code:OpTypeSampler, and code:OpTypeSampledImage must not be stored to in
the <<spirvenv-module-validation, Validation Rules within a Module>>
section (internal issue 1262).
* Clarify rules about validating descriptor set/binding against storage
class and descriptor type in the <<spirvenv-module-validation,
Validation Rules within a Module>> section, and add an anchor for and
references to the <<interfaces-resources-storage-class-correspondence,
Shader Resource and Storage Class Correspondence>> table (internal issue
1266).
* Use correct spelling of SPIR-V decoration code:NonWritable in several
places (internal issue 1298).
Other Issues:
* Update specification links to files in the old
KhronosGroup/Vulkan-LoaderAndValidationLayers repository with
corresponding links into the new repositories that replace it.
* Move validity requirement for slink:VkSamplerCreateInfo into the valid
usage block instead of the body text, and give it a VUID.
* Use the full name of the "`style guide`" in a reference in the
description of slink:vkGetPhysicalDeviceProperties, update the
<<vulkan-styleguide, link to that document>>, and use the the full name
in the registry index page.
-----------------------------------------------------
Change log for May 25, 2018 Vulkan 1.1.76 spec update:
* Update release number to 76.
Internal Issues:
* Add an exception clause to the license on `vk.xml`, enabling its use
with GPL-based projects (internal issue 1017).
* Remove the generated `vulkan_ext.[ch]` files, which are no longer
supported. Add `src/ext_loader/README.md` explaining why, and update
files in `xml/` to not generate them by default (internal issue 1268)
Other Issues:
* Fix typos in valid usage statements for the
ftext:vkDrawIndexedIndirectCount* commands, replacing
sizeof(VkDrawIndirectComment) with sizeof(VkDrawIndexedIndirectCommand).
* Modify the <<spirvenv-module-validation, Validation Rules within a
Module>> section to require code:NonReadable or code:NonWriteable in
SPIR-V code for images with an image format of code:Unknown if one of
the requisite code:shaderImageReadWithoutFormat or
code:shaderImageWriteWithoutFormat features is disabled.
New Extensions:
* `VK_KHR_get_display_properties2`
* `VK_KHR_draw_indirect_count`
-----------------------------------------------------
Change log for May 16, 2018 Vulkan 1.1.75 spec update:
* Update release number to 75.
Github Issues:
* Use Github handles (e.g. @handle) for contact information in vk.xml,
when available (partial fix for public issue 630).
* Add size invariance guarantee to slink:VkMemoryRequirements for
buffer/image memory requirements (public issue 661).
* Correct scope (conditional constructs) in valid usage statement for
slink:VkBindImageMemoryInfo (public pull request 684).
* Clean up minor markup issues and typos in the
`VK_ANDROID_external_memory_android_hardware_buffer` extension appendix
(public pull request 698).
* Modify registry processing script to avoid irrelevant warnings of benign
enumerant redefinitions (public pull request 705).
* Fix some duplicate words and some misspelled "`stagess`" (public pull
request 712)
Internal Issues:
* Enable continuous integration tests on the internal Khronos gitlab
server by adding a .gitlab-ci.yml file. Note: this does not implement CI
on the public Github repository (internal issue 408).
* Add link from description of depth clamping in the <<fragops-depth,
depth test>> section to the
slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable
parameter which enables it, making it easily searchable / findable
(internal issue 1125).
* Clarify that arrays of arrays of descriptors are not allowed in the
<<interfaces-resources-descset, Descriptor Set Interface>> and
<<interfaces-resources-setandbinding, DescriptorSet and Binding
Assignment>> sections (internal issue 1192).
* Comment out some redundant nested asciidoctor conditionals in the
slink:VkImageViewCreateInfo valid usage block, and explain in all cases
why the redundant conditional exist and are commented out (internal
issue 1231).
* Move a valid usage statement from slink:VkCommandPoolCreateInfo to the
parent flink:vkCreateCommandPool, where the device queue is known
(internal issue 1233).
* Add new slink:VkBaseInStructure and slink:VkBaseOutStructure types which
can be used by extensions and implementations for handling Vulkan
sType/pNext style structures in a more generic way (internal issue
1265).
* Clarify that
slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
only applies to external-format images. Add references to this in valid
usage statements that previously only referred to
slink:VkFormatProperties (internal issue 1244).
* Fix the description of elink:VkPipelineCreateFlagBits enumerant
ename:VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT to match the
name (internal issue 1279).
* Add a NOTE to the <<interfaces-resources-setandbinding, DescriptorSet
and Binding Assignment>> section making it clear that variables sharing
a storage class may use identical descriptor set and bindings.
Specifically state the sometimes misunderstood ability to have one or
more differently typed image descriptors sharing a descriptor set and
binding (internal SPIR-V issue 264).
* Make DynamicIndexing features and capabilities also control the
uniformity of the descriptor used in memory access instructions in the
<<interfaces-resources-descset, Descriptor Set Interface>> section. This
makes them also apply to variable_pointer usage, which can bypass the
array indexing operation (internal SPIR-V issue 289).
Other Issues:
* Correct flink:vkCmdBlitImage limitations on cubic blits to be 2D only,
not 3D.
* Update valid usage statements for slink:VkRenderPassCreateInfo and
slink:VkInputAttachmentAspectReference.
* Move YCbCr-related VU statements from slink:VkDescriptorImageInfo to
slink:VkWriteDescriptorSet, where all needed information is known, and
remove redundant statements.
* Move SPIR-V restriction that images be of either sampled or storage
types from the <<interfaces-resources-descset, Descriptor Set
Interface>> section to the <<spirvenv-module-validation, Validation
Rules within a Module>> section of the SPIR-V appendix.
-----------------------------------------------------
Change log for April 21, 2018 Vulkan 1.1.74 spec update:
* Update release number to 74.

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 = 78
PATCHVERSION = 79
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else

View File

@ -9,8 +9,8 @@ include::meta/VK_AMD_negative_viewport_height.txt[]
- Graham Sellers, AMD
- Baldur Karlsson
*Interactions and External Dependencies*::
- Deprecated by `VK_KHR_maintenance1`
- Deprecated by Vulkan 1.1
- Obsoleted by `VK_KHR_maintenance1`
- Obsoleted by Vulkan 1.1
This extension allows an application to specify a negative viewport height.
The result is that the viewport transformation will flip along the y-axis.
@ -21,7 +21,7 @@ The result is that the viewport transformation will flip along the y-axis.
This allows apps to avoid having to use `gl_Position.y = -gl_Position.y`
in shaders also targeting other APIs.
=== Deprecation by VK_KHR_maintenance1 and Vulkan 1.1
=== Obsoletion by VK_KHR_maintenance1 and Vulkan 1.1
Functionality in this extension is included in `VK_KHR_maintenance1` and
Vulkan 1.1.
@ -29,7 +29,6 @@ Due to some slight behavioral differences, this extension must: not be
enabled alongside `VK_KHR_maintenance1`, or in an instance created with
version 1.1 or later requested in slink:VkApplicationInfo::pname:apiVersion.
=== Version History
* Revision 1, 2016-09-02 (Matthaeus Chajdas)

View File

@ -230,6 +230,13 @@ Decoration (SPIR-V)::
invariance, interpolation type, relaxed precision, etc., added to
variables or structure-type members through decorations.
Deprecated::
A feature is deprecated if it is no longer recommended as the correct or
best way to achieve its intended purpose.
Generally a newer feature will have been created that solves the same
problem - in cases where no newer alternative feature exists,
justification should be provided.
Depth/Stencil Attachment::
A subpass attachment point, or image view, that is the target of depth
and/or stencil test operations and writes.
@ -804,6 +811,13 @@ Object Table::
Entries are registered or unregistered via code:uint32_t indices.
endif::VK_NVX_device_generated_commands[]
Obsoleted::
A feature is obsolete if it can no longer be used.
For core features, making one obsolete would be in violation of the
<<fundamentals-versionnum, compatibility rules>>, so must not be done.
However extensions do not have these guarantees, and can be made
obsolete by a newer core version or extension.
Overlapped Range (Aliased Range)::
The aliased range of a device memory allocation that intersects a given
image subresource of an image or range of a buffer.
@ -931,15 +945,19 @@ Primitive Topology::
State that controls how vertices are assembled into primitives, e.g. as
lists of triangles, strips of lines, etc..
ifdef::VK_VERSION_1_1[]
Promoted::
An extension whose interfaces are later made available as part of a
<<versions-1.1,core version of the API>>, with the author ID suffixes
removed, is said to be _promoted_ to that core version.
Minor differences, such as making the availability of specific features
from the extension supported only if a corresponding feature bit is
enabled, may still exist.
A feature is promoted if it is taken from an older extension and made
available as part of a new <<versions,core version of the API>>, or a
newer extension that is considered to be either as widely supported or
more so.
A promoted feature may have minor differences from the original such as:
* It may be renamed
* A small number of non-intrusive parameters may have been added
* The feature may be advertised differently by
<<features-features,device features>>
* The author ID suffixes will be changed or removed as appropriate
ifdef::VK_VERSION_1_1[]
Protected Buffer::
A buffer to which protected device memory can: be bound.

View File

@ -195,6 +195,9 @@ ifdef::VK_EXT_descriptor_indexing[]
| code:UniformTexelBufferArrayNonUniformIndexingEXT | <<features-features-shaderUniformTexelBufferArrayNonUniformIndexing,shaderUniformTexelBufferArrayNonUniformIndexing>>
| code:StorageTexelBufferArrayNonUniformIndexingEXT | <<features-features-shaderStorageTexelBufferArrayNonUniformIndexing,shaderStorageTexelBufferArrayNonUniformIndexing>>
endif::VK_EXT_descriptor_indexing[]
ifdef::VK_AMD_gpu_shader_half_float[]
| code:Float16 | `<<VK_AMD_gpu_shader_half_float>>`
endif::VK_AMD_gpu_shader_half_float[]
|====
ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]

View File

@ -353,8 +353,8 @@ of Vulkan when events of interest occur.
When an event of interest does occur, the debug messenger will submit a
debug message to the debug callback that was provided during its creation.
Additionally, the debug messenger is responsible with filtering out debug
messages that the callback isn't interested in and will only provide desired
debug messages.
messages that the callback is not interested in and will only provide
desired debug messages.
--

View File

@ -1832,7 +1832,7 @@ ifdef::VK_EXT_descriptor_indexing[]
* ename:VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT specifies that
descriptor sets allocated from this pool can: include bindings with the
ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT bit set.
It is valid to allocate descriptor sets that have bindings that don't
It is valid to allocate descriptor sets that have bindings that do not
set the ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT bit from a
pool that has ename:VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT
set.
@ -2610,7 +2610,8 @@ ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
pname:imageView must: not be 2D or 2D array image view created from a 3D
image
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
* If pname:imageView is created from a depth/stencil image, the
* [[VUID-VkDescriptorImageInfo-imageView-01976]]
If pname:imageView is created from a depth/stencil image, the
pname:aspectMask used to create the pname:imageView must: include either
ename:VK_IMAGE_ASPECT_DEPTH_BIT or ename:VK_IMAGE_ASPECT_STENCIL_BIT but
not both.

View File

@ -154,6 +154,7 @@ Procedures and Conventions>> document in the section "`Registering a Vendor
ID with Khronos`".
Khronos vendor IDs are allocated starting at 0x10000, to distinguish them
from the PCI vendor ID namespace.
Khronos vendor IDs are symbolically defined in the elink:VkVendorId type.
The vendor is also responsible for the value returned in pname:deviceID.
If the implementation is driven primarily by a https://pcisig.com/[PCI
@ -177,6 +178,29 @@ should: use the same device ID, even if those uses occur in different SoCs.
include::../validity/structs/VkPhysicalDeviceProperties.txt[]
--
[open,refpage='VkVendorId',desc='Khronos vendor IDs',type='enums']
--
Khronos vendor IDs which may: be returned in
slink:VkPhysicalDeviceProperties::pname:vendorID are:
include::../api/enums/VkVendorId.txt[]
[NOTE]
.Note
====
Khronos vendor IDs may be allocated by vendors at any time.
Only the latest canonical versions of this Specification, of the
corresponding `vk.xml` API Registry, and of the corresponding
`vulkan_core.h` header file must: contain all reserved Khronos vendor IDs.
Only Khronos vendor IDs are given symbolic names at present.
PCI vendor IDs returned by the implementation can be looked up in the
PCI-SIG database.
====
--
[open,refpage='VkPhysicalDeviceType',desc='Supported physical device types',type='enums']
--

View File

@ -2666,7 +2666,7 @@ structure describe the following implementation-dependent limits:
across all pools that are created with the
ename:VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT bit set.
Pool creation may: fail when this limit is exceeded, or when the space
this limit represents can't satisfy a pool creation due to
this limit represents cannot: satisfy a pool creation due to
fragmentation.
* [[features-limits-shaderUniformBufferArrayNonUniformIndexingNative]]
pname:shaderUniformBufferArrayNonUniformIndexingNative is a boolean
@ -5311,8 +5311,14 @@ supported, and images of that format cannot be created.
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
====
If pname:format is a block-compression format, then buffers must: not
support any features for the format.
If pname:format is a block-compression format, then pname:bufferFeatures
must: not support any features for the format.
ifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
If pname:format is a multi-plane format then pname:linearTilingFeatures and
pname:optimalTilingFeatures must: not contain
ename:VK_FORMAT_FEATURE_DISJOINT_BIT.
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
include::../validity/structs/VkFormatProperties.txt[]
--
@ -5541,6 +5547,13 @@ advertise an extension or needing to explicitly enable them.
Support for additional functionality beyond the requirements listed here is
queried using the flink:vkGetPhysicalDeviceFormatProperties command.
[NOTE]
.Note
====
The required formats are supported for all elink:VkImageCreateFlags values
as long as those flag values are otherwise allowed.
====
The following tables show which feature bits must: be supported for each
format.
ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
@ -6095,51 +6108,50 @@ Y'C~B~C~R~ conversion>> must: be enabled for the following formats:
[[features-formats-requiring-sampler-ycbcr-conversion]]
.Formats requiring sampler Y'C~B~C~R~ conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT image views
[width="100%",cols="15,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"]
[width="100%",cols="18,^3,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"]
|====
10+>| Format must: be supported if slink:VkPhysicalDeviceSamplerYcbcrConversionFeatures is enabled .11+^.^| {downarrow}
9+>| Format is treated as having 2{times}1 texel blocks by transfer operations .10+^.^| {downarrow}
8+>| ename:VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT .9+^.^| {downarrow}
7+>| ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT .8+^.^| {downarrow}
6+>| ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT .7+^.^| {downarrow}
5+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .6+^.^| {downarrow}
4+>| ename:VK_FORMAT_FEATURE_DISJOINT_BIT .5+^.^| {downarrow}
3+>| Multi-planar format with three planes .4+^.^| {downarrow}
2+>| Multi-planar format with two planes .3+^.^| {downarrow}
1+>| Single-plane format .2+^.^| {downarrow}
s| Format
| ename:VK_FORMAT_G8B8G8R8_422_UNORM | {sym1} | | | | {sym2} | {sym2} | {sym2} | | {sym1} |
| ename:VK_FORMAT_B8G8R8G8_422_UNORM | {sym1} | | | | {sym2} | {sym2} | {sym2} | | {sym1} |
| ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM | | | {sym1} | {sym2} | {sym1} | {sym1} | {sym1} | {sym1} | | {sym1}
| ename:VK_FORMAT_G8_B8R8_2PLANE_420_UNORM | | {sym1} | | {sym2} | {sym1} | {sym1} | {sym1} | {sym1} | | {sym1}
| ename:VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G8_B8R8_2PLANE_422_UNORM | | {sym1} | | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 | {sym1} | | | | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 | {sym1} | | | | {sym2} | {sym2} | {sym2} | | {sym1} |
| ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 | {sym1} | | | | {sym2} | {sym2} | {sym2} | | {sym1} |
| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 | | {sym1} | | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 | | {sym1} | | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 | {sym1} | | | | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 | {sym1} | | | | {sym2} | {sym2} | {sym2} | | {sym1} |
| ename:VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 | {sym1} | | | | {sym2} | {sym2} | {sym2} | | {sym1} |
| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 | | {sym1} | | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 | | {sym1} | | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G16B16G16R16_422_UNORM | {sym1} | | | | {sym2} | {sym2} | {sym2} | | {sym1} |
| ename:VK_FORMAT_B16G16R16G16_422_UNORM | {sym1} | | | | {sym2} | {sym2} | {sym2} | | {sym1} |
| ename:VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G16_B16R16_2PLANE_420_UNORM | | {sym1} | | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G16_B16R16_2PLANE_422_UNORM | | {sym1} | | {sym2} | {sym2} | {sym2} | {sym2} | | |
| ename:VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM | | | {sym1} | {sym2} | {sym2} | {sym2} | {sym2} | | |
11+| Format features marked {sym1} must: be supported if the format is supported
11+| Format features marked {sym2} may: be supported by the format
11+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT .11+^.^| {downarrow}
10+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT .10+^.^| {downarrow}
9+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT .9+^.^| {downarrow}
8+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT .8+^.^| {downarrow}
7+>| ename:VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT .7+^.^| {downarrow}
6+>| ename:VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT .6+^.^| {downarrow}
5+>| ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT .5+^.^| {downarrow}
4+>| ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT .4+^.^| {downarrow}
3+>| ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT .3+^.^| {downarrow}
2+>| ename:VK_FORMAT_FEATURE_DISJOINT_BIT .2+^.^| {downarrow}
s| Format s| Planes
| ename:VK_FORMAT_G8B8G8R8_422_UNORM | 1 | | | | | | | | | |
| ename:VK_FORMAT_B8G8R8G8_422_UNORM | 1 | | | | | | | | | |
| ename:VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM | 3 | | {sym1} | {sym1} | {sym1} | {sym1} | | | | |
| ename:VK_FORMAT_G8_B8R8_2PLANE_420_UNORM | 2 | | {sym1} | {sym1} | {sym1} | {sym1} | | | | |
| ename:VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM | 3 | | | | | | | | | |
| ename:VK_FORMAT_G8_B8R8_2PLANE_422_UNORM | 2 | | | | | | | | | |
| ename:VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM | 3 | | | | | | | | | |
| ename:VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 | 1 | | | | | | | | | |
| ename:VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 | 1 | | | | | | | | | |
| ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 | 1 | | | | | | | | | |
| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 | 3 | | | | | | | | | |
| ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 | 2 | | | | | | | | | |
| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 | 3 | | | | | | | | | |
| ename:VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 | 2 | | | | | | | | | |
| ename:VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 | 3 | | | | | | | | | |
| ename:VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 | 1 | | | | | | | | | |
| ename:VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 | 1 | | | | | | | | | |
| ename:VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 | 1 | | | | | | | | | |
| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 | 3 | | | | | | | | | |
| ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 | 2 | | | | | | | | | |
| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 | 3 | | | | | | | | | |
| ename:VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 | 2 | | | | | | | | | |
| ename:VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 | 3 | | | | | | | | | |
| ename:VK_FORMAT_G16B16G16R16_422_UNORM | 1 | | | | | | | | | |
| ename:VK_FORMAT_B16G16R16G16_422_UNORM | 1 | | | | | | | | | |
| ename:VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM | 3 | | | | | | | | | |
| ename:VK_FORMAT_G16_B16R16_2PLANE_420_UNORM | 2 | | | | | | | | | |
| ename:VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM | 3 | | | | | | | | | |
| ename:VK_FORMAT_G16_B16R16_2PLANE_422_UNORM | 2 | | | | | | | | | |
| ename:VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM | 3 | | | | | | | | | |
12+| Format features marked {sym1} must: be supported only if slink:VkPhysicalDeviceSamplerYcbcrConversionFeatures is enabled
|====
endif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]

View File

@ -1213,15 +1213,21 @@ as [eq]#0 / 0#.
Implementations may: support [eq]#Inf# and [eq]#NaN# in their floating-point
computations.
Any representable floating-point value is legal as input to a Vulkan command
that requires floating-point data.
The result of providing a value that is not a floating-point number to such
a command is unspecified, but must: not lead to Vulkan interruption or
termination.
In <<ieee-754,IEEE 754>> arithmetic, for example, providing a negative zero
or a denormalized number to an Vulkan command must: yield deterministic
results, while providing a [eq]#NaN# or [eq]#Inf# yields unspecified
results.
[[fundamentals-fp-conversion]]
=== Floating-Point Format Conversions
When a value is converted to a defined floating-point representation, finite
values falling between two representable finite values are rounded to one or
the other.
The rounding mode is not defined.
Finite values whose magnitude is larger than that of any representable
finite value may be rounded either to the closest representable finite value
or to the appropriately signed infinity.
For unsigned destination formats any negative values are converted to zero.
Positive infinity is converted to positive infinity; negative infinity is
converted to negative infinity in signed formats and to zero in unsigned
formats; and any [eq]#NaN# is converted to a [eq]#NaN#.
[[fundamentals-fp16]]
@ -1230,14 +1236,6 @@ results.
16-bit floating point numbers are defined in the "`16-bit floating point
numbers`" section of the <<data-format,Khronos Data Format Specification>>.
Any representable 16-bit floating-point value is legal as input to a Vulkan
command that accepts 16-bit floating-point data.
The result of providing a value that is not a floating-point number (such as
[eq]#Inf# or [eq]#NaN#) to such a command is unspecified, but must: not lead
to Vulkan interruption or termination.
Providing a denormalized number or negative zero to Vulkan must: yield
deterministic results.
[[fundamentals-fp11]]
=== Unsigned 11-Bit Floating-Point Numbers
@ -1246,26 +1244,6 @@ Unsigned 11-bit floating point numbers are defined in the "`Unsigned 11-bit
floating point numbers`" section of the <<data-format,Khronos Data Format
Specification>>.
When a floating-point value is converted to an unsigned 11-bit
floating-point representation, finite values are rounded to the closest
representable finite value.
While less accurate, implementations are allowed to always round in the
direction of zero.
This means negative values are converted to zero.
Likewise, finite positive values greater than 65024 (the maximum finite
representable unsigned 11-bit floating-point value) are converted to 65024.
Additionally: negative infinity is converted to zero; positive infinity is
converted to positive infinity; and both positive and negative [eq]#NaN# are
converted to positive [eq]#NaN#.
Any representable unsigned 11-bit floating-point value is legal as input to
a Vulkan command that accepts 11-bit floating-point data.
The result of providing a value that is not a floating-point number (such as
[eq]#Inf# or [eq]#NaN#) to such a command is unspecified, but must: not lead
to Vulkan interruption or termination.
Providing a denormalized number to Vulkan must: yield deterministic results.
[[fundamentals-fp10]]
=== Unsigned 10-Bit Floating-Point Numbers
@ -1274,30 +1252,19 @@ Unsigned 10-bit floating point numbers are defined in the "`Unsigned 10-bit
floating point numbers`" section of the <<data-format,Khronos Data Format
Specification>>.
When a floating-point value is converted to an unsigned 10-bit
floating-point representation, finite values are rounded to the closest
representable finite value.
While less accurate, implementations are allowed to always round in the
direction of zero.
This means negative values are converted to zero.
Likewise, finite positive values greater than 64512 (the maximum finite
representable unsigned 10-bit floating-point value) are converted to 64512.
Additionally: negative infinity is converted to zero; positive infinity is
converted to positive infinity; and both positive and negative [eq]#NaN# are
converted to positive [eq]#NaN#.
Any representable unsigned 10-bit floating-point value is legal as input to
a Vulkan command that accepts 10-bit floating-point data.
The result of providing a value that is not a floating-point number (such as
[eq]#Inf# or [eq]#NaN#) to such a command is unspecified, but must: not lead
to Vulkan interruption or termination.
Providing a denormalized number to Vulkan must: yield deterministic results.
[[fundamentals-general]]
=== General Requirements
Any representable floating-point value in the appropriate format is legal as
input to a Vulkan command that requires floating-point data.
The result of providing a value that is not a floating-point number to such
a command is unspecified, but must: not lead to Vulkan interruption or
termination.
For example, providing a negative zero (where applicable) or a denormalized
number to an Vulkan command must: yield deterministic results, while
providing a [eq]#NaN# or [eq]#Inf# yields unspecified results.
Some calculations require division.
In such cases (including implied divisions performed by vector
normalization), division by zero produces an unspecified result but must:

View File

@ -454,7 +454,7 @@ include::../api/structs/VkPipelineSampleLocationsStateCreateInfoEXT.txt[]
are ignored.
* pname:sampleLocationsInfo is the sample locations to use during
rasterization if pname:sampleLocationsEnable is ename:VK_TRUE and the
graphics pipeline isn't created with
graphics pipeline is not created with
ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT.
include::../validity/structs/VkPipelineSampleLocationsStateCreateInfoEXT.txt[]

View File

@ -254,7 +254,7 @@ used, and current command buffer state when the command was recorded.
<<copies,copy commands>>, <<clears,clear commands>>, and <<synchronization,
synchronization commands>> all execute in different sets of
<<synchronization-pipeline-stages-types,pipeline stages>>.
<<synchronization, Synchronization commands>> don't execute in a defined
<<synchronization, Synchronization commands>> do not execute in a defined
pipeline, but do execute ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT and
ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.
@ -1855,7 +1855,7 @@ provided.
This special behavior for importing an invalid sync file descriptor allows
easier interoperability with other system APIs which use the convention that
an invalid sync file descriptor represents work that has already completed
and doesn't need to be waited for.
and does not need to be waited for.
It is consistent with the option for implementations to return a `-1` file
descriptor when exporting a ename:VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
from a sname:VkFence which is signaled.

View File

@ -1279,9 +1279,13 @@ Any unused components are ignored.
Each component is converted based on its type and size (as defined in the
<<features-formats-definition,Format Definition>> section for each
elink:VkFormat), using the appropriate equations in
<<fundamentals-fp16,16-Bit Floating-Point Numbers>> and
elink:VkFormat).
Floating-point outputs are converted as described in
<<fundamentals-fp-conversion,Floating-Point Format Conversions>> and
<<fundamentals-fixedconv,Fixed-Point Data Conversion>>.
Integer outputs are converted such that their value is preserved.
The converted value of any integer that cannot be represented in the target
format is undefined.
== Derivative Operations

View File

@ -156,7 +156,7 @@
id="tspan2797-02"
x="134.9375"
y="32.416672"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.52916664">Edge 0</tspan></text>
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.52916664">Edge 3</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.52916664"

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

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 78
#define VK_HEADER_VERSION 79
#define VK_NULL_HANDLE 0
@ -1214,6 +1214,16 @@ typedef enum VkObjectType {
VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
} VkObjectType;
typedef enum VkVendorId {
VK_VENDOR_ID_VIV = 0x10001,
VK_VENDOR_ID_VSI = 0x10002,
VK_VENDOR_ID_KAZAN = 0x10003,
VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV,
VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN,
VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1),
VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
} VkVendorId;
typedef VkFlags VkInstanceCreateFlags;
typedef enum VkFormatFeatureFlagBits {

View File

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

View File

@ -232,9 +232,6 @@ Zero or more of each of the following tags, normally in this order
* tag:comment - Contains arbitrary text, such as a copyright
statement.
* <<tag-vendorids,tag:vendorids>> - defines Khronos vendor IDs,
described in detail in the "`Layers and Extensions`" appendix of the
Vulkan Specification.
* <<tag-platforms,tag:platforms>> - defines platform names corresponding
to platform-specific <<tag-extension,API extensions>>.
* <<tag-tags,tag:tags>> - defines author IDs used for
@ -267,40 +264,6 @@ Comment tags are removed by output generators if they would otherwise appear
in generated headers, asciidoc include files, etc.
[[tag-vendorids]]
= Vendor ID Blocks (tag:vendorids tag)
A tag:vendorids tag contains descriptions of vendor IDs for physical devices
which do not have PCI vendor IDs.
== Attributes of tag:vendorids tags
* attr:comment - optional. Arbitrary string (unused).
== Contents of tag:vendorids tags
Zero or more tag:vendorid tags, in arbitrary order (though they are
typically ordered by sorting on the author ID).
[[tag-vendorid]]
= Vendor IDs (tag:vendorid tag)
A tag:vendorid tag describes a single vendor ID.
== Attributes of tag:vendorid tags
* attr:name - required.
The author ID, as registered with Khronos.
This must match an author ID in the attr:name field of a tag:tag tag.
* attr:id - required. The reserved vendor ID, as a hexadecimal number.
* attr:comment - optional. Arbitrary string (unused).
== Contents of tag:vendorid tags
No contents are allowed. All information is contained in the attributes.
[[tag-platforms]]
= Platform Name Blocks (tag:platforms tag)
@ -2030,6 +1993,7 @@ files and Python scripts are logged in Github history.
[[changelog]]
= Change Log
* 2018-06-25 - Remove attr:vendorids tags for Khronos vendor IDs.
* 2018-04-15 - Add attr:requiresCore.
* 2018-03-07 - Updated for Vulkan 1.1 release.
* 2018-02-21 - Add descriptions of the attr:extnumber and attr:alias

View File

@ -272,16 +272,17 @@ implementations must obtain a Khronos vendor ID.
Khronos vendor IDs are reserved in a similar fashion to
<<extensions-author-ID,author IDs>>.
While vendor IDs are not directly related to API extensions, the reservation
process is very similar and so is described in this section.
process is similar, and so is described in this section.
To reserve an Khronos vendor ID, you must first have a Khronos author ID.
Propose a merge request against <<extensions-api-registry,`vk.xml`>> in the
`master` branch.
The merge must add a `<vendorid>` tag and fill in the `name` and `id`
attributes.
The `name` attribute must be set to the author ID.
The `id` attribute must be the first sequentially available ID in the list
of `<vendorid>` tags.
The merge must define a new enumerant by adding an `<enum>` tag to the
`VkVendorId` `<enums>` tag, following the existing examples.
The `value` attribute of the `<enum>` must be the next available unused
value, and is the reserved vendor ID.
The `name` attribute must be `VK_VENDOR_ID_<author>`, where `<author>` is
the author tag.
The vendor ID will be reserved only once this merge request has been
accepted.

View File

@ -150,6 +150,9 @@ include::style/vuid.txt[]
= Revision History
* 2018-06-25 - Modify the process for <<extensions-vendor-id, Registering a
Vendor ID with Khronos>> to define vendor ID values as part of an
enumerated type.
* 2018-03-07 - Updated for Vulkan 1.1 release.
* 2018-01-10 - Move details of mandated extension compatibility from the
<<extensions-rules, General Rules/Guidelines>> section into the

View File

@ -25,7 +25,6 @@ namespace xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
start = element registry {
(
element comment { text } ? |
Vendorids * |
Platforms * |
Tags * |
Types * |
@ -36,22 +35,6 @@ start = element registry {
) *
}
# <vendorids> defines a group of vendor IDs
Vendorids = element vendorids {
Comment ? ,
Vendorid *
}
# <vendorid> defines a single vendor ID.
# name - author ID of the vendor
# id - Khronos vendor ID (hexadecimal constant starting at 0x10000)
# comment - unused
Vendorid = element vendorid {
attribute name { text } ,
attribute id { text } ,
Comment ?
}
# <platforms> defines a group of platform names
Platforms = element platforms {
Comment ? ,
@ -276,6 +259,7 @@ Unused = element unused {
Vendor ? ,
Comment ?
}
# <commands> defines a group of commands
Commands = element commands {
Comment ? ,

View File

@ -445,7 +445,8 @@ class ValidityOutputGenerator(OutputGenerator):
asciidoc += '\n'
# Add additional line for non-optional bitmasks
if self.getTypeCategory(paramtype.text) == 'bitmask':
isOutputParam = self.paramIsPointer(param) and not (param.text is not None and 'const' in param.text)
if self.getTypeCategory(paramtype.text) == 'bitmask' and not isOutputParam:
isMandatory = param.attrib.get('optional') is None #TODO does not really handle if someone tries something like optional="true,false"
if isMandatory:
asciidoc += self.makeAnchor(blockname, paramname.text, 'requiredbitmask')

View File

@ -44,13 +44,6 @@ private version is maintained in the master branch of the member gitlab
server.
</comment>
<vendorids comment="Vulkan vendor IDs for physical devices without PCI vendor IDs">
<vendorid name="KHR" id="0x10000" comment="This is the next available Khronos vendor ID"/>
<vendorid name="VIV" id="0x10001" comment="Vivante vendor ID"/>
<vendorid name="VSI" id="0x10002" comment="VeriSilicon vendor ID"/>
<vendorid name="KAZAN" id="0x10003" comment="Kazan Software Renderer"/>
</vendorids>
<platforms comment="Vulkan platform names, reserved for use with platform- and window system-specific extensions">
<platform name="xlib" protect="VK_USE_PLATFORM_XLIB_KHR" comment="X Window System, Xlib client library"/>
<platform name="xlib_xrandr" protect="VK_USE_PLATFORM_XLIB_XRANDR_EXT" comment="X Window System, Xlib client library, XRandR extension"/>
@ -153,7 +146,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> 78</type>
#define <name>VK_HEADER_VERSION</name> 79</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -515,6 +508,9 @@ server.
<type name="VkDebugUtilsMessageSeverityFlagBitsEXT" category="enum"/>
<type name="VkDebugUtilsMessageTypeFlagBitsEXT" category="enum"/>
<comment>Enumerated types in the header, but not used by the API</comment>
<type name="VkVendorId" category="enum"/>
<comment>The PFN_vk*Function types are used by VkAllocationCallbacks below</comment>
<type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkInternalAllocationNotification</name>)(
<type>void</type>* pUserData,
@ -4179,6 +4175,15 @@ server.
<enum bitpos="2" name="VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT"/>
<enum bitpos="3" name="VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT"/>
</enums>
<enums name="VkVendorId" type="enum">
<comment>Vendor IDs are now represented as enums instead of the old
&lt;vendorids&gt; tag, allowing them to be included in the
API headers.</comment>
<enum value="0x10001" name="VK_VENDOR_ID_VIV" comment="Vivante vendor ID"/>
<enum value="0x10002" name="VK_VENDOR_ID_VSI" comment="VeriSilicon vendor ID"/>
<enum value="0x10003" name="VK_VENDOR_ID_KAZAN" comment="Kazan Software Renderer"/>
<unused start="0x10004" comment="This is the next unused available Khronos vendor ID"/>
</enums>
<commands comment="Vulkan command definitions">
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
@ -6328,6 +6333,7 @@ server.
<type name="VkObjectType"/>
<type name="VkBaseOutStructure"/>
<type name="VkBaseInStructure"/>
<type name="VkVendorId"/>
</require>
</feature>
<feature api="vulkan" name="VK_VERSION_1_1" number="1.1" comment="Vulkan 1.1 core API interface definitions.">
@ -8826,5 +8832,11 @@ server.
<enum value="&quot;VK_KHR_extension_211&quot;" name="VK_KHR_EXTENSION_211_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_KHR_extension_212" number="212" type="device" author="KHR" contact="Jeff Bolz @jeffbolznv" supported="disabled">
<require>
<enum value="0" name="VK_KHR_EXTENSION_212_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_extension_212&quot;" name="VK_KHR_EXTENSION_212_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>