Skip to content

Commit

Permalink
Change log for July 15, 2017 Vulkan 1.0.55 spec update:
Browse files Browse the repository at this point in the history
  * Bump API patch number and header version number to 55 for this update.

Github Issues:

  * Removed unintended optional parameter in +vk.xml+ from the
    pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
    in the generation of an incorrect implicit valid usage clause allowing
    pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
    non-zero (public issue 491).
  * Add missing attribute to +vk.xml+ documenting that
    slink:VkSwapchainCounterCreateInfoEXT extends
    slink:VkSwapchainCreateInfo (public issue 510).
  * Add const qualifier for some `VK_EXT_debug_market` extension command
    parameters that were missing it (public issue 513).
  * Fix definition of q and level~base~ in
    <<textures-image-level-selection,Image Level(s) Selection>> (public
    issue 515).
  * Clarify lifetime requirement for slink:VkRenderPass objects used in
    object creation (public issue 516).
  * Fix link to floating/normalized fixed-point conversion from
    <<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
    521).

Internal Issues:

  * Update the style guide to include the general structure of a Vulkan
    command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
    names, and a table of verbs commonly used in command names (spinoff of
    internal issue 753).
  * Clarified the behavior of automatic layout transitions in case of
    attachment views that are 2D or 2D array views of 3D images. In
    addition, restructured the valid usage clauses corresponding to the
    members of the slink:VkImageSubresourceRange structure and added missing
    valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
    members (internal issues 803, 849).
  * Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
    push_constant declaration (internal issue 919).

Other Commits:

  * Modify <<synchronization-framebuffer-regions, Framebuffer Region
    Dependencies>> to use synchronization scope terminology.
  * Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
    `VK_EXT_swapchain_colorspace` extension.
  * Replace XML comments with `comment` attributes and/or tags, to enable
    tools which transform the XML without loss of information.
  * Replace `validextensionstructs` with `structextends`, which is tagged in
    the child structure instead of the parent. This makes it slightly
    simpler to add new structs to the XML, causes fewer merge conflicts, and
    the information is kept localized to the extension structures where it
    belongs. The old `validextensionstructs` attributes will be retained
    until we're certain this doesn't cause problems with known consumers of
    +vk.xml+.
  • Loading branch information
oddhack committed Jul 17, 2017
1 parent dbfd1b6 commit 712755f
Show file tree
Hide file tree
Showing 23 changed files with 1,694 additions and 1,205 deletions.
58 changes: 58 additions & 0 deletions ChangeLog.txt
Expand Up @@ -8,6 +8,64 @@ public issues.

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

Change log for July 15, 2017 Vulkan 1.0.55 spec update:

* Bump API patch number and header version number to 55 for this update.

Github Issues:

* Removed unintended optional parameter in +vk.xml+ from the
pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
in the generation of an incorrect implicit valid usage clause allowing
pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
non-zero (public issue 491).
* Add missing attribute to +vk.xml+ documenting that
slink:VkSwapchainCounterCreateInfoEXT extends
slink:VkSwapchainCreateInfo (public issue 510).
* Add const qualifier for some `VK_EXT_debug_market` extension command
parameters that were missing it (public issue 513).
* Fix definition of q and level~base~ in
<<textures-image-level-selection,Image Level(s) Selection>> (public
issue 515).
* Clarify lifetime requirement for slink:VkRenderPass objects used in
object creation (public issue 516).
* Fix link to floating/normalized fixed-point conversion from
<<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
521).

Internal Issues:

* Update the style guide to include the general structure of a Vulkan
command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
names, and a table of verbs commonly used in command names (spinoff of
internal issue 753).
* Clarified the behavior of automatic layout transitions in case of
attachment views that are 2D or 2D array views of 3D images. In
addition, restructured the valid usage clauses corresponding to the
members of the slink:VkImageSubresourceRange structure and added missing
valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
members (internal issues 803, 849).
* Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
push_constant declaration (internal issue 919).

Other Commits:

* Modify <<synchronization-framebuffer-regions, Framebuffer Region
Dependencies>> to use synchronization scope terminology.
* Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
`VK_EXT_swapchain_colorspace` extension.
* Replace XML comments with `comment` attributes and/or tags, to enable
tools which transform the XML without loss of information.
* Replace `validextensionstructs` with `structextends`, which is tagged in
the child structure instead of the parent. This makes it slightly
simpler to add new structs to the XML, causes fewer merge conflicts, and
the information is kept localized to the extension structures where it
belongs. The old `validextensionstructs` attributes will be retained
until we're certain this doesn't cause problems with known consumers of
+vk.xml+.

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

Change log for July 13, 2017 Vulkan 1.0.54 spec update:

* Bump API patch number and header version number to 54 for this update.
Expand Down
14 changes: 12 additions & 2 deletions doc/specs/misc/GL_KHR_vulkan_glsl.txt
Expand Up @@ -33,8 +33,8 @@ Status

Version

Last Modified Date: 21-May-2017
Revision: 40
Last Modified Date: 05-Jul-2017
Revision: 41

Number

Expand Down Expand Up @@ -914,6 +914,15 @@ Changes to Chapter 4 of the OpenGL Shading Language Specification
"However, when push_constant is declared, the default layout of the
buffer will be std430. There is no method to globally set this default."

Add to this statement:

"The std430 qualifier is supported only for shader storage blocks; using
std430 on a uniform block will result in a compile-time error"

the following phrase:

"unless it is also declared with push_constant"

Add to section 4.4.5 Uniform and Shader Storage Block Layout Qualifiers,
for versions not having 'offset' and 'align' description language,
or replace with the following for versions that do have 'offset' and
Expand Down Expand Up @@ -1371,6 +1380,7 @@ Revision History

Rev. Date Author Changes
---- ----------- ------- --------------------------------------------
41 05-Jul-2017 JohnK allow std430 on push_constant declarations
40 21-May-2017 JohnK Require in/out explicit locations
39 14-Apr-2017 JohnK Update overview for StorageBuffer storage
class.
Expand Down
4 changes: 2 additions & 2 deletions doc/specs/vulkan/appendices/VK_EXT_sampler_filter_minmax.txt
Expand Up @@ -25,8 +25,8 @@
- Jeff Bolz (jbolz 'at' nvidia.com)

In unextended Vulkan, minification and magnification filters such as LINEAR
allow sampled image lookups to returned a filtered texel value produced by
computing an weighted average of a collection of texels in the neighborhood
allow sampled image lookups to return a filtered texel value produced by
computing a weighted average of a collection of texels in the neighborhood
of the texture coordinate provided.

This extension provides a new sampler parameter which allows applications to
Expand Down
11 changes: 8 additions & 3 deletions doc/specs/vulkan/appendices/VK_EXT_swapchain_colorspace.txt
Expand Up @@ -25,15 +25,17 @@

* Extending elink:VkColorSpaceKHR:
** ename:VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT - supports the Display-P3
color space and applies an sRGB-like OETF.
color space and applies an sRGB-like transfer function.
** ename:VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT - supports the extended
sRGB color space and applies a linear OETF.
sRGB color space and applies a linear transfer function.
** ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT - supports the
extended sRGB color space with an sRGB nonlinear transfer function.
** ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT - supports the DCI-P3 color
space and applies a linear OETF.
** ename:VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT - supports the DCI-P3 color
space and applies the Gamma 2.6 OETF.
** ename:VK_COLOR_SPACE_BT709_LINEAR_EXT - supports the BT709 color space
and applies a linear OETF.
and applies a linear transfer function.
** ename:VK_COLOR_SPACE_BT709_NONLINEAR_EXT - supports the BT709 color
space and applies the SMPTE 170M OETF.
** ename:VK_COLOR_SPACE_BT2020_LINEAR_EXT - supports the BT2020 color
Expand Down Expand Up @@ -81,3 +83,6 @@ described by separate extension.
* Revision 2, 2017-01-19 (Courtney Goeltzenleuchter)
- Add pass through and multiple options for BT2020.
- Clean up some issues with equations not displaying properly.

* Revision 3, 2017-06-23 (Courtney Goeltzenleuchter)
- Add extended sRGB non-linear enum.
17 changes: 10 additions & 7 deletions doc/specs/vulkan/chapters/VK_KHR_surface/wsi.txt
Expand Up @@ -647,9 +647,12 @@ include::../../api/enums/VkColorSpaceKHR.txt[]
color space.
ifdef::VK_EXT_swapchain_colorspace[]
* ename:VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT indicates support for the
Display-P3 color space and applies an sRGB-like OETF (defined below).
Display-P3 color space and applies an sRGB-like transfer function
(defined below).
* ename:VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT indicates support for the
extended sRGB color space and applies a linear OETF.
extended sRGB color space and applies a linear transfer function.
* ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT indicates support for
the extended sRGB color space and applies an sRGB transfer function.
* ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT indicates support for the DCI-P3
color space and applies a linear OETF.
* ename:VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT indicates support for the
Expand Down Expand Up @@ -679,8 +682,8 @@ ifdef::VK_EXT_swapchain_colorspace[]

The color components of Non-linear color space swap chain images have had
the appropriate transfer function applied.
Vulkan requires that all implementations support the sRGB OETF and EOTF
transfer functions when using an SRGB pixel format.
Vulkan requires that all implementations support the sRGB transfer function
when using an SRGB pixel format.
Other transfer functions, such as SMPTE 170M or SMPTE2084, must: not be
performed by the implementation, but can: be performed by the application
shader.
Expand All @@ -691,7 +694,7 @@ the following color spaces::
.Color Spaces and Attributes
[options="header"]
|====
| Name | Red Primary | Green Primary | Blue Primary | White-point | OETF
| Name | Red Primary | Green Primary | Blue Primary | White-point | Transfer function
| DCI-P3 | 0.680, 0.320 | 0.265, 0.690 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | Gamma 2.6
| Display-P3 | 0.680, 0.320 | 0.265, 0.690 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | Display-P3
| BT709 | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | SMPTE 170M
Expand Down Expand Up @@ -719,7 +722,7 @@ endif::VK_EXT_swapchain_colorspace[]

ifdef::VK_EXT_swapchain_colorspace[]

=== sRGB OETF
=== sRGB transfer function

[latexmath]
+++++++++++++++++++
Expand Down Expand Up @@ -852,7 +855,7 @@ latexmath:[a = 0.17883277 \text{ and } b = 0.28466892 \text{, and } c =
0.55991073]


=== AdobeRGB OETF
=== Adobe RGB (1998) OETF

latexmath:[E = L^\frac{1}{2.19921875}]

Expand Down
58 changes: 52 additions & 6 deletions doc/specs/vulkan/chapters/clears.txt
Expand Up @@ -78,9 +78,32 @@ ifdef::VK_KHR_shared_presentable_image[]
ename:VK_IMAGE_LAYOUT_GENERAL, or
ename:VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
endif::VK_KHR_shared_presentable_image[]
* [[VUID-vkCmdClearColorImage-pRanges-00006]]
The image range of any given element of pname:pRanges must: be an image
subresource range that is contained within pname:image
* [[VUID-vkCmdClearColorImage-baseMipLevel-01470]]
The slink:VkImageSubresourceRange::pname:baseMipLevel members of the
elements of the pname:pRanges array must: each be less than the
pname:mipLevels specified in slink:VkImageCreateInfo when pname:image
was created
* [[VUID-vkCmdClearColorImage-levelCount-01471]]
If the slink:VkImageSubresourceRange::pname:levelCount member of any
element of the pname:pRanges array is not ename:VK_REMAINING_MIP_LEVELS,
it must: be non-zero and
[eq]#slink:VkImageSubresourceRange::pname:baseMipLevel {plus}
slink:VkImageSubresourceRange::pname:levelCount# for that element of the
pname:pRanges array must: be less than or equal to the pname:mipLevels
specified in slink:VkImageCreateInfo when pname:image was created
* [[VUID-vkCmdClearColorImage-baseArrayLayer-01472]]
The slink:VkImageSubresourceRange::pname:baseArrayLayer members of the
elements of the pname:pRanges array must: each be less than the
pname:arrayLayers specified in slink:VkImageCreateInfo when pname:image
was created
* [[VUID-vkCmdClearColorImage-layerCount-01473]]
If the slink:VkImageSubresourceRange::pname:layerCount member of any
element of the pname:pRanges array is not
ename:VK_REMAINING_ARRAY_LAYERS, it must: be non-zero and
[eq]#slink:VkImageSubresourceRange::pname:baseArrayLayer {plus}
slink:VkImageSubresourceRange::pname:layerCount# for that element of the
pname:pRanges array must: be less than or equal to the pname:arrayLayers
specified in slink:VkImageCreateInfo when pname:image was created
* [[VUID-vkCmdClearColorImage-image-00007]]
pname:image must: not have a compressed or depth/stencil format
****
Expand Down Expand Up @@ -143,9 +166,32 @@ endif::VK_KHR_maintenance1[]
pname:imageLayout must: be either of
ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or
ename:VK_IMAGE_LAYOUT_GENERAL
* [[VUID-vkCmdClearDepthStencilImage-pRanges-00013]]
The image range of any given element of pname:pRanges must: be an image
subresource range that is contained within pname:image
* [[VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474]]
The slink:VkImageSubresourceRange::pname:baseMipLevel members of the
elements of the pname:pRanges array must: each be less than the
pname:mipLevels specified in slink:VkImageCreateInfo when pname:image
was created
* [[VUID-vkCmdClearDepthStencilImage-levelCount-01475]]
If the slink:VkImageSubresourceRange::pname:levelCount member of any
element of the pname:pRanges array is not ename:VK_REMAINING_MIP_LEVELS,
it must: be non-zero and
[eq]#slink:VkImageSubresourceRange::pname:baseMipLevel {plus}
slink:VkImageSubresourceRange::pname:levelCount# for that element of the
pname:pRanges array must: be less than or equal to the pname:mipLevels
specified in slink:VkImageCreateInfo when pname:image was created
* [[VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476]]
The slink:VkImageSubresourceRange::pname:baseArrayLayer members of the
elements of the pname:pRanges array must: each be less than the
pname:arrayLayers specified in slink:VkImageCreateInfo when pname:image
was created
* [[VUID-vkCmdClearDepthStencilImage-layerCount-01477]]
If the slink:VkImageSubresourceRange::pname:layerCount member of any
element of the pname:pRanges array is not
ename:VK_REMAINING_ARRAY_LAYERS, it must: be non-zero and
[eq]#slink:VkImageSubresourceRange::pname:baseArrayLayer {plus}
slink:VkImageSubresourceRange::pname:layerCount# for that element of the
pname:pRanges array must: be less than or equal to the pname:arrayLayers
specified in slink:VkImageCreateInfo when pname:image was created
* [[VUID-vkCmdClearDepthStencilImage-image-00014]]
pname:image must: have a depth/stencil format
****
Expand Down
6 changes: 6 additions & 0 deletions doc/specs/vulkan/chapters/fundamentals.txt
Expand Up @@ -297,6 +297,12 @@ passed into:
* sname:VkShaderModule
* sname:VkPipelineCache

A sname:VkRenderPass object passed as a parameter to create another object
is not further accessed by that object after the duration of the command it
is passed into.
A sname:VkRenderPass used in a command buffer follows the rules described
below.

A sname:VkPipelineLayout object must: not be destroyed while any command
buffer that uses it is in the recording state.

Expand Down
4 changes: 2 additions & 2 deletions doc/specs/vulkan/chapters/interfaces.txt
Expand Up @@ -380,8 +380,8 @@ endif::VK_KHR_16bit_storage[]
Composites of these types are also permitted.
If the color attachment has a signed or unsigned normalized fixed-point
format, color values are assumed to be floating-point and are converted to
fixed-point as described in <<fundamentals-fixedfpconv>>; otherwise no type
conversion is applied.
fixed-point as described in <<fundamentals-fpfixedfpconv>>; otherwise no
type conversion is applied.
If the type of the values written by the fragment shader do not match the
format of the corresponding color attachment, the result is undefined for
those components.
Expand Down
13 changes: 12 additions & 1 deletion doc/specs/vulkan/chapters/renderpass.txt
Expand Up @@ -1055,6 +1055,15 @@ The implementation then must: execute layout transitions between subpasses
in order to guarantee that the images are in the layouts required by each
subpass, and in the final layout at the end of the render pass.

Automatic layout transitions apply to the entire image subresource attached
to the framebuffer.
ifdef::VK_KHR_maintenance1[]
If the attachment view is a 2D or 2D array view of a 3D image, even if the
attachment view only refers to a subset of the slices of the selected mip
level of the 3D image, automatic layout transitions apply to the entire
subresource referenced which is the entire mip level in this case.
endif::VK_KHR_maintenance1[]

Automatic layout transitions away from the layout used in a subpass
happen-after the availability operations for all dependencies with that
subpass as the pname:srcSubpass.
Expand Down Expand Up @@ -1669,7 +1678,9 @@ The conditions leading to an optimal pname:renderArea are:
slink:VkRenderPassBeginInfo.

Subpass dependencies are not affected by the render area, and apply to the
entire image subresources attached to the framebuffer.
entire image subresources attached to the framebuffer as specified in the
description of <<renderpass-layout-transitions,automatic layout
transitions>>.
Similarly, pipeline barriers are valid even if their effect extends outside
the render area.

Expand Down

0 comments on commit 712755f

Please sign in to comment.