* Update release number to 90.
Public Issues:
* Tag flink:vkQueueWaitIdle as `externsync` in `vk.xml` (public pull
request 815).
* Update README (public pull request 834).
* `VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples`
had confusing and contradictory valid usage statements when read in the
all-extensions spec build. Change them to explicitly mention which
extension each is for (public issue Vulkan-ValidationLayers/issues/353).
Internal Issues:
* Update `COPYING.md` to clarify how externally generated Vulkan
Specifications (for translations, annotations, or other reasons) must be
copyrighted, and acknowledge the Exception Clause on the `vk.xml`
license (internal issue 1079).
* Specify that flink:vkGetPhysicalDeviceImageFormatProperties may: return
pname:maxMipLevels 1 if the format is ycbcr (internal issue 1361).
* Clarify previously underspecified language for
flink:vkCmdPushConstants::pname:pStageFlags regarding use of push
constants across multiple pipelines (internal issue 1403).
* Fix typo in XML/headers for
ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
which was previously
etext:VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT
(internal issue 1428).
* Fix markup of equations that were sporadically breaking the
`optimize-pdf` step of PDF generation, due (apparently) to inconsistent
treatment of unwrapped multicharacter terms by different LaTeX parsers
(internal issue 1435).
* For the <<memory-model-synchronizes-with synchronizes-with>> memory
model relation cases involving a release barrier plus relaxed atomic
write, treat the atomic as if it were a release atomic and allow the
acquire side to read from its hypothetical release sequence. This is
more consistent with how C++ defines synchronization for release fences
(internal issue cross-api/memory-model#72).
* Minor editorial changes to the <<memory-model, memory model>> appendix
based on external feedback.
* Update release number to 89.
Public Issues:
* Clarify the reference to <<features-limits-mipmapPrecisionBits, mipmap
precision bits>> in the <<textures-image-level-selection, Image Level(s)
Selection>> section (public issue 660).
* Update <<debugging-object-types,VkObjectType and Vulkan Handle
Relationship>> table with missing types (public pull request 820).
* Miscellaneous minor markup cleanup (public pull request 822).
* Fix copy/paste bugs in the description of how implicit
availability/visibility operations for atomics/barriers are ordered in
the <<memory-model-availability-visibility-semantics, Availability and
Visibility Semantics>> section (public issue 823).
* Add missing shading_rate_image bit from mesh pipeline list in the
<<synchronization-pipeline-stages-types>> list (public issue 824).
Internal Issues:
* Clarify that only statically used members of a push constant block need
to be in the push constant range, and stop referring to block members as
"`variables`" in the <<interfaces-resources-pushconst, Push Constant
Interface>> section. This is related to
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/340
(internal issue 1401).
* Clarify interaction between flink:vkCmdSetDeviceMask and render pass
control commands in the slink:VkDeviceGroupRenderPassBeginInfo section
(internal issue 1416).
* Miscellaneous minor markup cleanup.
* Remove types defined by `"disabled"` extensions from
validextensionstructs in the XML processing scripts, so downstream code
generators don't emit them.
* Update release number to 88.
Public Issues:
* Make clear that
tname:PFN_vkDebugUtilsMessengerCallbackEXT::pname:messageTypes is a
bitmask, and correct a typo in the spelling of
slink:VkDebugUtilsMessengerCreateInfoEXT.txt::pname:messageType (public
pull request 800).
* Make an ABI-compatible change of the type of
slink:VkPhysicalDeviceDriverPropertiesKHR::pname:driverID to use the new
elink:VkDriverIdKHR type (public issue 811).
Internal Issues:
* Clarify for the <<features-features-shaderStorageImageExtendedFormats>>
feature and in the <<spirvenv-capabilities-table>> that the feature
means that all of the formats are supported, and that otherwise the
features can be queried per-format (internal issue 1273).
* Clarified interactions of `VK_EXT_external_memory_host` with host cache
management commands and structures flink:vkMapMemory,
flink:vkFlushMappedMemoryRanges, slink:VkMappedMemoryRange, and
flink:vkUnmapMemory using the new glossary term "`Host Mapped Device
Memory`" (internal issue 1385).
* Update the language for flink:vkCreateViSurfaceNN.txt describing the
pname:currentExtent of a VI surface to more accurately reflect current
capabilities, replacing "`undefined`" with more explicit behavior
(internal issue 1410).
New Extensions:
* `VK_EXT_calibrated_timestamps`
* `VK_EXT_image_drm_format_modifier` (this extension was previously
disabled in vk.xml, and has now been enabled after some changes to fix
performance issues).
* `VK_EXT_pci_bus_info`
* `VK_EXT_transform_feedback`
* `VK_GOOGLE_hlsl_functionality1`, exposing support for
`SPV_GOOGLE_hlsl_functionality1`.
* `VK_GOOGLE_decorate_string`, exposing support for
`SPV_GOOGLE_decorate_string`.
* Update release number to 87.
Public Issues:
* Merge flink:vkCmdPipelineBarrier self-dependency barrier VUs referring
to the same subpass dependency (public pull request 756).
* Describe default value of `"optional"` attribute in the registry schema
document (public issue 769)
* Fix links in <<VK_NVX_raytracing>> extension (public pull request 805).
* Mark the <<VK_KHR_mir_surface>> extension obsolete (see public issue 814
- does not close this, however).
* Fix missing endif in Image Creation block (public issue 817).
Internal Issues:
* Clarify that the compressed texture formats corresponding to
<<features-features-textureCompressionETC2>>,
<<features-features-textureCompressionASTC_LDR>>, and
<<features-features-textureCompressionBC>> is not contingent on the
feature bits, and may be supported even if the features are not enabled
(internal issue 663).
* Clarify that code:FragStencilRefEXT is output only in the
<<interfaces-builtin-variables, Built-In Variables>> section (internal
issue 1173).
* Identify and correct many overly-aggressive uses of "`undefined`", and
narrow them down, where straightforward to do so. Mark such resolved
uses of "`undefined`" with the custom undefined: macro. Add a new
<<writing-undefined, Describing Undefined Behavior>> section (internal
issue 1267).
* Don't require code:inline_uniform_block descriptors to be populated
before use in the flink:vkAllocateDescriptorSets section (internal issue
1380).
* Allow suppressing inline SVG images by controlling this with an
attribute set in the Makefile, rather than the explicit [%inline]
directive (internal issue 1391).
* Mark 'Khronos' as a registered trademark in several places, now that it
is one.
* Fix typo in the <<VK_KHR_shader_atomic_int64>> appendix using the GLSL
naming of the compare exchange op when referring to the SPIR-V op.
* Specify in the flink:vkGetPhysicalDeviceQueueFamilyProperties section
that all implementations must support at least one queue family, and
that every queue family must contain at least one queue.
* Make slink:VkPipelineDynamicStateCreateInfo::pname:dynamicStateCount,
slink:VkSampleLocationsInfoEXT::pname:sampleLocationsPerPixel, and
slink:VkSampleLocationsInfoEXT::pname:sampleLocationsCount optional, to
fix bogus implicit valid usage checks that were causing failures in the
conformance tests.
* Fix vendor tag in reserved extension 237 constants. Does not affect
anything since it's just a placeholder, but this should avoid further
comments.
* Minor markup fixes in some extension appendices.
New Extensions:
* `<<VK_FUCHSIA_imagepipe_surface>>`
* Update release number to 86.
Internal Issues:
* Add new <<resources-image-creation-limits, Image Creation Limits>>
section and reference that from valid usage statements, reducing
combinatorial complexity of extension-dependent VUs. Also fixes some
underspecified limits (such as pname:maxMipLevels) in the VUs for
slink:VkImageCreateInfo when
slink:VkExternalMemoryImageCreateInfo::pname:externalMemoryHandles
contains multiple bits, and fixes incorrectly (and underspecified)
limits when an Android external format is used (internal issue 1370).
* Remove unused "`Fragment Area Granularity`" glossary entry accidentally
introduced in the 1.1.85 update.
New Extensions:
* `VK_KHR_driver_properties`
* `VK_KHR_shader_atomic_int64`
* The specification sources contain text for another extension,
`VK_EXT_image_drm_format_modifier`, but this extension is not yet
complete, and is marked disabled in `vk.xml`. The extension will be
enabled, and become part of the spec, only when the authors decide it is
ready.
* Update release number to 85.
Public Issues:
* Add self-dependency ename:VK_DEPENDENCY_BY_REGION_BIT valid usage
statements for slink:VkSubpassDependency(public pull request 778).
* Apply fix from pull request 742 to slink:VkSubpassDependency and
slink:VkSubpassDependency2 (public pull request 779).
* Specify the units of slink:VkBufferImageCopy::pname:bufferRowLength and
pname:bufferImageHeight as texels (public pull request 781).
* Better specify promoted parameter mapping in the
`<<VK_KHR_create_renderpass2>>` appendix (public pull request 782).
Internal Issues:
* Only include the <<fundamentals-validusage-versions, Valid Usage for
Newer Core Versions>> section in Vulkan 1.1 or later (internal issue
1381).
Other Issues:
* Clean up redundant valid usage language for the
`VK_ANDROID_external_memory_android_hardware_buffer` extension
interaction with slink:VkImageCreateInfo.
* Fix error in a flag name within valid usage statements for
slink:VkMemoryAllocateInfo.
* Clarify that memory types are not totally ordered in
slink:VkPhysicalDeviceMemoryProperties.
* For slink:VkWriteDescriptorSetInlineUniformBlockEXT, set
structextends="VkWriteDescriptorSet" in `vk.xml`, and make
slink:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT::pname:pBindingFlags
optional.
* Add documentation of 'provisional' XML attribute to registry.txt.
New Extensions:
* `VK_NV_compute_shader_derivatives`
* `VK_NV_corner_sampled_image`
* `VK_NV_fragment_shader_barycentric`
* `VK_NV_mesh_shader`
* `VK_NV_representative_fragment_test`
* `VK_NV_scissor_exclusive`
* `VK_NV_shader_image_footprint`
* `VK_NV_shading_rate_image`
* `VK_NVX_raytracing`
* Update release number to 84.
Public Issues:
* Fix code sample in the `<<VK_EXT_debug_utils>>` extension (public issue
751).
* Fix misleading comment in `vk.xml` for
slink:VkDescriptorBufferInfo::pname:buffer (public pull request 762).
* Fix formatting of deprecation attributes in schema doc (public pull
request 767).
* Change `can` to `may` in the description of
elink:VkSparseImageFormatFlagBits, which are return values from queries
(public pull request 768).
* Prettify generated contact list in extension appendices, adding logos
and a New Issue link (public pull request 770).
* Enable sRGB conversion based on the image view format, not the image
format, in the <<textures-format-conversion, Format Conversion>> section
(public pull request 773).
* Fix typo in equation in the <<primsrast-lines-basic, Basic Line Segment
Rasterization>> section (public pull request 780).
* Fix special characters in GitHub contacts links (public pull request
783).
* Make clean_pdf target remove pdf folder (public pull request 784).
* Fix styleguide bad markup of block continuation (public pull request
792).
Other Issues:
* Allow a zero vertex attribute divisor in the
`<<VK_EXT_vertex_attribute_divisor>>` extension, exposed via the
slink:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT feature.
* Add missing `structextends="VkDeviceCreateInfo"` to
slink:VkPhysicalDeviceShaderDrawParameterFeatures and
slink:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.
New Extensions:
* `VK_KHR_memory_model`
* `VK_EXT_astc_decode_mode`
* `VK_EXT_inline_uniform_block`
* Update release number to 83.
Public Issues:
* Use [%inline] directive for all SVGs to reduce file size (public pull
request 734).
* Convert XML `value` aliases into \<alias> tags (public pull request
747).
* Fix metadoc script showing non-selected extensions (public pull request
748).
* Reapply public pull request 742 to make
ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT part of the
graphices pipeline (public pull request 749).
* Fix numerous typos related to accidental duplication of words (public
pull request 760).
* Fix `vk.xml` contact typos (public pull request 761).
Internal Issues:
* Add images to the <<Standard sample locations>> table (internal issue
1115).
* Add a definition of "`Inherited from`" precision in the
<<spirvenv-precision-operation, Precision and Operation of SPIR-V
Instructions>> section (internal issue 1314).
* Clarify that both built-in and user-defined variables count against the
location limits for shader interfaces in the
<<interfaces-iointerfaces-locations, Location Assignment>> section
(internal issue 1316).
* Merge "`required`" capabilities into the <<spirvenv-capabilities-table,
list of optional: SPIR-V capabilities>> (internal issue 1320).
* Relax the layout matching rules of descriptors referring to only a
single aspect of a depth/stencil image, by reference to the new
<<resources-image-layouts-matching-rule, Image Layout Matching Rules>>
section (internal issue 1346).
* Revert extension metadoc generator warning about name mismatches to a
diagnostic, due to annoying warnings in build output for conscious
choices we've made (internal issue 1351).
Other Issues:
* Reserve bits for pending vendor extensions.
* Make Vulkan consistent with SPIR-V regarding code:DepthReplacing and
code:FragDepth in the <<interfaces-builtin-variables, Built-In
Variables>> section.
* Add missing ChangeLog entries for the previous three spec updates.
* Update release number to 82.
Public Issues:
* Add flink:vkDestroyPipelineLayout valid usage statement that the layout
must not have been used with command buffers still in the recording
state (public issue 730).
* Correct \<unused> tag for elink:VkResult in `vk.xml` (public merge
request 746).
Internal Issues:
* Add a valid usage statement to flink:vkQueueSubmit, and similar language
to the definitions of <<synchronization-queue-transfers-acquire, acquire
operations>> requiring that an acquire operation follow a previous
release of the same subresource (internal issue 1290).
* Add <<resources-image-format-features,Image Format Features>> and
<<resources-image-view-format-features,Image View Format Features>>
sections that precisely define the slink:VkFormatFeatures supported by
images and image views, and rewrite valid usage statements to reference
these sections instead of duplicating language (internal issue 1310).
* Reword and consolidate synchronization valid usage statements for
flink:vkCmdPipelineBarrier such that they correctly account for mutiple
possible self-dependencies (internal issue 1322).
* Change order of <<Standard sample locations>> for 2xMSAA (internal issue
1347).
* Add definitions of "`<<Correctly Rounded>>`" and "`<<ULP>>`" in the
SPIR-V environment appendix, and "`Units in the Last Place (ULP)`" in
the glossary.
New Extensions:
* `VK_NV_device_diagnostic_checkpoints`
* Update release number to 81.
Public Issues:
* Fix missing "`valid`" phrasing in some obscure cases (public pull
request 605).
* Replace improper use of cannot: referring to the implementation in the
description of the
<<features-limits-maxUpdateAfterBindDescriptorsInAllPools,
pname:maxUpdateAfterBindDescriptorsInAllPools>> limit (public pull
request 738).
* Reorder description of bits in elink:VkPipelineStageFlagBits and the
<<synchronization-pipeline-stages-supported, Supported pipeline stage
flags>> table to match their definition order (public pull request 740).
* Add description of ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
to elink:VkBufferUsageFlagBits (public pull request 741).
* Fix value usage statement for slink:VkSubpassDependency stage mask
parameters (public pull request 742).
* Fix visible markup in registry schema document (public pull request
#745).
Internal Issues:
* Make the <<geometry-invocations, geometry shader invocation
description>> and <<shaders-geometry-execution, Geometry Shader
Execution>> descriptions consistent with other pipeline stages (internal
issue 1325).
* Mark the `VK_NV_glsl_shader` extension as deprecated.
* Adjust the per-instance vertex attribute offset formula specified by
`VK_EXT_vertex_attribute_divisor` for
slink:VkVertexInputBindingDivisorDescriptionEXT so that the interaction
between pname:firstInstance and pname:divisor matches the OpenGL
convention (internal issue 1333).
- update script to detect better structs that do not need "valid"
- update vk.xml and schema to say `noautovalidity` as a hint to the
script
- fix missing const in VkValidationFlagsEXT
- update some cases that were probably avoiding the bug