Skip to content

Commit

Permalink
Change log for June 28, 2021 Vulkan 1.2.183 spec update:
Browse files Browse the repository at this point in the history
  * Update release number to 183 for this update.

Github Issues:

  * Rewrite and simplify the <<interfaces-iointerfaces-matching, Interface
    Matching>> section. Clarify that results are undefined if the size of a
    vector mismatches (public issue 666; internal issues 1269, 2059, 2323).
  * Remove inappropriate `const` from `void *pNext` members of
    `returnedonly` structures in `vk.xml` (public issue 1482, internal issue
    2644).
  * Add a NOTE to the <<interfaces, Shader Interfaces>> chapter that SPIR-V
    execution model keywords with extension suffixes will always be present
    in spec builds, even in a build not supporting any extensions, since
    these keywords appear in the unified SPIR-V specification without such
    qualifiers (public issue 1483, internal issue 2621).
  * Modify `vk.xml` to include the Vulkan platform header via the path
    `vulkan/vk_platform.h` rather than just `vk_platform.h`
    (public pull request 1538).
  * Add length annotations for slink:VkCuLaunchInfoNVX (public issue 1548).
  * Describe slink:VkSubpassDescription::pname:pDepthStencilAttachment
    correctly as a pointer to a structure, not a pointer to an array of
    structures (public issue 1561).
  * Fix `structextends` attribute of
    slink:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, declare its
    pname:pNext member correctly, and fix some typos in the related
    extension language (public issue 1565, internal issue 2724).

Internal Issues:

  * Add explicit valid usage statements for
    flink:vkCmdClearColorImage::slink:VkClearColorValue and
    slink:VkRenderPassBeginInfo::slink:VkClearValue (internal issue 2490).
  * Change the term "`vertex processing {shader} stage`" to
    "`pre-rasterization shader stage`" throughout the specification, link to
    a single definition, and add "`pre-rasterization`" to the glossary
    (internal issue 2634).
  * Add an `<implicitexternsync>` constraint for
    flink:vkResetCommandBuffers::pname:pool (internal issue 2646).
  * Fix typo `vkCmdResetEvent` -> `vkResetEvent` in flink:vkResetEvent valid
    usage statements (internal issue 2651).
  * Fix wording of scope dependencies for slink:VkMemoryBarrier2KHR,
    slink:VkBufferMemoryBarrier2KHR, and slink:VkImageMemoryBarrier2KHR
    members pname:srcAccessMask and pname:dstAccessMask (internal issue
    2654).
  * Require support for pname:shaderInt64 in the <<features-requirements,
    Feature Requirements>> section when pname:atomicInt64 features are
    supported (internal issue 2660).
  * Clarify ray tracing valid usage statements for cases where a parameter
    refers to an acceleration structure that must have been built (internal
    issue 2715).
  * Add a NOTE clarifying shader record buffer uniformity in the
    <<shader-binding-table, Shader Binding Table>> section (internal issue
    2719).
  * Minor clarifications and typo fixes to `<<VK_HUAWEI_subpass_shading>>`
    (internal issue 2722).
  * Add missing <spirvextension> entry in `vk.xml` to enable
    `SPV_KHR_subgroup_uniform_control_flow`
    (internal issue 2733).
  * Move SPIR-V valid usage statement from the
    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
    section to <<spirvenv-module-validation-standalone]] Standalone SPIR-V
    Validation>> (internal merge request 4637).
  * Add a new <<spirvenv-image-signedness, Signedness of SPIR-V Image
    Accesses>> section to allow the use of unsigned Sampled Types with
    code:SignExtend and signed code:Format decorations (internal merge
    request 4638).
  * Add missing slink:VkDeviceCreateInfo to `structextends` attribute of
    slink:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT (internal merge
    request 4652).
  * Remove nonexistent pname:minFragmentSize from the <<limits-minmax, Limit
    Requirements>> table (internal merge request 4655).
  * Fix markup typo for `<<VK_NV_fragment_shader_barycentric>>` ifdef
    (internal merge request 4663).
  • Loading branch information
oddhack committed Jun 27, 2021
1 parent c8621bf commit 1934d6f
Show file tree
Hide file tree
Showing 29 changed files with 507 additions and 291 deletions.
78 changes: 78 additions & 0 deletions ChangeLog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,84 @@ public pull requests that have been accepted.

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

Change log for June 28, 2021 Vulkan 1.2.183 spec update:

* Update release number to 183 for this update.

Github Issues:

* Rewrite and simplify the <<interfaces-iointerfaces-matching, Interface
Matching>> section. Clarify that results are undefined if the size of a
vector mismatches (public issue 666; internal issues 1269, 2059, 2323).
* Remove inappropriate `const` from `void *pNext` members of
`returnedonly` structures in `vk.xml` (public issue 1482, internal issue
2644).
* Add a NOTE to the <<interfaces, Shader Interfaces>> chapter that SPIR-V
execution model keywords with extension suffixes will always be present
in spec builds, even in a build not supporting any extensions, since
these keywords appear in the unified SPIR-V specification without such
qualifiers (public issue 1483, internal issue 2621).
* Modify `vk.xml` to include the Vulkan platform header via the path
`vulkan/vk_platform.h` rather than just `vk_platform.h`
(public pull request 1538).
* Add length annotations for slink:VkCuLaunchInfoNVX (public issue 1548).
* Describe slink:VkSubpassDescription::pname:pDepthStencilAttachment
correctly as a pointer to a structure, not a pointer to an array of
structures (public issue 1561).
* Fix `structextends` attribute of
slink:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, declare its
pname:pNext member correctly, and fix some typos in the related
extension language (public issue 1565, internal issue 2724).

Internal Issues:

* Add explicit valid usage statements for
flink:vkCmdClearColorImage::slink:VkClearColorValue and
slink:VkRenderPassBeginInfo::slink:VkClearValue (internal issue 2490).
* Change the term "`vertex processing {shader} stage`" to
"`pre-rasterization shader stage`" throughout the specification, link to
a single definition, and add "`pre-rasterization`" to the glossary
(internal issue 2634).
* Add an `<implicitexternsync>` constraint for
flink:vkResetCommandBuffers::pname:pool (internal issue 2646).
* Fix typo `vkCmdResetEvent` -> `vkResetEvent` in flink:vkResetEvent valid
usage statements (internal issue 2651).
* Fix wording of scope dependencies for slink:VkMemoryBarrier2KHR,
slink:VkBufferMemoryBarrier2KHR, and slink:VkImageMemoryBarrier2KHR
members pname:srcAccessMask and pname:dstAccessMask (internal issue
2654).
* Require support for pname:shaderInt64 in the <<features-requirements,
Feature Requirements>> section when pname:atomicInt64 features are
supported (internal issue 2660).
* Clarify ray tracing valid usage statements for cases where a parameter
refers to an acceleration structure that must have been built (internal
issue 2715).
* Add a NOTE clarifying shader record buffer uniformity in the
<<shader-binding-table, Shader Binding Table>> section (internal issue
2719).
* Minor clarifications and typo fixes to `<<VK_HUAWEI_subpass_shading>>`
(internal issue 2722).
* Add missing <spirvextension> entry in `vk.xml` to enable
`SPV_KHR_subgroup_uniform_control_flow`
(internal issue 2733).
* Move SPIR-V valid usage statement from the
<<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
section to <<spirvenv-module-validation-standalone]] Standalone SPIR-V
Validation>> (internal merge request 4637).
* Add a new <<spirvenv-image-signedness, Signedness of SPIR-V Image
Accesses>> section to allow the use of unsigned Sampled Types with
code:SignExtend and signed code:Format decorations (internal merge
request 4638).
* Add missing slink:VkDeviceCreateInfo to `structextends` attribute of
slink:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT (internal merge
request 4652).
* Remove nonexistent pname:minFragmentSize from the <<limits-minmax, Limit
Requirements>> table (internal merge request 4655).
* Fix markup typo for `<<VK_NV_fragment_shader_barycentric>>` ifdef
(internal merge request 4663).

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

Change log for June 21, 2021 Vulkan 1.2.182 spec update:

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

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 182
PATCHVERSION = 183
ifneq (,$(findstring VK_VERSION_1_2,$(VERSIONS)))
SPECREVISION = 1.2.$(PATCHVERSION)
else
Expand Down
4 changes: 3 additions & 1 deletion appendices/VK_EXT_transform_feedback.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,9 @@ multiview enabled.
ename:VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT.
A query pool created with this type will capture 2 integers -
numPrimitivesWritten and numPrimitivesNeeded - for the specified vertex
stream output from the last vertex processing stage.
stream output from the last
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stage>>.
The vertex stream output queried is zero by default, but can be specified
with the new fname:vkCmdBeginQueryIndexedEXT and
fname:vkCmdEndQueryIndexedEXT commands.
Expand Down
13 changes: 8 additions & 5 deletions appendices/VK_HUAWEI_subpass_shading.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,16 @@ or height, with minimum value from 8, and maximum value shall be decided
from the render pass attachments and sample counts but depends on
implementation.

The code:GlobalInvocationId.xy of a subpass shading pipeline is mapped to
the code:FragCoord.xy of a graphic pipeline in the same render pass
substracted the offset of render area.
code:GlobalInvocationId.z is mapped to the LayerID.
The code:GlobalInvocationId.xy of a subpass shading pipeline is equal to the
code:FragCoord.xy of a graphic pipeline in the same render pass subtracted
the <<VkRect2D,pname:offset>> of the
slink:VkRenderPassBeginInfo::code:renderArea.
code:GlobalInvocationId.z is mapped to the Layer if
`<<VK_EXT_shader_viewport_index_layer>>` is supported.
The code:GlobalInvocationId.xy is equal to the index of the local workgroup
multiplied by the size of the local workgroup plus the
code:LocalInvocationId and the offset of render area.
code:LocalInvocationId and the <<VkRect2D,pname:offset>> of the
slink:VkRenderPassBeginInfo::code:renderArea.

This extension allows a subpass's pipeline bind point to be
ename:VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI.
Expand Down
11 changes: 7 additions & 4 deletions appendices/VK_NVX_multiview_per_view_attributes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,17 @@ include::{generated}/meta/{refprefix}VK_NVX_multiview_per_view_attributes.txt[]

This extension adds a new way to write shaders to be used with multiview
subpasses, where the attributes for all views are written out by a single
invocation of the vertex processing stages.
invocation of the
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stages>>.
Related SPIR-V and GLSL extensions `SPV_NVX_multiview_per_view_attributes`
and `GL_NVX_multiview_per_view_attributes` introduce per-view position and
viewport mask attributes arrays, and this extension defines how those
per-view attribute arrays are interpreted by Vulkan.
Pipelines using per-view attributes may: only execute the vertex processing
stages once for all views rather than once per-view, which reduces redundant
shading work.
Pipelines using per-view attributes may: only execute the
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stages>> once for all views rather than once per-view, which reduces
redundant shading work.

A subpass creation flag controls whether the subpass uses this extension.
A subpass must: either exclusively use this extension or not use it at all.
Expand Down
8 changes: 4 additions & 4 deletions appendices/VK_NV_mesh_shader.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ assembler as well as fixed function vertex fetch.
There are new programmable shader types -- the task and mesh shader -- to
generate these collections to be processed by fixed-function primitive
assembly and rasterization logic.
When the task and mesh shaders are dispatched, they replace the standard
programmable vertex processing pipeline, including vertex array attribute
fetching, vertex shader processing, tessellation, and the geometry shader
processing.
When task and mesh shaders are dispatched, they replace the core
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization stages>>,
including vertex array attribute fetching, vertex shader processing,
tessellation, and geometry shader processing.

This extension also adds support for the following SPIR-V extension in
Vulkan:
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_NV_ray_tracing_motion_blur.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ geometry:

The motion represented here is parameterized across a normalized timestep
between 0.0 and 1.0.
A motion trace using OpTraceRaysMotionNV provides a time within that
A motion trace using OpTraceRayMotionNV provides a time within that
normalized range to be used when intersecting that ray with geometry.
The geometry can be provided with motion by a combination of adding a second
vertex position for time of 1.0 using
Expand Down
6 changes: 3 additions & 3 deletions appendices/VK_NV_shading_rate_image.txt
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,9 @@ under-specified in case there are other implementations that access the
image in a different pipeline location?

*RESOLVED* We are specifying the pipeline stage to be between the final
stage used for vertex processing
(ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT) and before the first stage
used for fragment processing
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stage>> (ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT) and before the first
stage used for fragment processing
(ename:VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT), which seems to be the
natural place to access the shading rate image.

Expand Down
44 changes: 24 additions & 20 deletions appendices/glossary.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,11 @@ Active (Transform Feedback)::
flink:vkCmdBeginTransformFeedbackEXT executes and remains active until
flink:vkCmdEndTransformFeedbackEXT executes.
While transform feedback is active, data written to variables in the
output interface of the last vertex processing stage of the graphics
pipeline are captured to the bound transform feedback buffers if those
variables are decorated for transform feedback.
output interface of the last
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stage>> of the graphics pipeline are captured to the bound transform
feedback buffers if those variables are decorated for transform
feedback.
endif::VK_EXT_transform_feedback[]

Adjacent Vertex::
Expand Down Expand Up @@ -184,11 +186,15 @@ Built-In Interface Block::

Clip Coordinates::
The homogeneous coordinate space that vertex positions (code:Position
decoration) are written in by vertex processing stages.
decoration) are written in by
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stages>>.

Clip Distance::
A built-in output from vertex processing stages that defines a clip
half-space against which the primitive is clipped.
A built-in output from
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stages>> that defines a clip half-space against which the primitive is
clipped.

Clip Volume::
The intersection of the view volume with all clip half-spaces.
Expand Down Expand Up @@ -295,9 +301,10 @@ Coverage Mask::
subsequently modified by fragment operations or the fragment shader.

Cull Distance::
A built-in output from vertex processing stages that defines a cull
half-space where the primitive is rejected if all vertices have a
negative value for the same cull distance.
A built-in output from
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stages>> that defines a cull half-space where the primitive is rejected
if all vertices have a negative value for the same cull distance.

Cull Volume::
The intersection of the view volume with all cull half-spaces.
Expand Down Expand Up @@ -1232,6 +1239,10 @@ ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
implementation.
endif::VK_ANDROID_external_memory_android_hardware_buffer[]

Pre-rasterization::
Operations that execute before <<primsrast,rasterization>>, and any
state associated with those operations.

ifdef::VK_KHR_swapchain[]
Presentable image::
A sname:VkImage object obtained from a sname:VkSwapchainKHR used to
Expand Down Expand Up @@ -1648,9 +1659,10 @@ Vertex Input Attribute::

ifdef::VK_EXT_transform_feedback[]
Vertex Stream::
A vertex stream is where the last vertex processing stage outputs vertex
data, which then goes to the rasterizer, is captured to a transform
feedback buffer, or both.
A vertex stream is where the last
<<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
stages>> outputs vertex data, which then goes to the rasterizer, is
captured to a transform feedback buffer, or both.
Geometry shaders can: emit primitives to multiple independent vertex
streams.
Each vertex emitted by the geometry shader is directed at one of the
Expand All @@ -1673,14 +1685,6 @@ Vertex Input Interface::
A vertex shader entry point's variables with code:Input storage class,
which receive values from vertex input attributes.

Vertex Processing Stages::
A set of shader stages that comprises the vertex shader, tessellation
control shader, tessellation evaluation shader, and geometry shader
stages.
ifdef::VK_NV_mesh_shader[]
The task and mesh shader stages also belong to this group.
endif::VK_NV_mesh_shader[]

ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
View Mask::
When multiview is enabled, a view mask is a property of a subpass
Expand Down
Loading

0 comments on commit 1934d6f

Please sign in to comment.