Skip to content

Commit

Permalink
Change log for May 10, 2022 Vulkan 1.3.213 spec update:
Browse files Browse the repository at this point in the history
  * Update release number to 213 for this update.

Public Issues:

  * Replace the list of <<formats-packed, Packed Formats>> with a generated
    version, and update the format generator script to support conditionals
    (public pull request 1823).
  * Fix typo in apiext:VK_INTEL_performance_query (public issue 1845).

Internal Issues:

  * Add valid usage statement limiting
    slink:VkDisplaySurfaceCreateInfoKHR::pname:transform to a single,
    supported transformation (internal merge request 5166).
  * Update sample code for apiext:VK_KHR_ray_query in the extension appendix
    (internal issue 3066).
  * Fix some `limittype` attributes for
    slink:VkPhysicalDeviceTransformFeedbackPropertiesEXT and
    slink:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV members in
    `vk.xml` (internal merge requests 5173 and 5174).

New Extensions:

  * apiext:VK_EXT_image_compression_control
  * apiext:VK_EXT_pipeline_properties
  * apiext:VK_EXT_subpass_merge_feedback
  * apiext:VK_KHR_ray_tracing_maintenance1
  • Loading branch information
oddhack committed May 10, 2022
1 parent 85d3d61 commit 71decb7
Show file tree
Hide file tree
Showing 42 changed files with 2,219 additions and 334 deletions.
32 changes: 32 additions & 0 deletions ChangeLog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,38 @@ public pull requests that have been accepted.

-----------------------------------------------------

Change log for May 10, 2022 Vulkan 1.3.213 spec update:

* Update release number to 213 for this update.

Public Issues:

* Replace the list of <<formats-packed, Packed Formats>> with a generated
version, and update the format generator script to support conditionals
(public pull request 1823).
* Fix typo in apiext:VK_INTEL_performance_query (public issue 1845).

Internal Issues:

* Add valid usage statement limiting
slink:VkDisplaySurfaceCreateInfoKHR::pname:transform to a single,
supported transformation (internal merge request 5166).
* Update sample code for apiext:VK_KHR_ray_query in the extension appendix
(internal issue 3066).
* Fix some `limittype` attributes for
slink:VkPhysicalDeviceTransformFeedbackPropertiesEXT and
slink:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV members in
`vk.xml` (internal merge requests 5173 and 5174).

New Extensions:

* apiext:VK_EXT_image_compression_control
* apiext:VK_EXT_pipeline_properties
* apiext:VK_EXT_subpass_merge_feedback
* apiext:VK_KHR_ray_tracing_maintenance1

-----------------------------------------------------

Change log for April 21, 2022 Vulkan 1.3.212 spec update:

* Update release number to 212 for this update.
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 212
PATCHVERSION = 213

ifneq (,$(findstring VK_VERSION_1_3,$(VERSIONS)))
SPECMINOR = 3
Expand Down
41 changes: 41 additions & 0 deletions appendices/VK_EXT_image_compression_control.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright (c) 2021-2022 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_image_compression_control.txt[]

=== Other Extension Metadata

*Last Modified Date*::
2022-05-02
*IP Status*::
No known IP claims.
*Contributors*::
- Jan-Harald Fredriksen, Arm
- Graeme Leese, Broadcom
- Andrew Garrard, Imagination
- Lisa Wu, Arm
- Peter Kohaut, Arm

=== Description

This extension enables fixed-rate image compression and adds the ability to
control when this kind of compression can be applied.
Many implementations support some form of framebuffer compression.
This is typically transparent to applications as lossless compression
schemes are used.
With fixed-rate compression, the compression is done at a defined bitrate.
Such compression algorithms generally produce results that are visually
lossless, but the results are typically not bit-exact when compared to a
non-compressed result.
The implementation may not be able to use the requested compression rate in
all cases.
This extension adds a query that can be used to determine the compression
scheme and rate that was applied to an image.

include::{generated}/interfaces/VK_EXT_image_compression_control.txt[]

=== Version History

* Revision 1, 2022-05-02 (Jan-Harald Fredriksen)
- Initial draft
32 changes: 32 additions & 0 deletions appendices/VK_EXT_image_compression_control_swapchain.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright (c) 2021-2022 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_image_compression_control_swapchain.txt[]

=== Other Extension Metadata

*Last Modified Date*::
2022-05-02
*IP Status*::
No known IP claims.
*Contributors*::
- Jan-Harald Fredriksen, Arm
- Graeme Leese, Broadcom
- Andrew Garrard, Imagination
- Lisa Wu, Arm
- Peter Kohaut, Arm
- Ian Elliott, Google

=== Description

This extension enables fixed-rate image compression and adds the ability to
control when this kind of compression can be applied to swapchain images.

include::{generated}/interfaces/VK_EXT_image_compression_control_swapchain.txt[]

=== Version History

* Revision 1, 2022-05-02 (Jan-Harald Fredriksen)
- Initial draft

81 changes: 81 additions & 0 deletions appendices/VK_EXT_pipeline_properties.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
// Copyright (c) 2020-2022 Khronos Group.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_pipeline_properties.txt[]

=== Other Extension Metadata

*Last Modified Date*::
2022-04-19
*IP Status*::
No known IP claims.
*Contributors*::
- Mukund Keshava, NVIDIA
- Daniel Koch, NVIDIA
- Mark Bellamy, Arm


=== Description

Vulkan SC requires offline compilation of pipelines.
In order to support this, the pipeline state is represented in a
https://github.com/KhronosGroup/VulkanSC-Docs/wiki/JSON-schema[JSON schema]
that is read by an offline tool for compilation.

One method of developing a Vulkan SC application is to author a Vulkan
application and use a layer to record and serialize the pipeline state and
shaders for offline compilation.
Each pipeline is represented by a separate JSON file, and can be identified
with a pname:pipelineIdentifier.

Once the pipelines have been compiled by the offline pipeline cache
compiler, the Vulkan SC application can then use this
pname:pipelineIdentifier for identifying the pipeline via Vulkan SC's
pname:VkPipelineIdentifierInfo structure.

This extension allows the Vulkan application to query the
pname:pipelineIdentifier associated with each pipeline so that the
application can store this with its pipeline metadata and the Vulkan SC
application will then use to map the same state to an entry in the Vulkan SC
pipeline cache.

It is expected that this extension will initially be implemented in the json
generation layer, although we can envision that there might be future uses
for it in native Vulkan drivers as well.

include::{generated}/interfaces/VK_EXT_pipeline_properties.txt[]

=== Issues
(1) This extension does not make sense on a strict Vulkan SC implementation.
It may however be of potential use in a non-strict Vulkan SC implementation.
Should this extension be enabled as part of Vulkan SC as well?
--
*RESOLVED*: No.
This extension will not be enabled for Vulkan SC.
--

(2) This is intended to be a general pipeline properties query, but is
currently only retrieving the pipeline identifier.
Should the pipeline identifier query be mandatory for this extension and for
all queries using this entry point?
--
*RESOLVED*: Use slink:VkBaseOutStructure for the return parameter.
Currently this is required to actually be a
slink:VkPipelinePropertiesIdentifierEXT structure, but that could be relaxed
in the future to allow other structure types or to allow other structures to
be chained in along with this one.
--

(3) Should there be a feature structure? Should it be required?
--
*RESOLVED*: Add a feature structure, and a feature for querying pipeline
identifier, but allow it to be optional so that this extension can be used
as the basis for other pipeline property queries without requiring the
pipeline identfier to be supported.
--

=== Version History

* Revision 1, 2022-04-19 (Mukund Keshava, Daniel Koch)
- Initial draft
31 changes: 31 additions & 0 deletions appendices/VK_EXT_subpass_merge_feedback.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Copyright 2022 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_subpass_merge_feedback.txt[]

=== Other Extension Metadata

*Last Modified Date*::
2022-03-10
*IP Status*::
No known IP claims.
*Contributors*::
- Jan-Harald Fredriksen, Arm
- Jorg Wagner, Arm
- Ting Wei, Arm

=== Description

This extension adds a mechanism to provide feedback to an application about
whether the subpasses specified on render pass creation are merged by the
implementation.
Additionally, it provides a control to enable or disable subpass merging in
the render pass.

include::{generated}/interfaces/VK_EXT_subpass_merge_feedback.txt[]

=== Version History

* Revision 1, 2022-03-10
- Initial draft.
2 changes: 1 addition & 1 deletion appendices/VK_EXT_video_encode_h265.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ include::{generated}/interfaces/VK_EXT_video_encode_h265.txt[]
* Revision 3, 2021-12-08 (Ahmed Abdelkhalek)
- Rate control updates
* Revision 4, 2022-01-11 (Ahmed Abdelkhalek)
- Replace occurrences of "slice" by "slice segment" and rename
- Replace occurrences of "`slice`" by "`slice segment`" and rename
structures/enums to reflect this.
* Revision 5, 2022-02-10 (Ahmed Abdelkhalek)
- Updates to encode capability interface
Expand Down
17 changes: 8 additions & 9 deletions appendices/VK_KHR_ray_query.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,23 +86,22 @@ include::{generated}/interfaces/VK_KHR_ray_query.txt[]

=== Sample Code

Example of ray query in a GLSL shader
Example of ray query in a GLSL shader, illustrating how to use ray queries
to determine whether a given position (at ray origin) is in shadow or not,
by tracing a ray towards the light, and checking for any intersections with
geometry occluding the light.

[source,c]
---------------------------------------------------
rayQueryEXT rq;

rayQueryInitializeEXT(rq, accStruct, gl_RayFlagsNoneEXT, 0, origin, tMin, direction, tMax);
rayQueryInitializeEXT(rq, accStruct, gl_RayFlagsTerminateOnFirstHitEXT, cullMask, origin, tMin, direction, tMax);

while(rayQueryProceedEXT(rq)) {
if (rayQueryGetIntersectionTypeEXT(rq, false) == gl_RayQueryCandidateIntersectionTriangleEXT) {
//...
rayQueryConfirmIntersectionEXT(rq);
}
}
// Traverse the acceleration structure and store information about the first intersection (if any)
rayQueryProceedEXT(rq);

if (rayQueryGetIntersectionTypeEXT(rq, true) == gl_RayQueryCommittedIntersectionNoneEXT) {
//...
// Not in shadow
}
---------------------------------------------------

Expand Down
85 changes: 85 additions & 0 deletions appendices/VK_KHR_ray_tracing_maintenance1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
// Copyright 2021-2022 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_ray_tracing_maintenance1.txt[]

=== Other Extension Metadata

*Last Modified Date*::
2022-02-21
*Interactions and External Dependencies*::
- This extension requires
https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_ray_cull_mask.html[`SPV_KHR_ray_cull_mask`]
- This extension provides API support for
https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GLSL_EXT_ray_cull_mask.txt[`GLSL_EXT_ray_cull_mask`]
- Interacts with `apiext:VK_KHR_ray_tracing_pipeline`
- Interacts with `apiext:VK_KHR_synchronization2`
*Contributors*::
- Stu Smith, AMD
- Tobias Hector, AMD
- Marius Bjorge, Arm
- Tom Olson, Arm
- Yuriy O’Donnell, Epic Games
- Yunpeng Zhu, Huawei
- Andrew Garrard, Imagination
- Dae Kim, Imagination
- Joshua Barczak, Intel
- Lionel Landwerlin, Intel
- Daniel Koch, NVIDIA
- Eric Werness, NVIDIA
- Spencer Fricke, Samsung

=== Description

`VK_KHR_ray_tracing_maintenance1` adds a collection of minor ray tracing
features, none of which would warrant an entire extension of their own.

The new features are as follows:

* Adds support for the `SPV_KHR_ray_cull_mask` SPIR-V extension in Vulkan.
This extension provides access to built-in code:CullMaskKHR shader
variable which contains the value of the code:OpTrace* `Cull Mask`
parameter.
This new shader variable is accessible in the intersection, any-hit,
closest-hit and miss shader stages.
* Adds support for a new pipeline stage and access mask built on top of
`apiext:VK_KHR_synchronization2`:
** ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR to
specify execution of <<acceleration-structure-copying, acceleration
structure copy commands>>
** ename:VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR to specify read
access to a <<shader-binding-table, shader binding table>> in any
shader pipeline stage
* Adds two new acceleration structure query parameters:
** ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR to query the
acceleration structure size on the device timeline
** ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR
to query the number of bottom level acceleration structure pointers for
serialization
* Adds an optional new indirect ray tracing dispatch command,
flink:vkCmdTraceRaysIndirect2KHR, which sources the shader binding table
parameters as well as the dispatch dimensions from the device.
The <<features-rayTracingPipelineTraceRaysIndirect2,
pname:rayTracingPipelineTraceRaysIndirect2>> feature indicates whether
this functionality is supported.


include::{generated}/interfaces/VK_KHR_ray_tracing_maintenance1.txt[]

=== New Built-In Variables

* <<interfaces-builtin-variables-cullmask,code:CullMaskKHR>>

=== New SPIR-V Capabilities

* <<spirvenv-capabilities-table-RayCullMaskKHR,RayCullMaskKHR>>

=== Issues

None Yet!

=== Version History

* Revision 1, 2022-02-21 (Members of the Vulkan Ray Tracing TSG)
- internal revisions
6 changes: 3 additions & 3 deletions appendices/VK_KHR_swapchain.txt
Original file line number Diff line number Diff line change
Expand Up @@ -508,8 +508,8 @@ https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c).
- Removed some erroneous text added by mistake in the last update.

* Revision 17, 2015-06-15 (Ian Elliott)
- Changed special value from "-1" to "0" so that the data types can be
unsigned.
- Changed special value from "`-1`" to "`0`" so that the data types can
be unsigned.

* Revision 18, 2015-06-15 (Ian Elliott)
- Clarified the values of VkSurfacePropertiesKHR::minImageCount and the
Expand All @@ -521,7 +521,7 @@ https://github.com/KhronosGroup/Vulkan-Tools/blob/master/cube/cube.c).
Removed resolved inline issues and fixed typos.
- Fixed clarification of VkSurfacePropertiesKHR::minImageCount made in
version 18.
- Added a brief "Image Ownership" definition to the list of terms used
- Added a brief "`Image Ownership`" definition to the list of terms used
in the spec.

* Revision 20, 2015-06-17 (James Jones)
Expand Down
Loading

0 comments on commit 71decb7

Please sign in to comment.