Vulkan API specifications 1.0.4 released

Started by JeGX, February 26, 2016, 01:51:30 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JeGX

QuoteChange log for June 30, 2022 Vulkan 1.3.219 spec update:
  * Update release number to 219 for this update.

Public Issues:

  * Update pipeline image to move push constants outside of descriptor sets
    (public issue 1867).
  * Correct code:StencilRefLessFrontEXT to code:DepthLess in the early depth
    test portion of the <<fragops, Fragment Operations>> chapter (public
    pull request 1876).
  * Add new driver id ename:VK_DRIVER_ID_MESA_DOZEN (public pull request
    1877).
  * Relax slink:VkRenderPassCreateInfo valid usage statements 02517 and
    02518 to allow ename:VK_SUBPASS_EXTERNAL (public pull request 1878).

Internal Issues:

  * Move validation of read-only depth/stencil layout with respect to
    depth/stencil write from slink:VkGraphicsPipelineCreateInfo to draw time
    validation (internal issue 3110).
  * Clarify buffer view format features by replacing the undefined term
    "`formatted load`" (internal issue 3124).
  * Clean up markup of feature structures, and add missing boilerplate
    pname:sType / pname:pNext member descriptions where still missing
    (internal issue 3128).
  * Add new XML `limittype` attribute values to better express constraints,
    update which structure type's members are allowed to have the attribute,
    and update attributes accordingly (internal merge request 5172).
  * Disallow more combinations of ray flags in the
    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
    section and corresponding text in the <<ray-traversal, Ray Traversal>>,
    chapter as well as better documenting already disallowed cases (internal
    merge request 5220).
  * Add <<descriptorsets-updates-consecutive, wording for extrapolated
    descriptor updates>> on ename:VK_DESCRIPTOR_TYPE_MUTABLE_VALVE (internal
    merge request 5251).
  * Clarify alignment requirements for device generated commands. in
    slink:VkIndirectCommandsLayoutCreateInfoNV and
    slink:VkIndirectCommandsLayoutTokenNV (internal merge request 5252).
  * Add `validstructs` attribute to XML `param` tags to specify actual valid
    structures allowed in cases where an abstract formal parameter type
    (slink:VkBaseInStructure or slink:VkBaseOutStructure) is passed,
    primarily to support the Ash Rust binding generator (internal merge
    request 5253).
  * Add guidance on defining feature structures for WSI extensions in the
    "`Feature Structures`" section of the style guide (internal merge
    request 5266).

New Extensions:

  * apiext:VK_EXT_multisampled_render_to_single_sampled
  * apiext:VK_EXT_shader_module_identifier

source: https://github.com/KhronosGroup/Vulkan-Docs/commit/080f66a96b61419b8663872d6cab6ce68a3123e8

New extensions:

- VK_EXT_multisampled_render_to_single_sampled
QuoteWith careful usage of resolve attachments, multisampled image memory
allocated with ename:VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT, pname:loadOp
not equal to ename:VK_ATTACHMENT_LOAD_OP_LOAD and pname:storeOp not equal to
ename:VK_ATTACHMENT_STORE_OP_STORE, a Vulkan application is able to
efficiently perform multisampled rendering without incurring any additional
memory penalty on some implementations.

Under certain circumstances however, the application may not be able to
complete its multisampled rendering within a single render pass; for example
if it does partial rasterization from frame to frame, blending on an image
from a previous frame, or in emulation of
GL_EXT_multisampled_render_to_texture.
In such cases, the application can use an initial subpass to effectively
load single-sampled data from the next subpass's resolve attachment and fill
in the multisampled attachment which otherwise uses pname:loadOp equal to
ename:VK_ATTACHMENT_LOAD_OP_DONT_CARE.
However, this is not always possible (for example for stencil in the absence
of VK_EXT_shader_stencil_export) and has multiple drawbacks.

Some implementations are able to perform said operation efficiently in
hardware, effectively loading a multisampled attachment from the contents of
a single sampled one.
Together with the ability to perform a resolve operation at the end of a
subpass, these implementations are able to perform multisampled rendering on
single-sampled attachments with no extra memory or bandwidth overhead.
This extension exposes this capability by allowing a framebuffer and render
pass to include single-sampled attachments while rendering is done with a
specified number of samples.

- VK_EXT_shader_module_identifier
QuoteSome applications generate SPIR-V code at runtime.
When pipeline caches are primed, either explicitly through e.g.
slink:VkPipelineCache mechanisms, or implicitly through driver managed
caches, having to re-generate SPIR-V modules is redundant.
SPIR-V modules could be cached on disk by an application, but the extra disk
size requirement might be prohibitive in some use cases.

This extension adds the ability for an application to query a small
identifier associated with a slink:VkShaderModule.
On subsequent runs of the application, the same identifier can: be provided
in lieu of a slink:VkShaderModule object.
A pipeline creation call with such a module may: succeed if a pipeline could
be created without invoking compilation, and information inside the SPIR-V
module is not required by the implementation.

ename:VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT must: be used
if only the identifier is provided, and this use case is intended to work
like a non-blocking, speculative compile.
Applications can: fallback as necessary.

The main motivation for identifying the module itself and not the entire
pipeline is that pipeline identifiers change when a driver is updated, but
module identifiers are expected to be stable for any particular driver
implementation.
This approach is helpful for shader pre-compilation systems which can prime
pipeline caches ahead of time.
When on-disk pipeline caches are updated, the same shader identifiers could
lead to a pipeline cache hit.

JeGX

QuoteChange log for July 7, 2022 Vulkan 1.3.220 spec update:
  * Update release number to 220 for this update.

Public Issues:

  * Add a note to elink:VkColorSpaceKHR regarding use of
    elink:VK_COLOR_SPACE_PASS_THROUGH_EXT for a linear or non-gamma transfer
    function color space (public merge request 1729).
  * Fix clamp expression for d_{lo} in the
    <<textures-level-of-detail-operation, Level-of-Detail Operation>>
    section (partial fix for public issue 1836).
  * Update <<spirvenv-module-validation-standalone, Standalone SPIR-V
    Validation>> to add explicit valid usage statements for code:Uniform
    objects being read only, and for code:Block decorations (public merge
    request 1879).
  * Add an issue to apiext:VK_KHR_fragment_shader_barycentric for
    interactions with MSAA (public merge request 1881).
  * Fix XML tagging of slink:VkShaderModuleCreateInfo and add an explicit
    valid usage statement so this structure can be validated both as an
    explicit parameter, and as part of the pname:pNext chain of
    slink:VkPipelineShaderStageCreateInfo (public issue 1883, but a broader
    fix in the validation scripts for this case will eventually be
    required).

Internal Issues:

  * Refactor and update descriptor / render pass valid usage statements for
    slink:VkAttachmentDescription, slink:VkAttachmentDescription2,
    slink:VkAttachmentReference, slink:VkAttachmentReference2
    slink:VkRenderPassCreateInfo2, slink:VkSubpassDescription, and
    slink:VkSubpassDescription2 (internal issue 2559).
  * Modify all of the query commands to use synchronization scope language,
    in order to better describe how the commands synchronize with each other
    (internal issue 3089).
  * Add valid usage statements to slink:VkGraphicsPipelineCreateInfo
    slink:VkRayTracingPipelineCreateInfoKHR, and
    slink:VkRayTracingPipelineCreateInfoNV restricting the allowed shader
    stages (internal issue 3132).
  * Remove over-constrained list of data types that can be used together
    with code:PerVertexKHR in the
    <<shaders-interpolation-decorations-pervertexkhr>> section (internal
    issue 3134).
  * Document for flink:vkGetAccelerationStructureBuildSizesKHR that
    slink:VkAccelerationStructureGeometryKHR::pname:flags must be invariant
    between the size query and the build (internal issue 3147).
  * Update slink:VkShaderModuleValidationCacheCreateInfoEXT XML to mark that
    it extends VkPipelineShaderStageCreateInfo (internal merge request
    5210).
  * Fix <<resources-image-format-features, Image Format Features>> section
    discussion of DRM format modifiers, and some related miscellaneous typos
    (internal merge request 5255).
  * Clarify that code:RelaxedPrecision does not need to match in the
    <<interfaces-iointerfaces-matching, Interface Matching>> rules (internal
    issue 3053).

source: https://github.com/KhronosGroup/Vulkan-Docs/commit/29f44f378cdeb1b96b47ce00fb32f49954f2d29d

Stefan

#182
QuoteChange log for July 14, 2022 Vulkan 1.3.221 spec update:
  * Update release number to 221 for this update.
Public Issues:
  * Add dependency of `apiext:VK_EXT_blend_operation_advanced` on
    `apiext:VK_KHR_get_physical_device_properties2`. (public merge request
    1887).
  * Update xrefs to features so the feature name is used as the link text,
    and marked up consistently. Added a section to the style guide on markup
    of feature xrefs (public issue 1889).
Internal Issues:
  * Consolidate and clarify interpolation of fragment inputs in the
    <<primsrast-multisampling, Multisampling>>, <<primsrast-lines-basic,
    Basic Line Segment Rasterization>>, <<primsrast-polygons-basic, Basic
    Polygon Rasterization>>, and <<shaders-interpolation-decorations,
    Interpolation Decorations>> sections (internal issue 3108).
  * Add gitlab CI step to regenerate and test the Rust "`Ash`" Vulkan
    bindings (internal merge request 5216).
  * Note that the result of a <<queries-primitives-generated, Primitives
    Generated Query>> is similar to
    ename:VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, but not
    affected by hardware details (internal issue 3131).
  * Swap direction of aliasing of enums shared by
    `apiext:VK_EXT_filter_cubic` and `apiext:VK_IMG_filter_cubic` to be
    consistent with other enums aliased by promotion, and add a note to the
    registry schema document to help clarify how the `alias` XML attribute
    is used (internal merge request 5276).
  * Update XML SPIR-V capabilities section so that
    code:RayTraversalPrimitiveCullingKHR is also enabled by
    `apiext:VK_KHR_ray_query` (internal issue 3156).
  * Remove reference to adding
    <<features-vulkanMemoryModelAvailabilityVisibilityChains,
    pname:vulkanMemoryModelAvailabilityVisibilityChains>> as a
    <<versions-1.3-new-features, new Vulkan 1.3 feature>>, which did not
    happen (merge request 5286).
New Extensions:
  * `apiext:VK_EXT_pipeline_robustness`


source: https://github.com/KhronosGroup/Vulkan-Docs/commit/9aeaebb24b6faa1f05c7a95b0328beecbe195927


New extension:

- VK_EXT_pipeline_robustness
QuoteVK_EXT_pipeline_robustness allows users to request robustness on a
per-pipeline stage basis.

As <<features-robustBufferAccess, pname:robustBufferAccess>> and other
robustness features may have an adverse effect on performance, this
extension is designed to allow users to request robust behavior only where
it may be needed.

Stefan

#183
QuoteChange log for July 21, 2022 Vulkan 1.3.222 spec update:
  * Update release number to 222 for this update.
Public Issues:
  * Use correct feature in
    ename:VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
    description (public pull request 1892).
  * GitHub CI: Regenerate and build-test Rust Vulkan bindings (Ash crate)
    (public pull request 1894).
Internal Issues:
  * Clarify that flink:vkCmdClearAttachments can only clear layers in the
    current render pass instance. (internal issue 3157).
  * Clarify that access to code:Function and code:Private memory works in
    <<shaders-helper-invocations, Helper Invocations>> (internal issue
    3158).
  * Add CI check for bullet list items not preceded by exactly two spaces
    (internal issue 3162).
  * Remove slink:VkGraphicsPipelineCreateInfo valid usage statement 00726,
    superceded by 06897 (internal merge request 5295).
  * Update CI to cache Rust crates and build intermediates. (internal merge
    request 5297).
  * Use `noauto` `limittype` attribute values for values that are
    identifiers and cannot be compared, such as PCI bus IDs, driver
    versions, UUIDs, descriptions, etc. (internal merge request 5299).
  * Specify that slink:VkGeneratedCommandsInfoNV::pname:preprocessBuffer
    should not be copied for reuse (internal merge request 5301).
  * Update contact and contributor information for some vendor extensions
    (internal merge request 5304).
  * Partial sync with OpenXR scripts (internal merge request 5308).
New Extensions:
  * `apiext:VK_QCOM_image_processing`
  * `apiext:VK_QCOM_tile_properties`




source: https://github.com/KhronosGroup/Vulkan-Docs/commit/8dcc7469b01529600b712596a5a48ec8c710e228

New extensions:

- VK_QCOM_image_processing
QuoteGPUs are commonly used to process images for various applications from 3D
graphics to UI and from composition to compute applications.
Simple scaling and filtering can be done with bilinear filtering, which
comes for free during texture sampling.
However, as screen sizes get larger and more use-cases rely on GPU such as
camera and video post-processing needs, there is increasing demand for GPU
to support higher order filtering and other advanced image processing.

This extension introduces a new set of SPIR-V built-in functions for image
processing.
It exposes the following new imaging operations

  * The `OpImageSampleWeightedQCOM` instruction takes 3 operands: _sampled
    image_, _weight image_, and texture coordinates.
    The instruction computes a weighted average of an MxN region of texels
  in the _sampled image_, using a set of MxN weights in the _weight image_.
  * The `OpImageBoxFilterQCOM` instruction takes 3 operands: _sampled
    image_, _box size_, and texture coordinates.
    Note that _box size_ specifies a floating point width and height in
    texels.
    The instruction computes a weighted average of all texels in the
    _sampled image_ that are covered (either partially or fully) by a box
    with the specified size and centered at the specified texture
    coordinates.
  * The `OpImageBlockMatchSADQCOM` and `OpImageBlockMatchSSDQCOM`
    instructions each takes 5 operands: _target image_, _target
    coordinates_, _reference image_, _reference coordinates_, and _block
    size_.
    Each instruction computes an error metric, that describes whether a
    block of texels in the _target image_ matches a corresponding block of
    texels in the _reference image_.
    The error metric is computed per-component.
    `OpImageBlockMatchSADQCOM` computes "Sum Of Absolute Difference" and
    `OpImageBlockMatchSSDQCOM` computes "Sum of Squared Difference".

Each of the image processing instructions operate only on 2D images.
The instructions do not-support sampling of mipmap, multi-plane,
multi-layer, multi-sampled, or depth/stencil images.
The instructions can be used in any shader stage.

Implementations of this this extension should support these operations
natively at the HW instruction level, offering potential performance gains
as well as ease of development.


- VK_QCOM_tile_properties
QuoteThis extension allows an application to query the tile properties.
This extension supports both renderpasses and dynamic rendering.

Stefan

QuoteChange log for July 28, 2022 Vulkan 1.3.223 spec update:
  * Update release number to 223 for this update.
Public Issues:
  * Clarify external synchronization requirements for
    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT and
    ename:VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT
    elink:VkDescriptorBindingFlagBits and flink:vkUpdateDescriptorSets
    (public issue 1713).
  * Add Vulkan 1.0 valid usage statement for *Subgroup* memory scope to
    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
    (public merge request 1900).
  * Move "`Hit Kind`" valid usage statement from standalone to runtime
    SPIR-V validation statements (public merge request 1903).
Internal Issues:
  * Add the `videocoding` attribute to XML tag:command tags to specify if
    commands can be issued only inside a video coding scope, only outside,
    or both. Update the validity generator script to add a new column to the
    "`Command Properties`" table reflecting this attribute (internal issue
    2593).
  * Terminology improvements and glossary additions for the provisional
    video extensions (internal issue 2609).
  * Add valid usage statement disallowing Android hardware buffers for
    flink:vkGetDeviceImageMemoryRequirements (internal issue 3107).
  * Document why some video and ray tracing bits are defined for
    elink:VkPipelineStageFlagBits2 but not for
    elink:VkPipelineStageFlagBits, and reserve those bits in `vk.xml`
    (internal issue 3120).
  * Fix minor typos and markup issues in apiext:VK_QCOM_image_processing
    (internal issues 3171, 3172).
  * Add interaction with apiext:VK_QCOM_tile_properties to
    apiext:VK_QCOM_render_pass_transform appendix (internal merge request
    5309).
  * Partial sync with OpenXR scripts (internal merge request 5312).
  * Clarify that flink:vkGetQueryPoolResults may return ename:VK_NOT_READY
    (internal merge request 5313).
  * Fix typos identified by the "`codespell`" tool (internal merge request
    5316).
  * Fix XML `limittype` attributes for pname:*subgroupSize members from
    `"exact"` to `"min,pot"`
    (KhronosGroup/Vulkan-Profiles#226).


 
Source: https://github.com/KhronosGroup/Vulkan-Docs/commit/9ecfc67442754c9e4c4fecf5e61c48483608a074

JeGX

QuoteChange log for August 4, 2022 Vulkan 1.3.224 spec update:
  * Update release number to 224 for this update.

Public Issues:

  * Add issues to the apiext:VK_KHR_dynamic_rendering proposal document
    discussing render area granularity (public issue 1899).

Internal Issues:

  * Add missing video `queues` attribute values to commands (internal issue
    1593).
  * Add valid usage statements to enforce render pass scope restrictions on
    flink:vkBeginQuery and flink:vkEndQuery pairs (internal issue 3119).
  * Remove overly restrictive valid usage statements for Y'CbCr layered
    image creation from slink:VkImageViewCreateInfo (internal issue 3180).
  * Enable `codespell` tool in CI to prevent many typos. Switch to pulling
    the updated `asciidoctor-spec` Docker container image by SHA256 instead
    of name, to work around cache pollution problems in Gitlab and Github
    Actions CI (internal merge request 5318).
  * Add "`Description`" sections to the provisional video extension
    appendices (internal merge request 5310).
  * Fix codec-specific stext:VkVideo{De,En}code*CapabilitiesEXT structure
    chaining in XML to refer to the root slink:VkVideoCapabilitiesKHR
    structure that is extended (internal merge request 5323).
  * Update slink:VkImageViewCreateInfo valid usage statement to not require
    a slink:VkSamplerYcbcrConversionInfo structure for non-sampleable image
    views requiring sampler Y'CbCr conversion (internal merge request 5324).

New Extensions

  * apiext:VK_EXT_attachment_feedback_loop_layout
    (internal merge request 4469).
  * apiext:VK_SEC_amigo_profiling - internal extension used within ANGLE, no
    actual spec language exists yet (internal merge request 5332).

source: https://github.com/KhronosGroup/Vulkan-Docs/commit/5ca346bf39db36ff06e24686f0a815754c5f7c16

New extensions:

- VK_EXT_attachment_feedback_loop_layout
QuoteThis extension adds a new image layout,
ename:VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT, which allows
applications to have an image layout in which they are able to both render
to and sample/fetch from the same subresource of an image in a given render
pass.



- VK_SEC_amigo_profiling
QuoteThis extension is intended to communicate information from layered API
implementations such as ANGLE to internal proprietary system schedulers.
It has no behavioural implications beyond enabling more intelligent
behaviour from the system scheduler.

Application developers should avoid using this extension.
It is documented solely for the benefit of tools and layer developers, who
may need to manipulate pname:pNext chains that include these structures.

JeGX

QuoteChange log for August 18, 2022 Vulkan 1.3.225 spec update:
  * Update release number to 225 for this update.

Public Issues:

  * Remove unused code from `spirvcapgenerator.py` (public merge request
    1912).
  * Remove redundant ftext:vkCmdDraw*Indirect valid usage statements 00478
    and 00530, which are already covered by valid usage statements for the
    corresponding stext:VkDraw*IndirectCommand (public merge request 1913).

Internal Issues:

  * Clarify <<renderpass-attachment-contents, attachment preserve behavior>>
    when multiview is enabled (internal issue 3031).
  * Update apiext:VK_KHR_format_feature_flags2 to version 2, ensuring that
    implementations report
    slink:VkFormatProperties3KHR::pname:bufferFeatures correctly for storage
    reads/writes without format, and replace old valid usage statements
    06423 and 06424 for draw dispatch commands with new statements
    expressing the constraints accurately (internal issue 3091).
  * Make provisional video APIs follow Vulkan API conventions more closely
    (internal issue 3141).
  * Move valid usage statement 06879 for
    slink:VkMultisampledRenderToSingleSampledInfoEXT to the
    slink:VkFramebufferCreateInfo and slink:VkRenderPassAttachmentBeginInfo
    valid usage blocks, where the information needed to evaluate it is known
    (internal issue 3169).
  * Change www.khronos.org/registry/ URLs to registry.khronos.org/ following
    a recent change to Khronos webservers (internal issue 3175).
  * Allow applications to not provide fragment shader via clarifying edits
    in the introduction to the <<fragops, Fragment Operations>> chapter and
    in valid usage statement 06896 for slink:VkGraphicsPipelineCreateInfo
    (internal issue 3178).
  * Fix slink:VkRayTracingPipelineCreateInfoKHR valid usage statement 03590
    to correctly refer to pname:pLibraryInterface (internal merge request
    5333).
  * Fix typo in slink:VkPipelineRasterizationLineStateCreateInfoEXT valid
    usage statement 02770 to correctly refer to the pname:smoothLines
    feature (internal merge request 5349).
  * Fix normative language in the conservative rasterization section to use
    `may:` instead of `will` (internal merge request 5354).

New Extensions:

  * apiext:VK_EXT_rasterization_order_attachment_access

source: https://github.com/KhronosGroup/Vulkan-Docs/commit/1f6a09901674b320bff7cf36c364a461cf1069a6

New Extension

- VK_EXT_rasterization_order_attachment_access
QuoteThis extension extends the mechanism of input attachments to allow access to
framebuffer attachments that are used both as input and as color or
depth/stencil attachments from one fragment to the next, in rasterization
order, without explicit synchronization.

JeGX

QuoteChange log for September 1, 2022 Vulkan 1.3.226 spec update:
Public Issues:

  * Add missing SPV_KHR_ray_tracing storage class valid usage statement for
    code:ShaderRecordBufferKHR (public merge request 1895).
  * Add a NOTE to slink:VkAccelerationStructureCreateInfoKHR about
    ename:VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR (public issue 1904).
  * Add a standalone SPIR-V valid usage statement for code:OpImageWrite
    component mismatch (public merge request 1916).
  * Generate the "`SPIRV Image Format`" and "`Plane Compatibility Format`"
    tables from `vk.xml` (public merge request 1922).
  * Add a NOTE to dlink:VK_USE_64_BIT_PTR_DEFINES to define its availability
    Vulkan headers starting with VK_HEADER_VERSION 174 (public merge request
    1918).

Internal Issues:

  * Update issue #2 in the apiext:VK_EXT_depth_range_unrestricted appendix
    to match core spec text (internal issue 2445).
  * Clarify <<shaders-interpolation-decorations, Interpolation decorations>>
    in pre-rasterization (internal issue 2721).
  * Relax implicit layer disabling requirements in slink:VkApplicationInfo
    (internal issue 2856).
  * Update <requires> `extension` attribute in XML to support multiple
    extensions with AND/OR connectives (internal issue 2922).
  * Update provisional video API queries for usage hint and optimized
    implementation settings (internal issue 2986).
  * Relax slink:VkImageViewCreateInfo valid usage statement 01584 to allow
    layers/levels for compressed format views of compressed format images
    (internal issue 3063).
  * Remove slink:VkImageViewCreateInfo valid usage statement 04739 (internal
    issue 3164).
  * Specify that addresses returned by flink:vkGetBufferDeviceAddress must
    satisfy the alignment requirements of the device (internal issue 3176).
  * Update makeSpec script to properly clean OUTDIR when it's explicitly
    specified (internal issue 3194).
  * Ensure that a mutable type list is provided in
    slink:VkDescriptorSetLayoutCreateInfo when required (internal issue
    3198).
  * Update clarity of the Khronos specification copyright statement
    regarding normative references to external specifications and the
    Khronos Intellectual Property Rights Policy (internal issue 3203).
  * Rename '.txt' -> '.adoc' for all asciidoctor markup files in the
    repository, and update scripts and tools to match (internal issue 3204)
  * Tag apiext:VK_ARM_rasterization_order_attachment_access as promoted to
    EXT in XML (internal merge request 5364)
  * Fix a typo in the "` Color Sample Coverage`" section (internal merge
    request 5367)
  * Fix apiext:VK_EXT_fragment_density_map2 appendix to include the correct
    extension interface information (internal merge request 5368)
  * Remove unwieldy and unnecessary list of copy functions from the
    introduction of the <<copies, Copy Commands>> chapter (merge request
    5373).
  * Move asciidoctor attributes enabling version and extension attributes
    into a generated file `specattribs.adoc` (internal merge request 5396).

New Extensions

  * apiext:VK_EXT_depth_clamp_01
  * apiext:VK_EXT_mesh_shader

source: https://github.com/KhronosGroup/Vulkan-Docs/commit/135da3a538263ef0d194cab25e2bb091119bdc42

New extensions:

- VK_EXT_depth_clamp_zero_one
QuoteThis extension gives defined behavior to fragment depth values which end up outside the conventional [0, 1] range. It can be used to ensure portability in edge cases of features like depthBias. The particular behavior is chosen to match OpenGL to aid porting or emulation.

- VK_EXT_mesh_shader
QuoteThis extension provides a new mechanism allowing applications to generate collections of geometric primitives via programmable mesh shading. It is an alternative to the existing programmable primitive shading pipeline, which relied on generating input primitives by a fixed function assembler as well as fixed function vertex fetch.

New or Modified Built-In Variables
- CullPrimitiveEXT
- PrimitivePointIndicesEXT
- PrimitiveLineIndicesEXT
- PrimitiveTriangleIndicesEXT

Stefan

#188
QuoteChange log for September 8, 2022 Vulkan 1.3.227 spec update:
Public Issues:
  * Add interactions for dynamic rendering in flink:vkCmdClearAttachments
    (public issue 1835).
  * Add code:MinLod clamping rules to <<textures-gather, Texel Gathering>>
    and update the <<features-minLod, pname:minLod>> feature and
    slink:VkImageViewMinLodCreateInfoEXT to reference that language
    (partially resolves public issue 1836).
  * Remove `ifdef` from <<spirvenv-module-validation-standalone, Standalone
    SPIR-V>> valid usage statement (public pull request 1926).
  * Assign VUID 07119 to a <<spirvenv-module-validation-standalone,
    Standalone SPIR-V>> valid usage statement that didn't get one in the
    last spec update (public issue 1928).
  * Add missing <<spirvenv-module-validation-runtime, Runtime SPIR-V>> valid
    usage statements for apiext:VK_EXT_mesh_shader (public pull request
    1931).
  * Fix duplicate
    slink:VkGraphicsPipelineCreateInfo::pname:pInputAssemblyState
    description (public issue 1934).
Internal Issues:
  * Add a valid usage statement for
    ename:VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR to the common
    validity statements for barriers (internal issue 3188).
  * A valid usage statements to performance query begin commands requiring
    matching queue family index (internal issue 3207).
  * Add a `stride` attribute to the XML to annotate arrays passed to
    commands where consecutive members are not tightly packed (internal
    issue 3205).
  * Fix the `limittype` attribute value for
    slink:VkPhysicalDeviceVulkan11Features::pname:subgroupSize and
    slink:VkPhysicalDeviceSubgroupProperties::pname:subgroupSize (internal
    issue 3209).
  * Eliminate asciidoctor warnings about duplicate feature anchors in
    `validusage` build target (internal issue 3216).
  * Add the Vulkan logo to the specification PDF title page and HTML
    document header (internal issue 3217).
  * Markup fixes for VkPerformanceCounterResultKHR and
    VkPipelineRobustnessCreateInfoEXT (internal issue 3219).
  * Add a new section of the <<lexicon, Lexicon>> appendix for
    <<lexicon-video-abbreviations, video-specific abbreviations>> (internal
    merge request 5345).
  * Add <<formats-size-compatibility, size compatible>> definition to the
    <<formats, Formats>> chapter and use it to replace the old "`format size
    compatibility`" language in the <<copies, Copy Commands>> chapter
    (internal merge request 5369).
  * Remove the "`blocked image`" definition from and instead distinguish
    images with a 1x1x1 <<formats-compatibility-classes, texel block
    extent>> from other images. Use this language to simplify valid usage
    statements in the <<copies, Copy Commands>> chapter (internal merge
    request 5370).
  * Add valid usage statement to the
    <<spirvenv-module-validation-standalone, Standalone SPIR-V>> section
    requiring code:Boolean values to be code:BuiltIn values for code:Input /
    code:Output (internal merge request 5387).
  * Add and update valid usage statements for drawing commands with
    multisampled pipelines and single-sampled attachments when
    apiext:VK_EXT_multisampled_render_to_single_sampled is enabled (internal
    merge request 5392).
  * Remove pname:apiVersion loading requirements for implicit layers from
    slink:VkApplicationInfo (internal merge request 5393).
  * Minor markup fixes for slink:VkPipelineRobustnessCreateInfoEXT (internal
    merge request 5399).
  * Refactor style guide markup and use consistent anchor naming scheme
    (internal merge request 5400).
  * Require apiext:VK_KHR_spirv_1_4 for apiext:VK_EXT_mesh_shader in
    `vk.xml` (internal merge request 5401).
  * Add the <<shaders-termination, Shader Termination>> section and a
    corresponding valid usage statement for draw dispatch commands
    (cross-api/memory-model issue #145).
New Extensions:
  * apiext:VK_EXT_legacy_dithering (internal merge request 5042).



source: https://github.com/KhronosGroup/Vulkan-Docs/commit/09d120580acb942d9cc3a96c863815a05990893c


New extension:
- VK_EXT_legacy_dithering
QuoteThis extension exposes a hardware feature used by some vendors to implement OpenGL's dithering. The purpose of this extension is to support layering OpenGL over Vulkan, by allowing the layer to take advantage of the same hardware feature and provide equivalent dithering to OpenGL applications.

Stefan

#189
QuoteChange log for September 15, 2022 Vulkan 1.3.228 spec update:
Public Issues:
  * Specify that <<pipelines-graphics-subsets-dynamic-state, dynamic state
    for pipeline subsets>> is ignored (public issue 1902).
  * Remove un-needed `wayland-client.h` include from `vulkan.h` (public pull
    request 1905).
  * Add valid usage statement requiring an index buffer be bound for indexed
    drawing commands (public issue 1924).
  * Miscellaneous markup fixes (public pull request 1946).
Internal Issues:
  * Clarify that flink:vkCmdWaitEvents must: not execute before a
    flink:vkSetEvent it waits on (internal issue 2971).
  * Update valid usage statement in the
    <<spirvenv-module-validation-standalone, Standalone SPIR-V>> section to
    clarify the interaction of *Workgroup* *Scope* with code:ExecutionModel
    *TessellationControl* (internal issue 3071).
  * Fix
    slink:VkMemoryDedicatedRequirementsKHR::pname:requiresDedicatedAllocation
    for ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT (internal issue 3074).
  * Clarify in elink:VkFormatFeatureFlagBits that
    ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT and
    ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT are implied for unextended
    Vulkan 1.0 (internal issue 3099).
  * Add `tasks` attribute to XML `<command>` tags and tag core, KHR, and EXT
    commands (internal issue 3117).
  * Add more valid usage statements to prohibit feedback loop layouts when
    the pname:attachmentFeedbackLoopLayout feature is not enabled (internal
    issue 3189).
  * Clarify in the <<fundamentals-floatingpoint, Floating-Point
    Computation>> section that Inf and NaN inputs and outputs may: result in
    undefined values (internal issue 3208).
  * Update common valid usage statements for stage masks to properly
    interact with apiext:VK_NV_shading_rate_image and
    apiext:VK_KHR_fragment_shading_rate (internal issue 3228).
  * Disallow permanent semaphore/fence imports with copy transference in
    slink:VkImportFenceFdInfoKHR and slink:VkImportSemaphoreFdInfoKHR
    (internal merge request 4930).
  * Specify in flink:vkGetPhysicalDeviceSurfacePresentModesKHR and
    slink:VkSurfaceCapabilities2KHR that some surface properties are
    undefined when apiext:VK_GOOGLE_surfaceless_query is used (internal
    merge request 5157).
  * Add an Informative section describing the
    <<boilerplate-video-std-headers, Video Std Headers>> provided with the
    provisional video extensions (internal merge request 5384).
  * Clarify Boolean values vs. <<limits-maxComputeSharedMemorySize,
    pname:maxComputeSharedMemorySize>> (internal merge request 5386).
  * Update markup for the <<boilerplate-wsi-header-table, Window System
    Extensions and Headers>> table to render all header files no matter
    which extensions the spec is built with (internal merge request 5411).
  * Move timestamp example to the correct issue in the
    apiext:VK_EXT_calibrated_timestamps extension appendix (internal merge
    request 5420).
  * Add missing flink:vkCmdPushDescriptorSetWithTemplateKHR valid usage
    statements for pname:set (internal merge request 5428).
New Extensions:
  * apiext:VK_EXT_mutable_descriptor_type (promoted from `VALVE`).




source: https://github.com/KhronosGroup/Vulkan-Docs/commit/355367640f2eabd2a0d492010a0afc166696aa72

New extension:
- VK_EXT_mutable_descriptor_type
QuoteThis extension allows applications to reduce descriptor memory footprint by allowing a descriptor to be able to mutate to a given list of descriptor types depending on which descriptor types are written into, or copied into a descriptor set.

The main use case this extension intends to address is descriptor indexing with ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT where the descriptor types are completely generic, as this means applications can allocate one large descriptor set, rather than having one large descriptor set per descriptor type, which significantly bloats descriptor memory usage and causes performance issues.

This extension also adds a mechanism to declare that a descriptor pool, and therefore the descriptor sets that are allocated from it, reside only in host memory; as such these descriptors can only be updated/copied, but not bound.

These features together allow much more efficient emulation of the raw D3D12 binding model. This extension is primarily intended to be useful for API layering efforts.

Stefan

QuoteChange log for September 22, 2022 Vulkan 1.3.229 spec update:
Public Issues:
  * Add pname:maxMeshWorkGroup*Count limits when no task shader is used, and
    refactor some mesh shader valid usage statements for
    slink:VkDrawMeshTasksIndirectCommandEXT and flink:vkCmdDrawMeshTasksEXT
    into a common validity block (public merge request 1936).
  * Add SPIR-V valid usage statement for the mesh shader output count, and
    remove some redundant slink:VkPipelineShaderStageCreateInfo valid usage
    statements (public merge request 1938).
  * Add a comment to the <<versions-1.2-promotions, Differences relative to
    VK_EXT_shader_viewport_index_layer>> section describing how the
    code:ShaderViewportIndexLayerEXT capability was split into two
    capabilities in Vulkan 1.2 (internal merge request 1951).
Internal Issues:
  * Be more explicit about floating-point rules in the
    <<spirvenv-precision-operation, Precision and Operation of SPIR-V
    Instructions>> section (internal issues 2795, 2845).
  * Miscellaneous minor phrasing and XML fixes for the H.264 / H.265
    provisional video extensions (internal issue 3065).
  * Clarifications to the style guide to clarify terminology for EXT
    extension process and specify behavior more tightly than before
    (internal merge request 5268).
  * Add a CI script to check consistency of internal links in HTML output
    (internal merge request 5433).
  * Updates to provisional video extensions (internal merge request 5434)
    including:
  ** Remove H.264 MVC support from apiext:VK_EXT_video_decode_h264.
  ** Rename parameter set related fields in the provisional video extension
     APIs.
  ** Rename and clarify miscellaneous parameters in the provisional video
     extension APIs.
  ** Fix implicit valid usage related markup in `vk.xml` related to the core
     and decode video extension APIs.
  ** Add previously missing definitions and fix incorrect definitions in the
     Video Std headers.


source: https://github.com/KhronosGroup/Vulkan-Docs/commit/07560427085af01aafb985bf0cffa959bf85cb8c