* Update release number to 113.
Github Issues:
* Fix typo in `<<VK_EXT_global_priority>>` appendix (public issue 979).
Internal Issues:
* Expand the explanation of
slink:VkSamplerYcbcrConversionImageFormatPropertiesKHR::pname:combinedImageSamplerDescriptorCount,
and explain how it interacts with slink:VkWriteDescriptorSet,
slink:VkDescriptorSetLayoutBinding::pname:descriptorCount, and
slink:VkDescriptorPoolSize::pname:descriptorCount (internal issue 1643).
* Clarify restrictions on components for code:OpImageGather in the
<<spirvenv-module-validation, Validation Rules within a Module>> section
(internal issue 1707).
* Clarify the descriptions of <<limits-computeUnitsPerShaderArray,
pname:computeUnitsPerShaderArray>> and <<limits-wavefrontSize,
pname:wavefrontSize>> fields in
slink:VkPhysicalDeviceShaderCorePropertiesAMD.
New Extensions:
* `<<VK_EXT_texel_buffer_alignment>>`
* `<<VK_EXT_shader_demote_to_helper_invocation>>`
* Update release number to 107.
Public Issues:
* Fix revision date for the `<<VK_AMD_gpu_shader_half_float>>` appendix
(public issue 617).
* Make <<synchronization-pipeline-barriers-subpass-self-dependencies,
subpass self-dependencies>> less restrictive (public issue 777).
* Fix the `<<VK_EXT_full_screen_exclusive>>` dependency on
`<<VK_KHR_win32_surface>>` in `vk.xml` (public pull request 849).
* Remove single-page (`apispec.html`) refpage sub-targets from the
Makefile `allman` target and the build instructions. The target is still
present in the Makefile, but we have not been actively maintaining the
single-page document and do not promise it will work. The full
Specification and the individual API reference pages are what we support
and publish at present (public issue 949).
Internal Issues:
* De-duplicate common valid usage statements shared by multiple commands
or structures by using asciidoctor includes and dynamically assigning
part of the valid usage ID based on which command or structure they're
being applied to (internal issue 779).
* Add reference pages for constructs not part of the formal API, such as
platform calling convention macros, and script changes supporting them
This required suppressing some check_spec_links warning classes in order
to pass CI, until a more sophisticated fix can be done (internal issue
888).
* Change math notation for the elink:VkPrimitiveTopology descriptions to
use short forms `v` and `p` instead of `vertex` and `primitive`,
increasing legibility (internal issue 1611).
* Rewrite generated file includes relative to a globally specified path,
fixing some issues with refpage generation (internal issue 1630).
* Update contributor list for `<<VK_EXT_calibrated_timestamps>>`.
* Fix use of pathlin in `scripts/generator.py` so the script will work on
Windows under Python 3.5 (internal merge request 3107).
* Add missing conditionals around the
<<descriptorsets-accelerationstructure, Acceleration Structure>>
section (internal merge request 3108).
* More script synchronization with OpenXR spec repository (internal merge
request 3109).
* Mark the `<<VK_AMD_gpu_shader_half_float>>` and
`<<VK_AMD_gpu_shader_int16>>` extensions as deprecated in `vk.xml` and
the corresponding extension appendices (internal merge request 3112).
New Extensions:
* `<<VK_EXT_headless_surface>>`
* Update release number to 106.
Public Issues:
* Add searchbox and generate search index for the chunked HTML target.
Note that doing this requires several new toolchain components to build
the `chunked` target (public issue 578 / internal issue 1352).
* Remove descriptions of flink:vkCreateSampler sampler constraints which
were repeated in the valid usage statements (public pull request 648).
* Fix sense of conditional around a valid usage statement in the
<<copies>> chapter (public issue 942).
Internal Issues:
* Add missing pname:extent.width and pname:extent.height valid usage
statements for flink:vkCmdClearAttachments (internal issue 1583).
* Fix some inconsistencies in structures and corresponding pname:sType
enumerant names by renaming
sname:VkPhysicalDeviceShaderDrawParameterFeatures ->
slink:slink:VkPhysicalDeviceShaderDrawParametersFeatures;
sname:VkPhysicalDeviceVariablePointerFeatures ->
slink:VkPhysicalDeviceVariablePointerFeatures;
sname:VkPhysicalDeviceVariablePointerFeaturesKHR ->
slink:VkPhysicalDeviceVariablePointerFeaturesKHR;
sname:VkPhysicalDeviceBufferAddressFeaturesEXT ->
slink:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES
->
ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES ->
ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR ->
ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
and etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
->
ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT.
The old names are still available as aliases for backwards
compatibility. This change required introducing valid XML markup which
externally written XML processing scripts may need to be modified to
accomodate, to support multiple aliases of a single command or token
name (internal issue 1592).
* Add slink:VkDevice as the first parameter to flink:vkSetLocalDimmingAMD
(internal issue 1618).
* Improve CI header compilation tests to test all Vulkan platform
includes, using fake platform headers where needed, and change the
`allchecks` Makefile target to use the more comprehensive
`check_spec_links.py` script instead of the retired `checkinc` and
`checklinks` targets.
* Move descriptions of the ASTC compressed texture decode mode from the
<<appendix-compressedtex-astc,appendix>> to the recently updated
external Khronos Data Format Specification.
* Fix minor markup and spelling issues in the `VK_NV_ray_tracing`
extension.
* Update release number to 104.
Public Issues:
* Remove the incorrect line from "`Initial`" to "`Invalid`" state in the
<<commandbuffer-lifecycle-diagram, Lifecycle of a command buffer>>
diagram (public issue 881).
* Add Fuchsia platform to <<boilerplate-wsi-header-table, Window System
Extensions and Headers>> table (public pull request 933).
* Change the type of
slink:VkBufferDeviceAddressCreateInfoEXT::pname:deviceAddress from
basetype:VkDeviceSize to basetype:VkDeviceAddress. These are both
typedefs of code:uint64_t, so it is an ABI-compatible change (public
issue 934).
Internal Issues:
* Remove generated header files and update the CI tests to build a copy of
the headers for use by the hpp-generate / hpp-compile CI stages. Targets
to generate the headers will not be removed, but keeping these generated
files in the repository increased the frequency of conflicts between
branches when merging to master (internal issue 745).
* Reword "`undefined: behavior if *action*" to "`must: not do *action*`"
in the places the old terminology was used, and add a new
<<writing-undefined, Describing Undefined Behavior>> section of the
style guide to explain how to write such language in the future
(internal issue 1579).
* Move almost all Python scripts into the toplevel `scripts/` directory.
Apply extensive internal edits to clean up and simplify the scripts, and
try to follow PEP8 guidelines. Generalize the scripts with the use of a
Conventions object controlling many aspects of output generation, to
enable their use in other Khronos projects with similar requirements.
Autogenerate extension interface refpages (these are experimental and
may be retired going forward).
New Extensions:
* `VK_AMD_display_native_hdr`
* `VK_EXT_full_screen_exclusive` (internal issue 1439)
* `VK_EXT_host_query_reset`
* `VK_EXT_pipeline_creation_feedback` (internal issue 1560)
* `VK_KHR_surface_protected_capabilities` (internal issue 1520)
* Update release number to 99.
Public Issues:
* Add missing pname:pMemoryHostPointerProperties description to
flink:vkGetMemoryHostPointerPropertiesEXT.txt (public pull request 896).
* Minor markup fixes (public pull request 900).
* Minor update to `khronos.css` and markup fixes (originally proposed in
public pull request 901, but done via an internal MR).
Internal Issues:
* Document restrictions on image queries for Y'CbCr formats in the
<<features-formats-requiring-sampler-ycbcr-conversion>> table as well as
for slink:sname:VkImageFormatProperties and slink:VkImageCreateInfo
(internal issue 1361).
* Correct type of the code:FragSizeEXT built-in in the
<<interfaces-builtin-variables, Built-In Variables>> section (internal
issue 1526).
* Clean up math in the <<textures, Image Operations>> chapter by
refactoring, using better naming conventions, updating diagrams to use
the correct orientation, etc. (internal merge request 2968).
* Fix minor typos for slink:VkImageCreateInfo and
slink:VkImageStencilUsageCreateInfoEXT.
* Add missing documentation for tlink:VkResolveModeFlagsKHR.
* Fix extension dependency of pname:scalarBlockLayout in the
<<features-features-requirements, Feature Requirements>> section.
* Fix indexing math for shader binding table calculations in the
<<shader-binding-table-indexing-rules, Indexing Rules>> section, and use
spelling "`any-hit`" consistently.
* Reconcile valid usage statement and text for sampled image layouts in
slink:VkWriteDescriptorSet
(https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/551).
* Make SPIR-V code:OpConvertUToPtr and code:OpConvertPtrToU operations
require a 64-bit integer for physical storage buffer pointers in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section.
* Update to KaTeX 10.0.
New Extensions:
* `VK_EXT_filter_cubic`
* `VK_NV_dedicated_allocation_image_aliasing`
* Update release number to 98.
Public Issues:
* Fix missing markup in flink:vkDestroyPipelineLayout valid usage
statement (pull request 882).
* Add missing contributors for `<<VK_EXT_buffer_device_address>>` (public
pull request 891).
Internal Issues:
* Detect nested bullet points in valid usage blocks and warn about them
during VUID assignment (internal issue 1382).
* Update the style guide to document the process for reserving new bits in
bitmask types (internal issue 1411).
* Clarify for slink:VkApplicationInfo::pname:apiVersion and in the
<<fundamentals-validusage-versions, Valid Usage for Newer Core
Versions>> section when it is valid for an application to use a certain
version of Vulkan API functionality (for an instance and for a
device/physical device); and when the validation layers must generate an
error (internal issue 1412).
* Add optional <<memory-model-availability-visibility, transitive
availability/visibility operations to the memory model, including a new
pname:vulkanMemoryModelAvailabilityVisibilityChains feature for
slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (internal issue
1460).
* Add the code:StorageBuffer storage class to those in the
<<interfaces-resources-descset, Descriptor Set Interface>> (internal
issue 1480).
* Add missing `returnedonly` tags for a number of returned extension
structures that can be passed in pname:pNext chains (internal issue
1515).
* Clean up and rearrange some spec language for
slink:VkRenderPassCreateInfo and slink:VkAttachmentReference.txt
(internal issue 1522).
* Correctly round the code:OpVectorTimesScalar and
code:OpMatrixTimesScalar SPIR-V operations in the <<Precision of core
SPIR-V Instructions>> table (internal merge request 2996).
* Work around cases in flink:vkCmdBeginTransformFeedbackEXT,
flink:vkCmdEndTransformFeedbackEXT, and
slink:VkPipelineCoverageModulationStateCreateInfoNV where an array
parameter is `optional` but the length is not in `vk.xml`. This is an
interim fix using `noautovalidity` + handcoded VU replacing those that
should be autogenerated (internal issue 2944 and
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/480).
* Remove redundant capability validation of the code:float16 and code:int8
SPIR-V capabilities from the <<spirvenv-capabilities, Capabilities>>
section, since they are already covered in the preceding table.
* Update check_spec_links script, including validation for reference page
open blocks. Fix errors identified by the script.
* Update release number to 96.
Public Issues:
* Fix typo in `vk.xml` for `structextends` attribute of
slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870).
* Fix links in optimized PDF output (public PR 879).
Internal Issues:
* Add a link to GitHub contributors in the <<credits, Other Credits>>
section (internal issue 808).
* Clarify the behavior of command aliases described in the <<versions,Core
Revisions>> and <<initialization-functionpointers, Command Function
Pointers>> sections and the registry schema document with respect to
whether they are or are not the same entry point, and what the behaviour
of the ftext:vkGet*ProcAddr commands is for each alias (internal issue
1462).
* Update slink:VkPipelineShaderStageCreateInfo valid usage statements for
writing to code:Layer and code:viewportIndex to apply to any vertex
processing stage (internal issue 1475).
* Make sparse image creation optional for Y'C~B~C~R~ formats in the
<<features-required-format-support, Required Format Support>> section
and the <<features-formats-requiring-sampler-ycbcr-conversion, Formats
requiring sampler Y'C~B~C~R~ conversion for
ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue
1476).
* Modify the valid usage statement for
flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the
pname:maxTransformFeedbackBufferDataStride limit rather than the
pname:maxVertexInputBindingStride limit, which is a better match for
transform feedback related operations (internal issue 1487).
* Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to
have the `uint32_t` type. This is an imcompatible change to an EXT
that's very recently released; although this is against usual Vulkan WG
policy, we discussed and consider this an acceptable risk, but have
polled the mesa-dev list in case there are use cases we missed (internal
issue 1492).
* Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and
`VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948).
* Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395`
(internal MR 2950).
* Add `check_spec_links.py` script, use it in Gitlab CI, and fix many
minor markup issues discovered by the script (internal MR 2955).
* Update `BUILD.md` to the current Ruby version (2.5.3), and make some
corresponding updates to per-platform build instructions (internal MR
2956).
* Fix binding numbers and other details in
flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks
(internal MR 2960).
* Remove some nautovalidity="true" in `vk.xml` for NV extensions where
it's clearly wrong (internal MR 2970).
* Update release number to 93.
Public Issues:
* Add spec language for ename:VK_INDEX_TYPE_NONE_NV and fix up
slink:VkAccelerationStructureTypeNV (public issue 848).
* Add missing suffix in description of slink:VkSubpassDescription2KHR
parameters (public pull request 851).
* Fix miscellaneous typos (public pull request 855).
* Add driver ID for Pastel (public pull request 856).
* Add missing include directive for slink:VkMemoryWin32HandlePropertiesKHR
implicit valid usage statements (public pull request 857).
Internal Issues:
* Restrict the storage classes permitted for SPIR-V atomics to what is
actually supported, in the <<spirvenv-module-validation, Validation
Rules within a Module>> section (internal issue 1123).
* Add a missing Valid Usage statement to slink:VkRenderPassCreateInfo for
the case pname:stencilLoadOp == ename:VK_LOAD_OP_CLEAR, pname:layout ==
ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL (internal issue
1408).
* Modify optimize-pdf script and Makefile to retain non-optimized original
PDF on errors (internal issue 1435).
* Add <<spirvenv-module-validation, SPIR-V validation rules>> stating that
only the listed code:BuiltIn decorations are permitted, and only when
relevante features and extensions are enabled (internal issue 1449).
* Remove some duplicated Valid Usage IDs created via cut & paste error
(internal issue 1455).
* Build HTML output for extension reference pages (internal issue 1461).
** Improve genRef.py handling of aliases defined inside other refpages.
** Emit aliases in pygenerator.py.
** Add XML noautovalidity flag for VkRenderPassCreateFlags until there
are some corresponding FlagBits defined.
** Corrected types= attribute on some refpage blocks to 'flags'
** Added refpage blocks for some missing types detected by CI tests.
* Fixed many Valid Usage statement issues in slink:VkRenderPassCreateInfo,
slink:VkSubpassDescription, slink:VkSubpassDescription2KHR,
slink:VkSubpassDependency2KHR, flink:vkCmdBeginRenderPass,
flink:vkCmdBeginRenderPass2KHR, and slink:VkRenderPassBeginInfo
discovered while adding `VK_KHR_create_renderpass2` to the validation
layers.
New Extensions:
* `VK_EXT_scalar_block_layout`
* `VK_EXT_separate_stencil_usage`
* Update release number to 92.
Public Issues:
* Move and modify valid usage statements dealing with pname:aspectMask in
flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and
slink:VkClearAttachment, so they are in places where all necessary
information is available (public issue 529).
* Fix math markup in <<textures-texel-anisotropic-filtering, Texel
Anisotropic Filtering>> (public pull request 840).
* Fix misspellings (public pull request 845).
Internal Issues:
* Add installation instructions and a Makefile "`chunked`" target for
chunked HTML generation (internal issue 1352).
* Fix pipeline mesh diagram style; also fix a minor bug in the classic
pipeline diagram where vertex/index buffers wrongly fed into the vertex
shader (internal issue 1436).
* Make asciidoctor ERROR output raise an error, and don't suppress
executed command output from CI make invocation (internal issue 1454).
* Minor typo fixes and clarifications for `VK_NV_raytracing`.
* Cleanup extension-specific properties
** Remove duplicated documentation for pname:maxDiscardRectangles,
pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they
shouldn't be documented with the other members of
slink:VkPhysicalDeviceLimits at all).
** Remove duplicate anchor for pname:maxVertexAttribDivisor
** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR
*** Always document pname:sType/pname:pNext (was inconsistent before)
*** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not
as slink:VkPhysicalDeviceProperties2KHR)
*** Always include Valid Usage statements last
* Update Makefile 'checklinks' target and associated scripts, and fix
markup problems identified by checkLinks.py, so that we can rely on the
checklinks script as part of Gitlab CI.
* 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.