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.

Stefan

QuoteChange log for January 19, 2023 Vulkan 1.3.239 spec update:
Github Issues:
  * Clarify semaphore/fence behavior of flink:vkAcquireNextImageKHR so that
    if successful, both semaphore and fence will be signaled (whichever
    provided), and if not successful, both are unaffected (public issues
    1533, 1776, 2009).
  * Update common draw VU 07751 to require that
    flink:vkCmdSetDiscardRectangleEXT was called for each discard rectangle
    when the corresponding dynamic state is enabled (public issue 1657).
  * Add ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR to
    access masks VUs (public pull request 1997).
  * Fix a typo in flink:vkCmdSetCoverageToColorLocationNV (public pull
    request 2000).
  * Clarify interpretation of H.265 reference indices
    code:RefPicSetStCurrBefore, code:RefPicSetStCurrAfter, and
    code:RefPicSetLtCurr (public issue 2010).
  * Add missing dimension VUs for slink:VkRenderingInfo (public issue 2015).
  * Fix <<formats-mandatory-features-32bit, Mandatory format support: 32-bit
    components>> table to support ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
    for ename:VK_FORMAT_R32_SFLOAT without apiext:VK_EXT_shader_atomic_float
    (public pull request 2011).
  * Fix incorrect link in apiext:VK_KHR_create_renderpass2 appendix (public
    pull request 2037).
Internal Issues:
  * Add `scripts/stripAPI.py` to transform the XML by removing non-matching
    `api` elements (internal issue 3281).
  * Update introduction of the <<fragops, Fragment Operations>> chapter to
    allow the <<fragops-samplemask, sample mask test>> to be performed after
    <<fragops-samplecount, sample counting>> (internal issue 3330).
  * Add slink:VkImageViewCreateInfo VU to disallow creating image views with
    multiple plane bits (internal issue 3332)
  * Add a new VU to slink:VkGraphicsPipelineCreateInfo requiring pipeline
    layout compatibility in the graphics pipeline library link step
    (internal issue 3334).
  * Report an error message from generator scripts when an unknown name is
    referenced, rather than just failing (internal merge request 5614).
  * Document in elink:VkPipelineCreateFlagBits that
    ename:VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
    and
    ename:VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
    are only needed when combining fragment shading rate or fragment density
    maps with dynamic rendering (internal merge request 5616).
  * Moved a VU for index offsets when pname:robustBufferAccess2 is not
    enabled from flink:vkCmdDrawIndexed to become a common VU for all the
    index buffer draw calls (internal merge request 5623).
  * Add VUs to slink:VkWriteDescriptorSet and slink:VkDescriptorImageInfo
    restricting use of other descriptor types from being a 2D view of a 3D
    image (internal merge request 5626).
  * Clarify that the tlink:PFN_vkReallocationFunction callback may return
    `NULL` (internal merge request 5637).
  * Clarify that apiext:VK_KHR_format_feature_flags2 only has to be
    supported, not enabled, in the <<resources-image-view-format-features,
    Image View Format Features>> section (internal merge request 5651).
  * Factor some VUs out of the `copy_bufferimage_to_imagebuffer_common`
    common VU file into a new
    `copy_bufferimage_to_imagebuffer_buffer_alignment_common` file (internal
    merge request 5657).
  * Add new driver id ename:VK_DRIVER_ID_IMAGINATION_OPEN_SC (internal merge
    request 5658).
  * Factor some VUs out of the `image_memory_barrier_common` common VU file
    into a new `image_layout_transition_common` file (internal merge request
    5662).
  * Clarify that format-less buffer views only apply to storage texel
    buffers in the <<features-shaderStorageImageReadWithoutFormat>>,
    <<features-shaderStorageImageWriteWithoutFormat>>, and
    <<formats-without-shader-storage-format, Formats without shader storage
    format>>, sections and for elink:VkFormatFeatureFlagBits2 (internal
    merge request 5668).
New Extensions:
  * apiext:VK_HUAWEI_cluster_culling_shader


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

JeGX

QuoteChange log for January 26, 2023 Vulkan 1.3.240 spec update:
Github Issues:

  * Fix <<limits-maxPushDescriptors, pname:maxPushDescriptors>> description
    (public pull request 2038).

Internal Issues:

  * Finish banning NULL pipeline layouts in
    slink:VkGraphicsPipelineCreateInfo VUs (internal merge request 5673).
  * Fix flink:vkCmdDrawIndirectByteCountEXT VU 02289 to refer to the correct
    structure name (internal merge request 5674).
  * Clarify how to define an inactive acceleration structure instance in the
    <<acceleration-structure-update, Acceleration Structure Update Rules>>
    (internal merge request 5677).
  * Add missing common draw and draw dispatch VUs when setting dynamic state
    at draw time (internal merge request 5679).
  * Add more information about pname:texelBufferAlignment promotion to core
    in the apiext:VK_EXT_texel_buffer_alignment and <<versions-1.3, Version
    1.3>> appendix language (internal merge request 5680).

New Extensions:

  * apiext:VK_EXT_pipeline_library_group_handles

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

New extension
- VK_EXT_pipeline_library_group_handles
QuoteWhen using pipeline libraries in ray tracing pipelines, a library might get linked into different pipelines in an incremental way. An application can have a strategy where a ray tracing pipeline is comprised of N pipeline libraries and is later augumented by creating a new pipeline with N + 1 libraries. Without this extension, all group handles must be re-queried as the group handle is tied to the pipeline, not the library. This is problematic for applications which aim to decouple construction of record buffers and the linkage of ray tracing pipelines.

To aid in this, this extension enables support for querying group handles directly from pipeline libraries. Group handles obtained from a library must: remain bitwise identical in any sname:VkPipeline that links to the library.

With this feature, the extension also improves compatibility with DXR 1.1 AddToStateObject(), which guarantees that group handles returned remain bitwise identical between parent and child pipelines. In addition, querying group handles from COLLECTION objects is also supported with that API.

Stefan

#202
QuoteChange log for February 16, 2023 Vulkan 1.3.241 spec update:
Github Issues:
  * Clarify apiext:VK_EXT_debug_utils object support (public issue 1668,
    public pull request 2034).
  * Fix capitalization typos in a few VUs (public pull request 2050).
  * Parameterize asciidoc includes of asciidoc files from `vkspec.adoc`
    using `{chapters}` attribute (public pull request 2051).
Internal XML Schema Issues:
Several needed XML schema changes are introduced in this update which may
impact downstream XML users who are doing their own parsing. Users of our
Python generator framework are unlikely to be impacted. If you have
difficulty adapting to these changes, please open an issue on the
Vulkan-Docs Github repository.
  * Introduce a new `depends` attribute to the XML schema, replacing the
    `requires` and `requiresCore` attributes of `<extension>` tags, and the
    `features` and `extension` attributes of `<require>` tags. This is an
    intentional and unavoidable breaking change, allowing us to correctly
    express more complex dependencies. XML users doing their own XML parsing
    and needing this information must treat the `depends` attribute as a
    boolean expression. This change also adds a description of the different
    interpretation of device and instance extension dependencies in a single
    place in the new <<extensions, "`Extension Dependencies`">> section at
    the start of the extensions appendix, rather than including a
    boilerplate comment about "`device-level extensions`" with each relevant
    extension dependency described later in the appendix (internal issue
    2883).
  * Import XML, script, and config file changes from the Vulkan SC spec
    repository. This change uses the `api` XML attribute to specialize some
    tags for the Vulkan and Vulkan SC APIs. While this is not a new
    attribute, it has not been extensively used in this fashion previously
    in this repository. XML users doing their own XML parsing must now
    filter out tags with `api` attributes not matching the API they are
    generating, and must also filter out `<extension>` tags whose
    `supported` attribute does not include that API (internal issue 3348).
  * Remove some redundancies from refactored XML dependencies (internal
    merge request 5713).
  * Express correct XML dependencies of apiext:VK_KHR_buffer_device_address,
    now that the new `depends` schema supports that (internal merge request
    5721).
  * Add a new `deprecated` attribute to several tags in XML schema which
    provides some guidance as to why an API was deprecated. Remove `comment`
    text which some downstream XML parsers were using to infer deprecation,
    which was never an intended or supported purpose of the comments (public
    ash-rs/ash issue 670, internal merge request 5537).
Other Internal Issues
  * Expand the definition of <<fundamentals-validusage-enums, "`valid
    enumerant value`">> to include whether the extension or core version
    defining that enumerant is enabled or supported. This has a global
    effect on corresponding VU statements, and the Vulkan Validation Layer
    is being updated accordingly (internal issue 2912).
  * Update the <<synchronization>> chapter in several places to clarify that
    pipeline barriers work only within a single queue (internal issue 3365).
  * Add ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR in a
    few places it was missing, and update description for copy commands to
    specify where it should be used with apiextVK_KHR_synchronization2
    rather than
    ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR (internal
    merge request 5604).
  * Fix typos in `proposals/VK_KHR_video_decode_queue.adoc` (internal merge
    request 5646).
  * Add dynamic state to apiext:VK_EXT_discard_rectangles
    (ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT and
    ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT) and for
    apiext:VK_NV_scissor_exclusive
    (ename:VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV) that was overlooked
    in apiext:VK_EXT_extended_dynamic_state3. While this is adding
    functionality to existing extensions, the implementers of these
    extensions have all signed off on this change (internal merge request
    5671).
  * Disallow ename:VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK in
    slink:VkDescriptorGetInfoEXT VU 08018 (internal merge request 5681).
  * Rearrange some language in flink:vkGetRayTracingShaderGroupHandlesKHR
    and flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR to follow
    the style guide (internal merge request 5683).
  * Update to new Docker image SHA for CI and building specs (internal merge
    request 5688).
  * Add `SPV_EXT_fragment_fully_covered` to XML `<spirvextensions>` section
    (internal merge request 5689).
  * Add missing pname:pNext description to
    slink:VkVideoDecodeH264DpbSlotInfoKHR (internal merge request 5701).
  * Add missing internal links for the term
    <<pipelines-graphics-subsets-fragment-shader, fragment shader state>>
    (internal merge request 5704).
  * Move ename:VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY VU common draw vertex
    binding VUs, and word VUs 03420 and 07500 the same, minus the reference
    to pname:dynamicPrimitiveTopologyUnrestricted (internal merge request
    5708).
  * Ban some advanced blend modes from slink:VkColorBlendEquationEXT that
    must be set using a different mechanism (internal merge request 5705).
  * Update copyright dates to 2023, and add CI check for Khronos-copyright
    files (internal merge request 5716).
  * Add clarifying NOTE and typo fixes for
    apiext:VK_HUAWEI_cluster_culling_shader (internal merge request 5718).
  * Add missing XML dependencies on
    apiext:VK_KHR_get_physical_device_properties2 to several extensions
    (internal merge request 5719).
  * Remove flink:vkCmdResolveImage VUs where pname:srcImage is of type
    ename:VK_IMAGE_TYPE_3D (internal vulkansc issue 178).
New Extensions:
  * apiext:VK_EXT_image_sliced_view_of_3d
  * apiext:VK_ARM_shader_core_properties
  * apiext:VK_QCOM_multiview_per_view_render_areas


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

New extensions:

- VK_EXT_image_sliced_view_of_3d
QuoteThis extension allows creating 3D views of 3D images such that the views contain a subset of the slices in the image, using a Z offset and range, for the purpose of using the views as storage image descriptors. This matches functionality in D3D12 and is primarily intended to support D3D12 emulation.

- VK_ARM_shader_core_properties
QuoteThis extension provides the ability to determine device-specific performance properties of Arm GPUs.

It exposes properties for the number of texel, pixel, and fused multiply-add operations per clock per shader core. This can be used in combination with the apiext:VK_ARM_shader_core_builtins extension that provides the ability to query the number of shader cores on the physical device.

- VK_QCOM_multiview_per_view_render_areas
QuoteCertain use-cases (e.g., side-by-side VR rendering) use multiview and render to distinct regions of the framebuffer for each view. On some implementations, there may be a performance benefit for providing per-view render areas to the implementation. Such per-view render areas can be used by the implementation to reduce the pixels that are affected by attachment load, store, and multisample resolve operations.

The extension enables a multiview render pass instance to define per-view render areas. For each view of a multiview render pass instance, only those pixels in the per-view render area are affected by load, store and resolve operations.

JeGX

QuoteChange log for February 26, 2023 Vulkan 1.3.242 spec update:
Github Issues:

  * Separate reflow document traversal and internal logic (public pull
    request 2042).
  * Specify operator evaluation in XML `depends` expressions must be
    left-to-right for operators of the same precedence (public pull request
    2066).
  * Revert to only parenthesizizing formal arguments of VK_DEFINE*HANDLE
    macros in the `vulkansc` api, to work around a bug in MSVC (public issue
    2067).

Internal Issues

  * Clarify <<ray-intersection-candidate-determination, ray transform
    invariance>> with respect to intersection with multiple instances
    (internal issue 3371).
  * Fix extraneous `+` sign appearing in dependency section of extension
    refpages (internal issue 3382).
  * Add draw dispatch common VU for
    ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT and new
    <<resources-buffer-view-format-features, Buffer View Format Features>>
    section (internal merge request 5597).
  * Move subpass self-dependency language into slink:VkSubpassDependency and
    pipeline barrier common VUs (internal merge request 5687).
  * Typo fix for double words ("`the the`") (internal merge request 5739).
  * Clarify Vulkan memory model requirements in the <<memory-model, Memory
    Model>> appendix (internal cross-api/memory-model issue 157).
  * Remove `update_valid_usage_ids.sh` script, which has not worked for a
    long time.

New Extensions:

  * apiext:VK_NV_low_latency

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

New extension:
-VK_NV_low_latencyVK_NV_low_latency
QuoteThis extension adds the VkQueryLowLatencySupportNV structure, a structure used to query support for NVIDIA Reflex.

JeGX

QuoteChange log for March 12, 2023 Vulkan 1.3.243 spec update:
Github Issues:

  * Clarify descriptions of
    ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT and
    ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT to include missing
    operations and properly refer to advanced blend operations (public issue
    2047).
  * Add specification language for ename:VK_REMAINING_3D_SLICES_EXT (public
    issue 2063).
  * Fix some out of date cross-references and citations. Update normative
    reference sections and cite them appropriately in the specification,
    registry schema, and style guide documents (public issue 2069).
  * Reverse aliasing of ename:VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT to a
    reserved bit for Vulkan SC (public issue 2070).
  * Add Mobileye vendor ID reservation (public pull request 2076).

Internal Issues

  * Updates to provisional video encode extensions including minor API
    changes - see change logs in the apiext:VK_EXT_video_encode_h264,
    apiext:VK_EXT_video_encode_h265, and apiext:VK_KHR_video_encode_queue
    extension appendices for more details (internal issue 3329).
  * Add VU logic for ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT to
    common draw, flink:vkCmdBindPipeline, and
    slink:VkGraphicsPipelineCreateInfo (internal issue 3355).
  * Add to the NOTE in the <<queries-occlusion, Occlusion Queries>> section
    describing possible differences in query results between implementations
    even when ename:VK_QUERY_CONTROL_PRECISE_BIT is specified (internal
    issue 3364).
  * Fix a few pname:pNext pointer input-only structure members defined by
    apiext:VK_EXT_swapchain_maintenance1 to add `const` qualifiers in XML
    (internal issue 3367).
  * Clarify why setting the stride with flink:vkCmdBindVertexBuffers2 has
    additional restrictions relative to setting the static state, and add a
    corresponding issue to the apiext:VK_EXT_extended_dynamic_state appendix
    (internal issue 3391).
  * Fix reflow script so VUID tag generation / duplicate checking can be
    performed independently of text reflowing (internal issue 3394).
  * Fix some incorrectly rewritten text that looks like a link, but is not,
    in refpage source code blocks (internal issue 3401).
  * Add code:Vertex code:Location restrictions when dynamic vertex input
    state is enabled to common draw vertex binding and
    slink:VkGraphicsPipelineCreateInfo VUs (internal merge request 5541).
  * Refactor some common image copy VUs (internal merge request 5659).
  * Refactor common image copy VUs not affected by
    apiext:VK_QCOM_rotated_copy (internal merge request 5660).
  * Update XML `<extension>` dependencies for VulkanSC in cases where an
    extension has been promoted to core in that API, but the extension
    itself is not supported (internal merge request 5723).
  * Call out extension and feature dependencies explicitly in some VUs
    (internal merge request 5737).
  * Fix typo in asciidoctor conditional markup for
    slink:VkPipelineShaderStageCreateInfo VU 06716. (internal merge request
    5726).
  * Update wording of slink:VkImageViewSlicedCreateInfoEXT specifying when
    this structure is ignored (internal merge request 5734).
  * Fix wording of slink:VkD3D12FenceSubmitInfoKHR VUs 00079 and 00080
    (internal merge request 5742).
  * Use "`component`" consistently when referring to pname:format arguments,
    replacing "`aspect`" (internal merge request 5746).
  * Add missing slink:VkImageViewSlicedCreateInfoEXT VU for pname:viewType
    (internal merge request 5749).
  * Remove redundant slink:vkCmdClearAttachments dynamic rendering VUs 07882
    and 07883 (internal merge request 5751).
  * Remove redundant slink:VkGraphicsPipelineCreateInfo code:InputAttachment
    dynamic rendering VU 06056 (internal merge request 5752).
  * Fix description of mesh shader execution modes in the
    apiext:VK_EXT_mesh_shader proposal document (internal merge request
    5756).
  * Minor updates to apiext:VK_HUAWEI_cluster_culling_shader extension APIs.
    These are incompatible changes but the vendor driver release with this
    extension has not been published, so there should be no user impact
    (internal merge request 5767).
  * Restructure <<fundamentals-validusage-enums, Valid Usage for Enumerated
    Types>> and <<fundamentals-validusage-flags, Valid Usage for Flags>>
    sections to make clear that the rules for enums and flag bits follow the
    same formula, and be more precise in defining interactions with
    extensions and core versions (internal merge request 5769).
  * Make normative text and NOTE in the
    <<synchronization-pipeline-stages-masks>> section consistent (internal
    merge request 5772).
  * Refactor single-sampled requirement of copy commands into common VU
    statements (internal merge request 5776).

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

JeGX

QuoteChange log for March 17, 2023 Vulkan 1.3.244 spec update:
Github Issues:

  * Fix typo in
    slink:VkDeviceGroupRenderPassBeginInfo::pname:deviceRenderAreaCount
    (public issue 2078).

Internal Issues

  * Move copy attribute's pname: to commonvalidity attributes to aid with
    VUID generation (internal MR 5781).
  * Add a .mailmap file (internal MR 5786).
  * Refactor pipeline layout consistency VUs for
    slink:VkComputePipelineCreateInfo, slink:VkGraphicsPipelineCreateInfo,
    and slink:VkRayTracingPipelineCreateInfoNV into common validity
    statements (internal MR 5750).
  * Make VUID tag generation prioritize attributes, helping ensure tags are
    unique when the same common validity file is included twice in the same
    VU block (internal MR 5791).

New Extensions:

  * apiext:VK_KHR_map_memory2

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

New extension:
- VK_KHR_map_memory2
QuoteThis extension provides extensible versions of the Vulkan memory map and unmap entrypoints. The new entrypoints are functionally identical to the core entrypoints, except that their parameters are specified using extensible structures that can be used to pass extension-specific information.