Vulkan API specifications 1.0.4 released

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

Previous topic - Next topic

0 Members and 8 Guests 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

JeGX

QuoteChange log for September 29, 2022 Vulkan 1.3.230 spec update:
Public Issues:

  * Add common valid usage statements for bind buffer and bind image
    commands to prevent rebinding resources after slink:vkFreeMemory (public
    issue 1937).

Internal Issues:

  * Add common valid usage statements for drawing commands to prevent
    binding an input attachment descriptor with an image view that is not in
    the framebuffer (internal issue 3223).
  * Fix references to nonexistent 'fragmentShadingRate' feature (internal
    issue 3235).
  * Add valid usage statement to flink:vkCmdCopyQueryPoolResults disallowing
    usage on active queries (internal issue 3236).
  * Update structure layouts in `video.xml` for the provisional video
    extensions to address alignment issues (internal issue 3242).
  * Clarify that slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:flags
    excludes linked libraries (internal merge request 5447).
  * Change the type of slink:VkVideoReferenceSlotInfoKHR::pname:slotIndex to
    `int32_t` in the provisional video extensions (internal merge request
    5452).

New Extensions:

  * apiext:VK_EXT_device_address_binding_report
  * apiext:VK_EXT_device_fault
  * apiext:VK_EXT_extended_dynamic_state3
  * apiext:VK_EXT_pipeline_protected_access
  * apiext:VK_NV_optical_flow
  * apiext:VK_NV_present_barrier

New extensions:

- VK_EXT_device_address_binding_report
QuoteThis extension enables applications to track the binding of regions of the GPU virtual address space, and to associate those regions with Vulkan objects. This extension is primarily intended to aid in crash postmortem, where applications may wish to map a faulting GPU address to a Vulkan object.

For example, a page fault triggered by accessing an address located within a region of the GPU virtual address space that was previously reported as bound and then unbound may indicate a use-after-free error. Similarly, faults generated by accessing virtual addresses outside the limits of a bound region of GPU virtual address space may indicate indexing beyond the bounds of a resource.


- VK_EXT_device_fault
QuoteDevice loss can be triggered by a variety of issues, including invalid API usage, implementation errors, or hardware failures.

This extension introduces a new command: flink:vkGetDeviceFaultInfoEXT, which may be called subsequent to a ename:VK_ERROR_DEVICE_LOST error code having been returned by the implementation. This command allows developers to query for additional information on GPU faults which may have caused device loss, and to generate binary crash dumps, which may be loaded into external tools for further diagnosis.


- VK_EXT_extended_dynamic_state3
QuoteThis extension adds almost all of the remaining pipeline state as dynamic state to help applications further reduce the number of monolithic pipelines they need to create and bind.


- VK_EXT_pipeline_protected_access
QuoteThis extension allows protected memory access to be specified per pipeline as opposed to per device. Through the usage of this extension, any performance penalty paid due to access to protected memory will be limited to the specific pipelines that make such accesses.


- VK_NV_optical_flow
QuoteOptical flow are fundamental algorithms in computer vision (CV) area. This extension allows applications to estimate 2D displacement of pixels between two frames.

- VK_NV_present_barrier
QuoteThis extension adds support for synchronizing corresponding presentation requests across multiple swapchains using the present barrier.

Stefan

QuoteChange log for October 13, 2022 Vulkan 1.3.231 spec update:
Public Issues:
  * Add a NOTE about custom border color with combined depth/stencil formats
    and rewrite a corresponding valid usage statement (public issue 1950).
  * Clarify memory domain operation in slink:VkBufferMemoryBarrier for
    ename:VK_ACCESS_HOST_WRITE_BIT and ename:VK_ACCESS_HOST_READ_BIT (public
    issue 1958).
  * Fix slink:VkDescriptorSetLayoutBinding refpage layout (public issue
    1964).
  * Clarify apiext:VK_EXT_mesh_shader builtin execution modes in
    code:PrimitivePointIndicesEXT, code:PrimitiveLinIndicesEXT, and
    code:PrimitiveTriangleIndicesEXT valid usage statements (public pull
    request 1965).
Internal Issues:
  * Clarify behavior of return values when multiple pipelines fail to be
    created when using apiext:VK_EXT_pipeline_creation_cache_control
    (internal issue 3121).
  * Add valid usage statement for flink:vkCmdExecuteCommands clarifying that
    only occlusion and pipeline statistics queries can be inherited in
    slink:VkCommandBufferInheritanceInfo (internal issue 3142).
  * Remove `requiredbitmask` valid usage statement for
    slink:VkSubmitInfo::pname:pWaitDstStageMask by adding `optional`
    attribute to the corresponding XML (internal issue 3200).
  * Clarify <<deferred-host-operations-requesting, allocator expectations
    for deferred host operations>> (internal issue 3202).
  * Add missing SPIR-V capability code:FragmentFullyCovered for
    apiext:VK_EXT_conservative_rasterization in XML and the extension
    appendix (internal issue 3221).
  * Clarify interaction of apiext:VK_KHR_pipeline_robustness with
    apiext:VK_KHR_pipeline_library for
    slink:VkPipelineRobustnessCreateInfoEXT (internal issue 3227).
  * Clarify that code:OpTypeImage code:MS can be 1 for multisampled
    rendering to single samples (internal issue 3231).
  * Clarify behavior of
    ename:VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT in
    slink:VkPipelineRobustnessBufferBehaviorEXT and
    slink:VkPipelineRobustnessImageBehaviorEXT (internal issue 3237).
  * Fix incorrect structure reference for
    ename:VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT in elink:VkDynamicState
    (internal issue 3257).
  * Standardize definitions within the copies chapter - formal mathematical
    definitions for pseudocode buffer/image addressing, remove redundant
    YCbCr text, move apiext:VK_QCOM_rotated_copy_commands to the standard
    location for buffer/image copies (internal merge request 5372).
  * Fix SPV and GLSL links in the apiext:VK_EXT_opacity_micromap appendix
    (internal merge request 5461).
  * Use "`enabled *on* the device`" consistently in preference to "`enabled
    *in* the device`", and add a corresponding style guide rule (internal
    merge request 5475).
  * Update Docker instructions in `BUILD.adoc` and add a helper script
    `scripts/runDocker` to run Docker with the latest Khronos build image
    (internal merge request 5483).
New Extensions:
  * apiext:VK_ARM_shader_core_builtins



source: https://github.com/KhronosGroup/Vulkan-Docs/commit/7a319840243ea33aa4caa42cdce0143b150e02bb

Stefan

QuoteChange log for October 27, 2022 Vulkan 1.3.232 spec update:
Public Issues:
  * Improve code:OpPtrAccessChain code:Base storage class VUs (public
    KhronosGroup/SPIRV-Tools pull request 4965).
Internal Issues:
  * Force applications to specify ename:VK_FORMAT_UNDEFINED for an unused
    attachment in both slink:VkPipelineRenderingCreateInfoKHR and
    slink:VkCommandBufferInheritanceRenderingInfoKHR. The previous behaviour
    of allowing unused attachments to have any format is not supported on
    some conformant implementations that have shipped and cannot be updated.
    This functionality is intended to be restored via a new extension in the
    near future (internal issue 3123).
  * Minor VU fixes for apiext:VK_EXT_extended_dynamic_state3 (internal issue
    3253).
  * Add missing VUs identified during validation layer work for
    apiext:VK_EXT_extended_dynamic_state3 (internal issue 3261).
  * Fix some minor markup and asciidoctor conditionalization errors causing
    dead internal links in some builds of the specification (internal issues
    3267, 3269).
  * Fix misleading warnings from refpage generation and add a couple of
    missing API descriptions it turned up (internal issue 3271).
  * Fix missing extension interaction in generated interfaces description
    for apiext:VK_EXT_legacy_dithering (internal merge request 5479).
  * Clarify how VUs on slink:VkBuffer aliasing for overlapping ranges of
    device memory work for flink:vkGetBufferDeviceAddressEXT (internal merge
    request 5489).
  * Update XML to fix generated VU for
    flink:vkCmdSetColorWriteMaskEXT::pname:pColorWriteMasks (internal merge
    request 5497).
  * Move VU for flink:vkCmdSetAlphaToOneEnableEXT to the right place
    (internal merge request 5500).
  * Add Khronos Roadmap 2022 JSON profile file under `xml/profiles/`, and
    export it to the Vulkan-Headers repository when updating the
    specification (internal merge request 5504).
  * Minor XML reorganization to work around a CTS code generation error
    (internal merge request 5509).
  * Add a new limit property to
    slink:VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM. The corresponding
    extension has not yet been implemented, so this shouldn't cause a
    compatibility break (internal merge request 5512).



Source: https://github.com/KhronosGroup/Vulkan-Docs/commit/7dcf16f3b4a1118ff92207316b68145446f08bb3

JeGX

QuoteChange log for November 3, 2022 Vulkan 1.3.233 spec update:
Internal Issues:

  * Tighten wording around <<descriptor-validity>> and in the
    <<descriptor-set-initial-state>> section (internal issue 3248).
  * Add VU for code:Component decoration on 64 bit types in
    <<spirvenv-module-validation-standalone Standalone SPIR-V Validation>>
    (internal merge request 5495).
  * Clarify the meaning of "`new image`" in flink:vkWaitForPresentKHR
    (internal merge request 5513).
  * Fix conditional markup around common VUs for
    flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR (internal merge request
    5514).
  * Unify some image usage VUs for slink:VkSwapchainCreateInfoKHR (internal
    merge request 5515).
  * Add some missing conditional markup around common draw VUs for
    apiext:VK_EXT_extended_dynamic_state3, add its features to the
    <<features-requirements, Feature Requirements>> section, and update the
    extension proposal document to fix some typos (internal merge request
    5517).
  * Fix slink:VkCommandBufferInheritanceRenderingInfoKHR VU 06492 along with
    minor markup fixes for an extension glossary term (internal merge
    request 5518).
  * Disallow input attachments being null for
    ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT by refactoring
    slink:VkWriteDescriptorSet VUs (internal issue 3246).
  * Add `SPV_AMD_shader_early_and_late_fragment_tests` to `<spirvextension>`
    XML (internal issue 3276).
  * Fix Makefile dependencies to avoid rebuilding the HTML targets
    unnecessarily, and add a dependency to the `allchecks` Makefile target
    to validate links in the HTML specification output, building it if
    necessary. Note that the new check should be expected to fail unless
    building with `makeSpec -spec all` (internal merge request 5525).
  * Tag apiext:VK_IMG_format_pvrtc as deprecated in XML (internal merge
    request 5527).

New Extensions:

  * apiext:VK_NV_memory_decompression
  * apiext:VK_NV_ray_tracing_invocation_reorder
  * apiext:VK_NV_copy_memory_indirect

source: https://github.com/KhronosGroup/Vulkan-Docs/commit/42d3f5a641810c52bbe53c0f049be1130af07f2f

New extensions:

- VK_NV_memory_decompression
QuoteThis extension adds support for performing memory to memory decompression.


- VK_NV_ray_tracing_invocation_reorder
QuoteThe ray tracing pipeline API provides some ability to reorder for locality, but it is useful to have more control over how the reordering happens and what information is included in the reordering. The shader API provides a hit object to contain result information from the hit which can be used as part of the explicit sorting plus options that contain an integer for hint bits to use to add more locality.


- VK_NV_copy_memory_indirect
QuoteThis extension adds support for performing copies between memory and image regions using indirect parameters that are read by the device from a buffer during execution. This functionality may: be useful for performing copies where the copy parameters are not known during the command buffer creation time.

Stefan

QuoteChange log for November 10, 2022 Vulkan 1.3.234 spec update:
Public Issues:
  * Add slink:VkGraphicsPipelineCreateInfo VUs for using code:ViewIndex and
    for shader interactions, and make phrasing of some other VUs for this
    structure consistent (public Vulkan-ValidationLayers issue 1749).
Internal Issues:
  * Reorder <<synchronization-pipeline-stages-supported, Supported pipeline
    stage flags>> table to more closely match the order in
    elink:VkPipelineStageFlagBits2, add some missing stages, and group flag
    bits representing multiple stages with the individual stages they
    represent (internal issue 3260).
  * Add an issue to the apiext:VK_KHR_fragment_shading_rate proposal
    document clarifying that the default fragment size participates in
    combination operations (internal issue 3266).
  * Clarify that references in entry point interface lists are not "`Static
    Use`" in its glossary definition (internal issue 3287).
  * Add VU for flink:vkGetPhysicalDeviceExternalImageFormatPropertiesNV
    restricting pname:externalHandleType to at most one bit set (internal
    merge request 5528).
  * Add missing code:SPV_NV_shader_invocation_reorder `spirvextension` tag
    in XML (internal merge request 5529).
  * Minor consistency edits to spec language for recently released NV
    extensions - array / bitmask / feature requirement wording, reorder
    sections so refpages are correctly formatted, remove un-needed
    asciidoctor attributes (internal merge request 5530).
  * Update Roadmap 2022 JSON to correct the `maxInlineUniformTotalSize`
    limit to 256 instead of 4, matching the specification text (internal
    merge request 5531).
  * Correct "`less than`" to "`less than or equal to`" in VU for mipmap
    levels in flink:vkCmdClearColorImage and
    flink:vkCmdClearDepthStencilImage (internal merge request 5533).
  * Properly conditionalize and markup language for required pipeline state
    interactions with apiext:VK_EXT_graphics_pipelin_library (internal merge
    request 5535).
  * Add a NOTE to flink:vkSetEvent clarifying when to signal events waited
    for in a command buffer (internal merge request 5536).
  * Add code:HitObjectAttributeNV to
    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
    VU 06672 (internal merge request 5538).
  * Use consistent wording for "`_handle_ is not dlink:VK_NULL_HANDLE`" and
    update style guide accordingly.


source: https://github.com/KhronosGroup/Vulkan-Docs/commit/3abd2bbc91a7e74186a8acc82268d726cee6a731

JeGX

QuoteChange log for November 17, 2022 Vulkan 1.3.235 spec update:
Public Issues:

  * Require Vulkan 1.1 for apiext:VK_EXT_mesh_shader in XML (public issue
    1976).
  * Reserve driver ID for NVK (public pull request 1983).

Internal Issues:

  * Add VUs for code:PointSize with mesh shaders to
    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
    and slink:VkGraphicsPipelineCreateInfo (internal issues 681 and 2727).
  * Add the <<features-shadingRateImage, pname:shadingRateImage>> for a
    slink:VkImageCreateInfo VU (internal merge request 5552).

New Extensions:

  * apiext:VK_EXT_descriptor_buffer

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

New extension:

- VK_EXT_descriptor_buffer
QuoteThis extension introduces new commands to put shader-accessible descriptors directly in memory, making the management of descriptor data more explicit.

JeGX

QuoteChange log for December 1, 2022 Vulkan 1.3.236 spec update:
Public Issues:

  * Fix Roadmap 2022 JSON by moving pname:lineWidthGranularity and
    pname:pointSizeGranularity to the optionals section of the profile
    (public Vulkan-Profiles issue 321).
  * Expand description of <<devsandqueues-lost-device, Lost Device>> to
    describe how to determine which commands may be affected and return
    ename:VK_ERROR_DEVICE_LOST (public issue 1968).
  * Clarify that input attachment descriptors follow static use rules in the
    <<compatibility-inputattachment, Fragment Input Attachment
    Compatibility>> section and common drawing VUs (public issue 1979).
  * Move WinRT extensions into `vulkan_win32.h` header (public issue 1980).
  * Remove `returnedonly` attribute from slink:VkSubresourceLayout in XML
    (public issue 1988).

Internal Issues:

  * Do not use basetype: for external API types without definitions in the
    Specification, and make basetype: link to the corresponding API
    (internal issue 2703, fixes one sub-issue of public issue 1984).
  * Clarify treatment of shared depth/stencil images in depth-only or
    stencil-only resolve attachments for slink:VkRenderingAttachmentInfo
    (internal issue 3243).
  * Clarify language for acceleration structure and micromap scratch access
    bits (internal issue 3244).
  * Clarify that code:Output variable writes have an effect in
    <<shaders-helper-invocations, Helper Invocations>> (internal issue
    3270).
  * Add missing apiext:VK_EXT_discard_rectangles common drawing VU (internal
    issue 3292).
  * Add VUs to slink:VkRenderingInfo preventing inconsistent layout usage
    (internal issue 3301).
  * Change parent of slink:VkSwapchainKHR to slink:VkDevice (internal merge
    request 5521).
  * Add and tidy up some shared common image copy VUs (internal merge
    request 5371).
  * Fix apiext:VK_EXT_color_write_enable common drawing VUs (internal merge
    request 5548).
  * Add missing apiext:VK_EXT_discard_rectangles common drawing VU (internal
    merge request 5549).
  * Rename slink:VkVideoDecodeH265PictureInfoEXT members ptext:sliceCount ->
    pname:sliceSegmentCount and ptext:sliceOffsets ->
    pname:sliceSegmentOffsets (internal merge request 5550).
  * Clarify <<ray-tracking-capture-replay, Ray Tracing Capture Replay>>
    section and related language for
    slink:VkRayTracingShaderGroupCreateInfoKHR::pname:pShaderGroupCaptureReplayHandle
    and flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR (internal
    merge request 5555).
  * Add shader interface variable type and width constraint VU to
    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
    (internal merge request 5556).
  * Clarify that code:PointSize is not always needed for mesh shaders in
    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
    VU 07728 (internal merge request 5562).
  * Fix minor markup consistency typos in feature and limit xrefs (internal
    merge request 5563).
  * Fix typo in apiext:VK_QCOM_image_processing for required value of
    code:unnormalizedCooordinates for the input code:sampler (internal merge
    request 5564).
  * Fix typo in slink:VkDescriptorDataEXT language (internal merge request
    5568).
  * Add a NOTE to the apiext:VK_NV_optical_flow appendix and update the
    allowed command queues for flink:vkCmdResetQueryPool and
    flink:vkVmdWriteTimestamp in the XML to include the optical flow queue
    (internal merge request 5570).
  * Require Wayland WSI implementations to send code:wl_surface.commit in
    flink:vkQueuePresentKHR for all present modes (internal merge request
    5574).
  * Add missing slink:VkBindImageMemoryInfo VU for
    etext:VK_IMAGE_CREATE_DISJOINT_BIT images (internal merge request 5580).
  * Fix markup of some common stage mask VUs to prevent duplicate VUIDs
    being generated (internal merge request 5581).
  * Add a common draw/dispatch VU for image view shader mapping (internal
    merge request 5583).
  * Update the registry schema document to describe all allowed command
    queue types.

New Extensions:

  * apiext:VK_LUNARG_direct_driver_loading
  * apiext:VK_QCOM_multiview_per_view_viewports

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

New extensions:

- VK_LUNARG_direct_driver_loading
QuoteThis extension provides a mechanism for applications to add drivers to the implementation. This allows drivers to be included with an application without requiring installation and is capable of being used in any execution environment, such as a process running with elevated privileges.

- VK_QCOM_multiview_per_view_viewports
QuoteCertain use-cases for multiview have a need for specifying a separate viewport and scissor for each view, without using shader-based viewport indexing as introduced with apiext:VK_EXT_shader_viewport_index_layer.

This extension adds a new way to control ViewportIndex with multiview. When the multiviewPerViewViewports feature is enabled and if the last pre-rasterization shader entry point's interface does not use the code:ViewportIndex built-in decoration, then each view of a multiview renderpass instance will use a viewport and scissor index equal to the code:ViewIndex.

JeGX

QuoteChange log for December 8, 2022 Vulkan 1.3.237 spec update:
Public Issues:

  * Fix multiple function pointer type definition problem introduced by
    apiext:VK_LUNARG_direct_driver_loading and update CI tests to catch this
    type of issue going forward (public issue 1998).
  * Fix typo in flink:vkCmdCopyImageToBuffer (public issue 1999).
  * Do not require ename:VK_STENCIL_OP_KEEP in
    flink:vkCmdSetStencilWriteMask and
    slink:VkPipelineDepthStencilStateCreateInfo if both front and back
    pname:writeMask values are zero (public Vulkan-ValidationLayers issue
    4921).

Internal Issues:

  * Run Vulkan CTS framework tests as part of CI (internal issue 3274).
  * Clarify that <<spirvenv-evaluation-expressions, denorm ops can reorder
    without code:NoContract (internal issue 3303).
  * Add the <<resources-memory-overlap, Resource Memory Overlap>> section to
    clarify that there is no cache line hazard (internal issue 3306).
  * Restrict ename:VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT to
    three-dimensional images in slink:VkImageCreateInfo and
    elink:VkImageCreateFlagBits (internal merge request 5589).

New Extensions:

  * apiext:VK_EXT_surface_maintenance1
  * apiext:VK_EXT_swapchain_maintenance1

source: https://github.com/KhronosGroup/Vulkan-Docs/commit/0e28607b55dc1eee4ff80967f1e0a7e99356d075

New extensions:

- VK_EXT_surface_maintenance1
Quoteapiext:VK_EXT_surface_maintenance1 adds a collection of window system integration features that were intentionally left out or overlooked in the original apiext:VK_KHR_surface extension.

The new features are as follows:

- Allow querying number of min/max images from a surface for a particular presentation mode.

- Allow querying a surface's scaled presentation capabilities.

- Allow querying a surface for the set of presentation modes which can be easily switched between without requiring swapchain recreation.


- VK_EXT_swapchain_maintenance1
Quoteapiext:VK_EXT_swapchain_maintenance1 adds a collection of window system integration features that were intentionally left out or overlooked in the original apiext:VK_KHR_swapchain extension.

The new features are as follows:

- Specify a fence that will be signaled when the resources associated with a present operation can: be safely destroyed.

- Allow changing the present mode a swapchain is using at per-present granularity.

- Allow applications to define the behavior when presenting a swapchain image to a surface with different dimensions than the image. Using this feature may: allow implementations to avoid returning ename:VK_ERROR_OUT_OF_DATE_KHR in this situation.

- Allow applications to defer swapchain memory allocation for improved startup time and memory footprint.

- Allow applications to release previously acquired images without presenting them.

JeGX

QuoteChange log for December 19, 2022 Vulkan 1.3.238 spec update:
Internal Issues:

  * Do not require in-bounds index buffers for flink:vkCmdDrawIndexed if
    pname:robustBufferAccess2 is enabled (internal issue 3311).
  * Only download needed parts of VK-GL-CTS repository for CI test (internal
    issue 3315).
  * Add a NOTE that etext:FORMAT_FEATURE_*_ATOMIC_BIT
    are only advertised for single-component formats
    (internal issue 3318).
  * Add a common acceleration structure copy VU disallowing src/dst overlap
    (internal merge request 5587).
  * Add common VUs for EXT mesh draw calls (internal merge request 5588).
  * Change validation of flink:vkGetImageSubresourceLayout2EXT to allow
    queries of images with ename:VK_IMAGE_TILING_OPTIMAL tiling (internal
    merge request 5590).
  * Add VUs to flink:vkCmdBuildAccelerationStructureNV and common
    acceleration structure copy VUs to require pname:dst to be bound
    completely and contiguously (internal merge request 5602).
  * Fix typo in member name ptext:presentScaling -> pname:scalingBehavior
    for slink:VkSwapchainPresentScalingCreateInfoEXT (internal merge request
    5603).
  * Remove common copy image sample count VU 07745, which duplicates VU
    00136 (internal merge request 5605).
  * Fix common image memory barrier layout VU to refer to correct members
    instead of nonexist pname:layout (internal merge request 5608).

New Extensions:

  * Add final (non-provisional) versions of the Vulkan Video Core and Decode
    extensions (internal merge request 5351):
  ** apiext:VK_KHR_video_queue
  ** apiext:VK_KHR_video_decode_queue
  ** apiext:VK_KHR_video_decode_h264 (promoted from EXT)
  ** apiext:VK_KHR_video_decode_h265 (promoted from EXT)

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

New Extensions:

- VK_KHR_video_queue
QuoteThis extension provides common APIs to enable exposing queue families with support for video codec operations by introducing the following new object types and related functionalities:

Video session objects that represent and maintain the state needed to perform video codec operations.

Video session parameters objects that act as a container for codec specific parameters.

In addition, it also introduces query commands that allow applications to determine video coding related capabilities, and command buffer commands that enable recording video coding operations against a video session.

This extension is to be used in conjunction with other extensions that enable specific video coding operations.


- VK_KHR_video_decode_queue
QuoteThis extension builds upon the apiext:VK_KHR_video_queue extension by adding common APIs specific to video decoding and thus enabling implementations to expose queue families supporting video decode operations.

More specifically, it adds video decode specific capabilities and a new command buffer command that allows recording video decode operations against a video session.

This extension is to be used in conjunction with other codec specific video decode extensions that enable decoding video sequences of specific video compression standards.

- VK_KHR_video_decode_h264
QuoteThis extension builds upon the apiext:VK_KHR_video_decode_queue extension by adding support for decoding elementary video stream sequences compliant with the H.264/AVC video compression standard.

- VK_KHR_video_decode_h265
QuoteThis extension builds upon the apiext:VK_KHR_video_decode_queue extension by adding support for decoding elementary video stream sequences compliant with the H.265/HEVC video compression standard.