Skip to content

Commit

Permalink
Change log for June 9, 2023 Vulkan 1.3.253 spec update:
Browse files Browse the repository at this point in the history
Github Issues

  * Require the pname:accelerationStructure feature for acceleration
    structure commands (public issue 2134).
  * Fix slink:VkAccelerationStructureCreateInfoKHR::pname:flags typo to
    pname:createFlags (public pull request 2140).

Internal Issues

  * Various fixes to the provisional video encode APIs for rate control,
    capabilities, and other improvements (internal issues 2213, 3013, 3137,
    3138, 3139, 3386, 3440).
  * Add XML representation of pipeline stage ordering relationships and use
    it to generate markup artifacts including stage flag definitions,
    ordering, and the <<synchronization-pipeline-stages-supported, Supported
    pipeline stage flags>> table (internal issue 3260).
  * Clarify <<vkGetPhysicalDeviceVideoFormatPropertiesKHR, video format
    query interactions>> by reference to a new
    <<format-feature-dependent-usage-flags, Format Feature Dependent Usage
    Flags>> section (internal issue 3491).
  * Add slink:VkGraphicsPipelineCreateInfo and common draw vertex binding
    VUs for 64-bit input components (internal merge request 5869).
  * Improve slink:VkImageViewCreateInfo VUs for
    apiext:VK_NV_linear_color_attachment (internal merge request 5884).
  * Update precision for code:normalize() instruction in the <<Precision of
    GLSL.std.450 Instructions>> table (internal merge request 5923).
  • Loading branch information
oddhack committed Jun 10, 2023
1 parent a6c47f2 commit 2f4ef83
Show file tree
Hide file tree
Showing 25 changed files with 2,685 additions and 1,008 deletions.
32 changes: 32 additions & 0 deletions ChangeLog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,38 @@ public pull requests that have been accepted.
"`VU`" as used below is an abbreviation for "`valid usage statement`", which
appears frequently in the change log.

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

Change log for June 9, 2023 Vulkan 1.3.253 spec update:

Github Issues

* Require the pname:accelerationStructure feature for acceleration
structure commands (public issue 2134).
* Fix slink:VkAccelerationStructureCreateInfoKHR::pname:flags typo to
pname:createFlags (public pull request 2140).

Internal Issues

* Various fixes to the provisional video encode APIs for rate control,
capabilities, and other improvements (internal issues 2213, 3013, 3137,
3138, 3139, 3386, 3440).
* Add XML representation of pipeline stage ordering relationships and use
it to generate markup artifacts including stage flag definitions,
ordering, and the <<synchronization-pipeline-stages-supported, Supported
pipeline stage flags>> table (internal issue 3260).
* Clarify <<vkGetPhysicalDeviceVideoFormatPropertiesKHR, video format
query interactions>> by reference to a new
<<format-feature-dependent-usage-flags, Format Feature Dependent Usage
Flags>> section (internal issue 3491).
* Add slink:VkGraphicsPipelineCreateInfo and common draw vertex binding
VUs for 64-bit input components (internal merge request 5869).
* Improve slink:VkImageViewCreateInfo VUs for
apiext:VK_NV_linear_color_attachment (internal merge request 5884).
* Update precision for code:normalize() instruction in the <<Precision of
GLSL.std.450 Instructions>> table (internal merge request 5923).


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

Change log for June 1, 2023 Vulkan 1.3.252 spec update:
Expand Down
15 changes: 13 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 252
PATCHVERSION = 253
BASEOPTS =

ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Expand Down Expand Up @@ -247,6 +247,7 @@ METAPATH = $(GENERATED)/meta
INTERFACEPATH = $(GENERATED)/interfaces
SPIRVCAPPATH = $(GENERATED)/spirvcap
FORMATSPATH = $(GENERATED)/formats
SYNCPATH = $(GENERATED)/sync
PROPOSALPATH = $(CURDIR)/proposals
# timeMarker is a proxy target created when many generated files are
# made at once
Expand All @@ -257,10 +258,11 @@ METADEPEND = $(METAPATH)/timeMarker
INTERFACEDEPEND = $(INTERFACEPATH)/timeMarker
SPIRVCAPDEPEND = $(SPIRVCAPPATH)/timeMarker
FORMATSDEPEND = $(FORMATSPATH)/timeMarker
SYNCDEPEND = $(SYNCPATH)/timeMarker
RUBYDEPEND = $(RBAPIMAP)
ATTRIBFILE = $(GENERATED)/specattribs.adoc
# All generated dependencies
GENDEPENDS = $(APIDEPEND) $(VALIDITYDEPEND) $(HOSTSYNCDEPEND) $(METADEPEND) $(INTERFACEDEPEND) $(SPIRVCAPDEPEND) $(FORMATSDEPEND) $(RUBYDEPEND) $(ATTRIBFILE)
GENDEPENDS = $(APIDEPEND) $(VALIDITYDEPEND) $(HOSTSYNCDEPEND) $(METADEPEND) $(INTERFACEDEPEND) $(SPIRVCAPDEPEND) $(FORMATSDEPEND) $(SYNCDEPEND) $(RUBYDEPEND) $(ATTRIBFILE)
# All non-format-specific dependencies
COMMONDOCS = $(SPECFILES) $(GENDEPENDS)

Expand Down Expand Up @@ -487,6 +489,7 @@ CLEAN_GEN_PATHS = \
$(INTERFACEPATH) \
$(SPIRVCAPPATH) \
$(FORMATSPATH) \
$(SYNCPATH) \
$(REFPATH) \
$(GENERATED)/include \
$(GENERATED)/__pycache__ \
Expand Down Expand Up @@ -689,6 +692,14 @@ $(FORMATSDEPEND): $(VKXML) $(GENVK)
$(QUIET)$(MKDIR) $(FORMATSPATH)
$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(FORMATSPATH) formatsinc

# This generates a single file, so FORMATSDEPEND is the full path to
# the file, rather than to a timeMarker in the same directory.
syncinc: $(SYNCDEPEND)

$(SYNCDEPEND): $(VKXML) $(GENVK)
$(QUIET)$(MKDIR) $(SYNCPATH)
$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(SYNCPATH) syncinc

# This generates a single file containing asciidoc attributes for each
# core version and extension in the spec being built.
attribs: $(ATTRIBFILE)
Expand Down
54 changes: 53 additions & 1 deletion appendices/VK_EXT_video_encode_h264.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{generated}/meta/{refprefix}VK_EXT_video_encode_h264.adoc[]
=== Other Extension Metadata

*Last Modified Date*::
2023-03-06
2023-06-06
*IP Status*::
No known IP claims.
*Contributors*::
Expand All @@ -18,8 +18,10 @@ include::{generated}/meta/{refprefix}VK_EXT_video_encode_h264.adoc[]
- Ping Liu, Intel
- Srinath Kumarapuram, NVIDIA
- Tony Zlatinski, NVIDIA
- Ravi Chaudhary, NVIDIA
- Yang Liu, AMD
- Daniel Rakos, RasterGrid
- Aidan Fabius, Core Avionics & Industrial Inc.

=== Description

Expand Down Expand Up @@ -107,3 +109,53 @@ include::{generated}/interfaces/VK_EXT_video_encode_h264.adoc[]
`StdVideoEncodeH264RefMemMgmtCtrlOperations` structure
** Added new capability flag
`VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT`
* Revision 11, 2023-05-22 (Daniel Rakos)
** Renamed `VkVideoEncodeH264VclFrameInfoEXT` to
`VkVideoEncodeH264PictureInfoEXT`
** Added `VkVideoEncodeH264PictureInfoEXT::generatePrefixNalu` and
`VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_EXT` to
enable the generation of H.264 prefix NALUs when supported by the
implementation
** Removed `VkVideoEncodeH264RateControlLayerInfoEXT::temporalLayerId`
** Added `expectDyadicTemporalLayerPattern` capability
** Added the `VkVideoEncodeH264SessionParametersGetInfoEXT` structure to
identify the H.264 parameter sets to retrieve encoded parameter data
for, and the `VkVideoEncodeH264SessionParametersFeedbackInfoEXT`
structure to retrieve H.264 parameter set override information when
using the new `vkGetEncodedVideoSessionParametersKHR` command
** Added `VkVideoEncodeH264NaluSliceInfoEXT::constantQp` to specify
per-slice constant QP when rate control mode is
`VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR`
** Added `VkVideoEncodeH264QualityLevelPropertiesEXT` for retrieving H.264
specific quality level recommendations
** Replaced `VkVideoEncodeH264RateControlStructureEXT` enum with the flags
type `VkVideoEncodeH264RateControlFlagsEXT` and bits defined in
`VkVideoEncodeH264RateControlFlagBitsEXT` and added HRD compliance flag
** Removed `useInitialRcQp` and `initialRcQp` members of
`VkVideoEncodeH264RateControlLayerInfoEXT`
** Added `prefersGopRemainingFrames` and `requiresGopRemainingFrames`, and
the new `VkVideoEncodeH264GopRemainingFrameInfoEXT` structure to allow
specifying remaining frames of each type in the rate control GOP
** Added `maxTemporalLayers`, `maxQp`, and `minQp` capabilities
** Added `maxLevelIdc` capability and new
`VkVideoEncodeH264SessionCreateInfoEXT` structure to specify upper
bounds on the H.264 level of the produced video bitstream
** Moved capability flags specific to codec syntax restrictions from
`VkVideoEncodeH264CapabilityFlagsEXT` to the new
`VkVideoEncodeH264StdFlagsEXT` which is now included as a separate
`stdSyntaxFlags` member in `VkVideoEncodeH264CapabilitiesEXT`
** Removed codec syntax override values from
`VkVideoEncodeH264CapabilitiesEXT`
** Removed `VkVideoEncodeH264NaluSliceInfoEXT::mbCount` and
`VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT`
** Replaced
`VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICES_PER_FRAME_BIT_EXT`
with the new `maxSliceCount` capability
** Removed capability flag
`VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT`
and removed `pStdReferenceFinalLists` members from the
`VkVideoEncodeH264PictureInfoEXT` and
`VkVideoEncodeH264NaluSliceInfoEXT` structures as reference lists info
is now included in `pStdPictureInfo`
** Added capability flag
`VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_EXT`
54 changes: 53 additions & 1 deletion appendices/VK_EXT_video_encode_h265.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{generated}/meta/{refprefix}VK_EXT_video_encode_h265.adoc[]
=== Other Extension Metadata

*Last Modified Date*::
2023-03-06
2023-06-06
*IP Status*::
No known IP claims.
*Contributors*::
Expand All @@ -18,7 +18,9 @@ include::{generated}/meta/{refprefix}VK_EXT_video_encode_h265.adoc[]
- Ping Liu, Intel
- Srinath Kumarapuram, NVIDIA
- Tony Zlatinski, NVIDIA
- Ravi Chaudhary, NVIDIA
- Daniel Rakos, RasterGrid
- Aidan Fabius, Core Avionics & Industrial Inc.

=== Description

Expand Down Expand Up @@ -95,3 +97,53 @@ include::{generated}/interfaces/VK_EXT_video_encode_h265.adoc[]
Std header structure `StdVideoEncodeH265ReferenceLists`
** Added new capability flag
`VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT`
* Revision 11, 2023-05-26 (Daniel Rakos)
** Renamed `VkVideoEncodeH265VclFrameInfoEXT` to
`VkVideoEncodeH265PictureInfoEXT`
** Removed `VkVideoEncodeH265RateControlLayerInfoEXT::temporalId`
** Added `expectDyadicTemporalSubLayerPattern` capability
** Added the `VkVideoEncodeH265SessionParametersGetInfoEXT` structure to
identify the H.265 parameter sets to retrieve encoded parameter data
for, and the `VkVideoEncodeH265SessionParametersFeedbackInfoEXT`
structure to retrieve H.265 parameter set override information when
using the new `vkGetEncodedVideoSessionParametersKHR` command
** Added `VkVideoEncodeH265NaluSliceSegmentInfoEXT::constantQp` to specify
per-slice segment constant QP when rate control mode is
`VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR`
** Added `VkVideoEncodeH265QualityLevelPropertiesEXT` for retrieving H.265
specific quality level recommendations
** Replaced `VkVideoEncodeH265RateControlStructureEXT` enum with the flags
type `VkVideoEncodeH265RateControlFlagsEXT` and bits defined in
`VkVideoEncodeH265RateControlFlagBitsEXT` and added HRD compliance flag
** Removed `useInitialRcQp` and `initialRcQp` members of
`VkVideoEncodeH265RateControlLayerInfoEXT`
** Added `prefersGopRemainingFrames` and `requiresGopRemainingFrames`, and
the new `VkVideoEncodeH265GopRemainingFrameInfoEXT` structure to allow
specifying remaining frames of each type in the rate control GOP
** Renamed `maxSubLayersCount` capability to `maxSubLayerCount`
** Added `maxQp`, and `minQp` capabilities
** Added `maxLevelIdc` capability and new
`VkVideoEncodeH265SessionCreateInfoEXT` structure to specify upper
bounds on the H.265 level of the produced video bitstream
** Moved capability flags specific to codec syntax restrictions from
`VkVideoEncodeH265CapabilityFlagsEXT` to the new
`VkVideoEncodeH265StdFlagsEXT` which is now included as a separate
`stdSyntaxFlags` member in `VkVideoEncodeH265CapabilitiesEXT`
** Added `std` prefix to codec syntax capabilities in
`VkVideoEncodeH265CapabilitiesEXT`
** Removed `VkVideoEncodeH265NaluSliceSegmentInfoEXT::ctbCount` and
`VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT`
** Replaced
`VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_FRAME_BIT_EXT`
with the new `maxSliceSegmentCount` capability
** Added `maxTiles` capability
** Removed codec syntax min/max capabilities from
`VkVideoEncodeH265CapabilitiesEXT`
** Removed capability flag
`VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_REFERENCE_FINAL_LISTS_BIT_EXT`
and removed `pStdReferenceFinalLists` members from the
`VkVideoEncodeH265PictureInfoEXT` and
`VkVideoEncodeH265NaluSliceSegmentInfoEXT` structures as reference
lists info is now included in `pStdPictureInfo`
** Added capability flag
`VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_EXT`
32 changes: 29 additions & 3 deletions appendices/VK_KHR_video_encode_queue.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::{generated}/meta/{refprefix}VK_KHR_video_encode_queue.adoc[]
=== Other Extension Metadata

*Last Modified Date*::
2023-03-06
2023-06-06
*IP Status*::
No known IP claims.
*Contributors*::
Expand All @@ -20,8 +20,11 @@ include::{generated}/meta/{refprefix}VK_KHR_video_encode_queue.adoc[]
- Srinath Kumarapuram, NVIDIA
- Thomas J. Meier, NVIDIA
- Tony Zlatinski, NVIDIA
- Ravi Chaudhary, NVIDIA
- Yang Liu, AMD
- Daniel Rakos, RasterGrid
- Ping Liu, Intel
- Aidan Fabius, Core Avionics & Industrial Inc.

=== Description

Expand Down Expand Up @@ -94,9 +97,32 @@ Instead the bit is marked reserved.
** Change the type of `averageBitrate` and `maxBitrate` in
`VkVideoEncodeRateControlLayerInfoKHR`` from `uint32_t` to `uint64_t`
** Fixed the definition of rate control flag bits and added the new
`ename:VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR` constant to
indicate implementation-specific automatic rate control
`VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR` constant to indicate
implementation-specific automatic rate control
** Change the type of `VkVideoEncodeRateControlInfoKHR::layerCount` from
`uint8_t` to `uint32_t`
** Rename `pLayerConfigs` to `pLayers` in
`VkVideoEncodeRateControlInfoKHR`
* Revision 9, 2023-03-28 (Daniel Rakos)
** Removed `VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR` and
the ability to change the state of individual rate control layers
** Added new `VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR`
flag to video encode feedback queries
** Added new video session create flag
`VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR`
to opt-in to video session and encoding parameter optimizations
** Added the `vkGetEncodedVideoSessionParametersKHR` command to enable
retrieving encoded video session parameter data
** Moved `virtualBufferSizeInMs` and `initialVirtualBufferSizeInMs` from
`VkVideoEncodeRateControlLayerInfoKHR` to
`VkVideoEncodeRateControlInfoKHR`
** Added `maxBitrate` capability
** Renamed `inputImageDataFillAlignment` capability to
`encodeInputPictureGranularity` to better reflect its purpose
** Added new `vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR`
command and related structures to enable querying recommended settings
for video encode quality levels
** Added `VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR` flag and
`VkVideoEncodeQualityLevelInfoKHR` structure to allow controlling video
encode quality level and removed `qualityLevel` from the encode
operation parameters
2 changes: 1 addition & 1 deletion appendices/spirvenv.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2218,7 +2218,7 @@ different sign than the infinitely precise result.
| code:cross()
2+| Inherited from [eq]#code:OpFSub(code:OpFMul, code:OpFMul)#.
| code:normalize(x)
2+a| Inherited from latexmath:[\frac{x}{length(x)}].
2+a| Inherited from latexmath:[x \times inversesqrt(dot(x, x))].
| code:faceforward(N, I, NRef)
2+| Inherited from [eq]#code:dot(NRef, I) < 0.0 ? N : -N#.
| code:reflect(x, y)
Expand Down
Loading

0 comments on commit 2f4ef83

Please sign in to comment.