Skip to content

Commit

Permalink
Change log for July 28, 2023 Vulkan 1.3.260 spec update:
Browse files Browse the repository at this point in the history
Internal Issues

  * Refactor `parse_dependency.py:dependencyLanguage()` into a more useful
    form for downstream components such as the validation layers (internal
    issue 3555).
  * Add CI check to `xml_consistency.py` for API names added by extensions
    which have suffix inconsistencies (internal issue 3568).
  * Add notes to flink:vkCreateAccelerationStructureKHR and
    flink:vkCreateMicromapEXT about data capture/replay (internal merge
    request 6015).
  * Add missing explicit common parent VUs for flink:vkCreateImageView and
    flink:vkGetMicromapBuildSizesEXT (internal merge request 6016).
  * Add VU to slink:VkCommandBufferBeginInfo requiring the
    pname:commandBuffer support graphics operations (internal merge request
    6025).
  * Unify unavailable query VUs for flink:vkCmdWriteTimestamp and
    flink:vkCmdWriteTimestamp2 (internal merge request 6027).
  * Make slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:pNext a `const`
    pointer (internal merge request 6028).

New Extensions

  * apiext:VK_KHR_maintenance5
  * apiext:VK_AMDX_shader_enqueue
  • Loading branch information
oddhack committed Jul 28, 2023
1 parent 3da7531 commit 12ab585
Show file tree
Hide file tree
Showing 51 changed files with 4,267 additions and 285 deletions.
29 changes: 29 additions & 0 deletions ChangeLog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,35 @@ appears frequently in the change log.

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

Change log for July 28, 2023 Vulkan 1.3.260 spec update:

Internal Issues

* Refactor `parse_dependency.py:dependencyLanguage()` into a more useful
form for downstream components such as the validation layers (internal
issue 3555).
* Add CI check to `xml_consistency.py` for API names added by extensions
which have suffix inconsistencies (internal issue 3568).
* Add notes to flink:vkCreateAccelerationStructureKHR and
flink:vkCreateMicromapEXT about data capture/replay (internal merge
request 6015).
* Add missing explicit common parent VUs for flink:vkCreateImageView and
flink:vkGetMicromapBuildSizesEXT (internal merge request 6016).
* Add VU to slink:VkCommandBufferBeginInfo requiring the
pname:commandBuffer support graphics operations (internal merge request
6025).
* Unify unavailable query VUs for flink:vkCmdWriteTimestamp and
flink:vkCmdWriteTimestamp2 (internal merge request 6027).
* Make slink:VkGraphicsPipelineLibraryCreateInfoEXT::pname:pNext a `const`
pointer (internal merge request 6028).

New Extensions

* apiext:VK_KHR_maintenance5
* apiext:VK_AMDX_shader_enqueue

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

Change log for July 21, 2023 Vulkan 1.3.259 spec update:

Internal Issues
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 259
PATCHVERSION = 260
BASEOPTS =

ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Expand Down
44 changes: 44 additions & 0 deletions appendices/VK_AMDX_shader_enqueue.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright 2017-2023 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_AMDX_shader_enqueue.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
2021-07-22
*Interactions and External Dependencies*::
- This extension requires
{spirv}/AMD/SPV_AMDX_shader_enqueue.html[`SPV_AMDX_shader_enqueue`].

*Provisional*::

*This extension is _provisional_ and should: not be used in production
applications.
The functionality may: change in ways that break backwards compatibility
between revisions, and before final release.*

*Contributors*::
- Tobias Hector, AMD
- Matthaeus Chajdas, AMD
- Maciej Jesionowski, AMD
- Robert Martin, AMD
- Qun Lin, AMD
- Rex Xu, AMD
- Dominik Witczak, AMD
- Karthik Srinivasan, AMD
- Nicolai Haehnle, AMD
- Stuart Smith, AMD

=== Description

This extension adds the ability for developers to enqueue compute shader
workgroups from other compute shaders.

include::{generated}/interfaces/VK_AMDX_shader_enqueue.adoc[]

=== Version History

* Revision 1, 2021-07-22 (Tobias Hector)
** Initial revision
88 changes: 88 additions & 0 deletions appendices/VK_KHR_maintenance5.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
// Copyright 2022-2023 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_maintenance5.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
2023-05-02

*Interactions and External Dependencies*::

*Contributors*::
- Stu Smith, AMD
- Tobias Hector, AMD
- Shahbaz Youssefi, Google
- Slawomir Cygan, Intel
- Lionel Landwerlin, Intel
- James Fitzpatrick, Imagination Technologies
- Andrew Garrard, Imagination Technologies
- Ralph Potter, Samsung
- Pan Gao, Huawei
- Jan-Harald Fredriksen, ARM
- Jon Leech, Khronos
- Mike Blumenkrantz, Valve

=== Description

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

The new features are as follows:

* A new ename:VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR format
* A new ename:VK_FORMAT_A8_UNORM_KHR format
* A property to indicate that multisample coverage operations are
performed after sample counting in EarlyFragmentTests mode
* Relax VkBufferView creation requirements by allowing subsets of the
associated VkBuffer usage using sname:VkBufferUsageFlags2CreateInfoKHR
* A new entry point flink:vkCmdBindIndexBuffer2KHR, allowing a range of
memory to be bound as an index buffer
* flink:vkGetDeviceProcAddr must return code:NULL for supported core
functions beyond the version requested by the application.
* A property to indicate that the sample mask test is performed after
sample counting in EarlyFragmentTests mode
* `vkCmdBindVertexBuffers2` now supports using `VK_WHOLE_SIZE` in the
`pSizes` parameter.
* A default size of 1.0 is used if code:PointSize is not written
* Shader modules are deprecated - applications can now pass
slink:VkShaderModuleCreateInfo as a chained struct to pipeline creation
via slink:VkPipelineShaderStageCreateInfo
* A function flink:vkGetRenderingAreaGranularityKHR to query the optimal
render area for a dynamic rendering instance.
* A property to indicate that depth/stencil texturing operations with
enum:VK_COMPONENT_SWIZZLE_ONE have defined behavior
* Add flink:vkGetImageSubresourceLayout2KHR and a new function
flink:vkGetDeviceImageSubresourceLayoutKHR to allow the application to
query the image memory layout without having to create an image object
and query it.
* Allow ename:VK_REMAINING_ARRAY_LAYERS as the pname:layerCount member of
slink:VkImageSubresourceLayers
* Adds stronger guarantees for propagation of ename:VK_ERROR_DEVICE_LOST
return values
* A property to indicate whether code:PointSize controls the final
rasterization of polygons if <<primsrast-polygonmode, polygon mode>> is
ename:VK_POLYGON_MODE_POINT
* Two properties to indicate the non-strict line rasterization algorithm
used
* Two new flags words elink:VkPipelineCreateFlagBits2KHR and
elink:VkBufferUsageFlagBits2KHR
* Physical-device-level functions can now be called with any value in the
valid range for a type beyond the defined enumerants, such that
applications can avoid checking individual features, extensions, or
versions before querying supported properties of a particular enumerant.
* Clarification that copies between images of any type are allowed,
treating 1D images as 2D images with a height of 1.

include::{generated}/interfaces/VK_KHR_maintenance5.adoc[]

=== Issues

None.

=== Version History

* Revision 1, 2022-12-12 (Stu Smith)
** Initial revision
63 changes: 57 additions & 6 deletions appendices/spirvenv.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -443,12 +443,16 @@ or knowledge of runtime information, such as enabled features.
callable shaders, or with the code:RayTmaxKHR code:Builtin decoration
when used in an intersection shader
* [[VUID-{refpage}-OpTypeRuntimeArray-04680]]
code:OpTypeRuntimeArray must: only be used for the last member of a
code:Block-decorated code:OpTypeStruct in code:StorageBuffer or
code:PhysicalStorageBuffer {StorageClass}; code:BufferBlock-decorated
code:OpTypeStruct in code:Uniform {StorageClass}; the outermost
dimension of an arrayed variable in the code:StorageBuffer,
code:Uniform, or code:UniformConstant {StorageClass}
code:OpTypeRuntimeArray must: only be used for:
** the last member of a code:Block-decorated code:OpTypeStruct in
code:StorageBuffer or code:PhysicalStorageBuffer storage {StorageClass}
** code:BufferBlock-decorated code:OpTypeStruct in the code:Uniform
storage {StorageClass}
** the outermost dimension of an arrayed variable in the
code:StorageBuffer, code:Uniform, or code:UniformConstant storage
{StorageClass}
** variables in the code:NodePayloadAMDX storage {StorageClass} when the
code:CoalescingAMDX code:Execution code:Mode is specified
* [[VUID-{refpage}-Function-04681]]
A type _T_ that is an array sized with a specialization constant must:
neither be, nor be contained in, the type _T2_ of a variable _V_, unless
Expand Down Expand Up @@ -670,11 +674,25 @@ or knowledge of runtime information, such as enabled features.
* [[VUID-{refpage}-MeshEXT-07331]]
In mesh shaders using the code:MeshEXT {ExecutionModel} the
code:OutputPrimitivesEXT {ExecutionMode} must: be greater than 0
ifndef::VK_KHR_maintenance5[]
* [[VUID-{refpage}-MeshEXT-07728]]
In mesh shaders using the code:MeshEXT or code:MeshNV {ExecutionModel}
and the code:OutputPoints {ExecutionMode}, if the number of output
points is greater than 0, a code:PointSize decorated variable must: be
written to for each output point
endif::VK_KHR_maintenance5[]
ifdef::VK_KHR_maintenance5[]
* [[VUID-{refpage}-maintenance5-09189]]
In mesh shaders using the code:MeshEXT or code:MeshNV {ExecutionModel}
and the code:OutputPoints {ExecutionMode}, if the number of output
points is greater than 0, a code:PointSize decorated variable must: be
written to for each output point if <<features-maintenance5,
pname:maintenance5>> is not enabled
* [[VUID-{refpage}-maintenance5-09190]]
If <<features-maintenance5, pname:maintenance5>> is enabled and a
code:PointSize decorated variable is written to, all execution paths
must: write to a code:PointSize decorated variable
endif::VK_KHR_maintenance5[]
* [[VUID-{refpage}-Input-07290]]
Variables with a {StorageClass} of code:Input or code:Output and a type
of code:OpTypeBool must: be decorated with the code:BuiltIn decoration
Expand Down Expand Up @@ -1953,6 +1971,39 @@ ifdef::VK_EXT_shader_tile_image[]
code:OpStencilAttachmentReadEXT operations are used, then
pname:minSampleShading must: be 1.0
endif::VK_EXT_shader_tile_image[]
ifdef::VK_AMDX_shader_enqueue[]
* [[VUID-{refpage}-ShaderEnqueueAMDX-09191]]
The code:ShaderEnqueueAMDX capability must: only be used in shaders with
the code:GLCompute execution model
* [[VUID-{refpage}-NodePayloadAMDX-09192]]
Variables in the code:NodePayloadAMDX storage class must: only be
declared in the code:GLCompute execution model
* [[VUID-{refpage}-maxExecutionGraphShaderPayloadSize-09193]]
Variables declared in the code:NodePayloadAMDX storage class must: not
be larger than the <<limits-maxExecutionGraphShaderPayloadSize,
pname:maxExecutionGraphShaderPayloadSize>> limit
* [[VUID-{refpage}-maxExecutionGraphShaderPayloadSize-09194]]
Variables declared in the code:NodeOutputPayloadAMDX storage class must:
not be larger than the <<limits-maxExecutionGraphShaderPayloadSize,
pname:maxExecutionGraphShaderPayloadSize>> limit
* [[VUID-{refpage}-maxExecutionGraphShaderPayloadSize-09195]]
For a given entry point, the sum of the size of any variable in the
code:NodePayloadAMDX storage class, and the combined size of all
statically initialized variables in the code:NodeOutputPayloadAMDX
storage class must: not be greater than
<<limits-maxExecutionGraphShaderPayloadSize,
pname:maxExecutionGraphShaderPayloadSize>>
* [[VUID-{refpage}-maxExecutionGraphShaderPayloadCount-09196]]
Shaders must: not statically initialize more than
<<limits-maxExecutionGraphShaderPayloadCount,
pname:maxExecutionGraphShaderPayloadCount>> variables in the
code:NodeOutputPayloadAMDX storage class
* [[VUID-{refpage}-maxExecutionGraphShaderOutputNodes-09197]]
Shaders must: not include more than
<<limits-maxExecutionGraphShaderOutputNodes,
pname:maxExecutionGraphShaderOutputNodes>> instances of
code:OpInitializeNodePayloadsAMDX
endif::VK_AMDX_shader_enqueue[]
****
--

Expand Down
8 changes: 8 additions & 0 deletions chapters/capabilities.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -1257,6 +1257,14 @@ endif::VK_KHR_external_memory_capabilities[]
specifying the memory handle type that will be used with the memory
associated with the buffer.

Only usage flags representable in elink:VkBufferUsageFlagBits are returned
in this structure's pname:usage.
ifdef::VK_KHR_maintenance5[]
If a slink:VkBufferUsageFlags2CreateInfoKHR structure is present in the
pname:pNext chain, all usage flags of the buffer are returned in
slink:VkBufferUsageFlags2CreateInfoKHR::pname:usage.
endif::VK_KHR_maintenance5[]

include::{generated}/validity/structs/VkPhysicalDeviceExternalBufferInfo.adoc[]
--

Expand Down
5 changes: 5 additions & 0 deletions chapters/cmdbuffers.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -946,6 +946,11 @@ include::{generated}/api/structs/VkCommandBufferBeginInfo.adoc[]

.Valid Usage
****
* [[VUID-VkCommandBufferBeginInfo-flags-09123]]
If pname:flags contains
ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the
slink:VkCommandPool that pname:commandBuffer was allocated from must:
support graphics operations
ifndef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[]
* [[VUID-VkCommandBufferBeginInfo-flags-00053]]
If pname:flags contains
Expand Down
28 changes: 28 additions & 0 deletions chapters/commonvalidity/bind_index_buffer_common.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright 2022-2023 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

// Common Valid Usage
* [[VUID-{refpage}-offset-08782]]
pname:offset must: be less than the size of pname:buffer
* [[VUID-{refpage}-offset-08783]]
The sum of pname:offset and the base address of the range of
sname:VkDeviceMemory object that is backing pname:buffer, must: be a
multiple of the size of the type indicated by pname:indexType
* [[VUID-{refpage}-buffer-08784]]
pname:buffer must: have been created with the
ename:VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag
* [[VUID-{refpage}-buffer-08785]]
If pname:buffer is non-sparse then it must: be bound completely and
contiguously to a single sname:VkDeviceMemory object
ifdef::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
* [[VUID-{refpage}-indexType-08786]]
pname:indexType must: not be ename:VK_INDEX_TYPE_NONE_KHR
endif::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
ifdef::VK_EXT_index_type_uint8[]
* [[VUID-{refpage}-indexType-08787]]
If pname:indexType is ename:VK_INDEX_TYPE_UINT8_EXT, the
<<features-indexTypeUint8, pname:indexTypeUint8>> feature must: be
enabled
endif::VK_EXT_index_type_uint8[]
// Common Valid Usage
18 changes: 18 additions & 0 deletions chapters/commonvalidity/blit_image_common.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ endif::VK_IMG_filter_cubic,VK_EXT_filter_cubic[]
The pname:dstSubresource.mipLevel member of each element of
pname:pRegions must: be less than the pname:mipLevels specified in
slink:VkImageCreateInfo when pname:dstImage was created
ifndef::VK_KHR_maintenance5[]
* [[VUID-{refpage}-srcSubresource-01707]]
The [eq]#pname:srcSubresource.baseArrayLayer {plus}
pname:srcSubresource.layerCount# of each element of pname:pRegions must:
Expand All @@ -125,6 +126,23 @@ endif::VK_IMG_filter_cubic,VK_EXT_filter_cubic[]
pname:dstSubresource.layerCount# of each element of pname:pRegions must:
be less than or equal to the pname:arrayLayers specified in
slink:VkImageCreateInfo when pname:dstImage was created
endif::VK_KHR_maintenance5[]
ifdef::VK_KHR_maintenance5[]
* [[VUID-{refpage}-srcSubresource-08788]]
If pname:srcSubresource.layerCount is not
ename:VK_REMAINING_ARRAY_LAYERS, the
[eq]#pname:srcSubresource.baseArrayLayer {plus}
pname:srcSubresource.layerCount# of each element of pname:pRegions must:
be less than or equal to the pname:arrayLayers specified in
slink:VkImageCreateInfo when pname:srcImage was created
* [[VUID-{refpage}-dstSubresource-08789]]
If pname:dstSubresource.layerCount is not
ename:VK_REMAINING_ARRAY_LAYERS, the
[eq]#pname:dstSubresource.baseArrayLayer {plus}
pname:dstSubresource.layerCount# of each element of pname:pRegions must:
be less than or equal to the pname:arrayLayers specified in
slink:VkImageCreateInfo when pname:dstImage was created
endif::VK_KHR_maintenance5[]
ifdef::VK_EXT_fragment_density_map[]
* [[VUID-{refpage}-dstImage-02545]]
pname:dstImage and pname:srcImage must: not have been created with
Expand Down
Loading

0 comments on commit 12ab585

Please sign in to comment.