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:
parent
07d059c798
commit
ff9357a4ba
236
ChangeLog.txt
236
ChangeLog.txt
|
@ -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.
|
||||
|
|
2
Makefile
2
Makefile
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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[]
|
||||
|
|
|
@ -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.
|
||||
|
||||
--
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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']
|
||||
--
|
||||
|
||||
|
|
|
@ -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[]
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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[]
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 |
|
@ -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 {
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# The value to start tagging VU statements at, unless overridden by -nextvu
|
||||
startVUID = 1976
|
||||
startVUID = 1977
|
||||
|
|
38
registry.txt
38
registry.txt
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ? ,
|
||||
|
|
|
@ -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')
|
||||
|
|
28
xml/vk.xml
28
xml/vk.xml
|
@ -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
|
||||
<vendorids> 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=""VK_KHR_extension_211"" 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=""VK_KHR_extension_212"" name="VK_KHR_EXTENSION_212_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
</registry>
|
||||
|
|
Loading…
Reference in New Issue