Change log for October 21, 2018 Vulkan 1.1.89 spec update:

* Update release number to 89.

Public Issues:

  * Clarify the reference to <<features-limits-mipmapPrecisionBits, mipmap
    precision bits>> in the <<textures-image-level-selection, Image Level(s)
    Selection>> section (public issue 660).
  * Update <<debugging-object-types,VkObjectType and Vulkan Handle
    Relationship>> table with missing types (public pull request 820).
  * Miscellaneous minor markup cleanup (public pull request 822).
  * Fix copy/paste bugs in the description of how implicit
    availability/visibility operations for atomics/barriers are ordered in
    the <<memory-model-availability-visibility-semantics, Availability and
    Visibility Semantics>> section (public issue 823).
  * Add missing shading_rate_image bit from mesh pipeline list in the
    <<synchronization-pipeline-stages-types>> list (public issue 824).

Internal Issues:

  * Clarify that only statically used members of a push constant block need
    to be in the push constant range, and stop referring to block members as
    "`variables`" in the <<interfaces-resources-pushconst, Push Constant
    Interface>> section. This is related to
    https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/340
    (internal issue 1401).
  * Clarify interaction between flink:vkCmdSetDeviceMask and render pass
    control commands in the slink:VkDeviceGroupRenderPassBeginInfo section
    (internal issue 1416).
  * Miscellaneous minor markup cleanup.
  * Remove types defined by `"disabled"` extensions from
    validextensionstructs in the XML processing scripts, so downstream code
    generators don't emit them.
This commit is contained in:
Jon Leech 2018-10-21 06:08:41 -07:00
parent 93d65eb125
commit 8d6a7b23a7
16 changed files with 110 additions and 43 deletions

View File

@ -8,6 +8,43 @@ public pull requests that have been accepted.
-----------------------------------------------------
Change log for October 21, 2018 Vulkan 1.1.89 spec update:
* Update release number to 89.
Public Issues:
* Clarify the reference to <<features-limits-mipmapPrecisionBits, mipmap
precision bits>> in the <<textures-image-level-selection, Image Level(s)
Selection>> section (public issue 660).
* Update <<debugging-object-types,VkObjectType and Vulkan Handle
Relationship>> table with missing types (public pull request 820).
* Miscellaneous minor markup cleanup (public pull request 822).
* Fix copy/paste bugs in the description of how implicit
availability/visibility operations for atomics/barriers are ordered in
the <<memory-model-availability-visibility-semantics, Availability and
Visibility Semantics>> section (public issue 823).
* Add missing shading_rate_image bit from mesh pipeline list in the
<<synchronization-pipeline-stages-types>> list (public issue 824).
Internal Issues:
* Clarify that only statically used members of a push constant block need
to be in the push constant range, and stop referring to block members as
"`variables`" in the <<interfaces-resources-pushconst, Push Constant
Interface>> section. This is related to
https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/340
(internal issue 1401).
* Clarify interaction between flink:vkCmdSetDeviceMask and render pass
control commands in the slink:VkDeviceGroupRenderPassBeginInfo section
(internal issue 1416).
* Miscellaneous minor markup cleanup.
* Remove types defined by `"disabled"` extensions from
validextensionstructs in the XML processing scripts, so downstream code
generators don't emit them.
-----------------------------------------------------
Change log for October 13, 2018 Vulkan 1.1.88 spec update:
* Update release number to 88.

View File

@ -112,7 +112,7 @@ VERBOSE =
# EXTRAATTRIBS sets additional attributes, if passed to make
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 88
PATCHVERSION = 89
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else

View File

@ -128,7 +128,7 @@ multiview enabled.
*RESOLVED*: There is a new query type
ename:VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT.
 query pool created with this type will capture 2 integers -
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.
The vertex stream output queried is zero by default, but can be specified

View File

@ -124,8 +124,8 @@ aligned regions and may require updates to four separate footprint image
texels.
In this case, the implementation will return an anchor coordinate pointing
at the lower right footprint image texel and an offset will identify how
many "`columns`" and "`rows`" of the returned 8x8 mask correspond to footprint
texels to the left and above the anchor texel.
many "`columns`" and "`rows`" of the returned 8x8 mask correspond to
footprint texels to the left and above the anchor texel.
If the anchor is (2,3), the 64 bits of the returned mask are arranged
spatially as follows, where each 4x4 block is assigned a bit number that
matches its bit number in the footprint image texels:

View File

@ -464,8 +464,8 @@ visibility>> operations may: be required for writes to be
NOTE: Happens-before is not transitive, but each of program-order and
inter-thread-happens-before<SC> are transitive.
These can be thought of as covering the "`single-threaded`" case and the
"`multi-threaded`" case, and it's not necessary (and not valid) to form chains
between the two.
"`multi-threaded`" case, and it's not necessary (and not valid) to form
chains between the two.
[[memory-model-availability-visibility]]
== Availability and Visibility
@ -596,7 +596,8 @@ includes agent A and all references in the storage classes in that
instruction's storage class semantics, and all memory locations, and whose
destination scope is a set of memory domains selected as specified below.
The implicit availability operation is program-ordered between the barrier
or atomic and all other operations program-ordered before the write.
or atomic and all other operations program-ordered before the barrier or
atomic.
A memory barrier or atomic operation via agent A that includes MakeVisible
in its semantics performs a visibility operation whose source scope is a set
@ -604,7 +605,7 @@ of memory domains selected as specified below, and whose destination scope
includes agent A and all references in the storage classes in that
instruction's storage class semantics, and all memory locations.
The implicit visibility operation is program-ordered between the barrier or
atomic and all other operations program-ordered after the write.
atomic and all other operations program-ordered after the barrier or atomic.
The memory domains are selected based on the memory scope of the instruction
as follows:

View File

@ -1578,7 +1578,13 @@ endif::VK_KHR_device_group[]
* pname:deviceMask is the new value of the current device mask.
pname:deviceMask is used to filter out subsequent commands from executing on
all physical devices whose bit indices are not set in the mask.
all physical devices whose bit indices are not set in the mask, except
commands beginning a render pass instance, commands transitioning to the
next subpass in the render pass instance, and commands ending a render pass
instance, which always execute on the set of physical devices whose bit
indices are included in the pname:deviceMask member of the instance of the
slink:VkDeviceGroupRenderPassBeginInfoKHR structure passed to the command
beginning the corresponding render pass instance.
.Valid Usage
****

View File

@ -127,9 +127,8 @@ lines are the adjacent vertices that are accessible in a geometry shader.
[NOTE]
.Note
====
The terminology "`vertex [eq]#i#`" means "`the vertex with
index [eq]#i# in the ordered list of vertices defining this
primitive`".
The terminology "`vertex [eq]#i#`" means "`the vertex with index [eq]#i# in
the ordered list of vertices defining this primitive`".
====
[NOTE]

View File

@ -2299,15 +2299,6 @@ endif::VK_EXT_descriptor_indexing[]
get snapped to when determining the contribution from each mip level to
the mip filtered results.
[eq]#2^pname:mipmapPrecisionBits^# is the actual number of divisions.
+
[NOTE]
.Note
====
For example, if this value is 2 bits then when linearly filtering between
two levels, each level could: contribute: 0%, 33%, 66%, or 100% (this is
just an example and the amount of contribution should: be covered by
different equations in the spec).
====
* [[features-limits-maxDrawIndexedIndexValue]]
pname:maxDrawIndexedIndexValue is the maximum index value that can: be
used for indexed draw calls when using 32-bit indices.

View File

@ -103,10 +103,10 @@ the subsequent stage if the two variables are declared with the same
code:Location and code:Component decoration and match in type and
decoration, except that <<shaders-interpolation-decorations,interpolation
decorations>> are not required: to match.
ifdef::VK_EXT_transform_feedback
ifdef::VK_EXT_transform_feedback[]
code:XfbBuffer, code:XfbStride, code:Offset, and code:Stream are also not
required to match for the purposes of interface matching.
endif::VK_EXT_transform_feedback
endif::VK_EXT_transform_feedback[]
For the purposes of interface matching, variables declared without a
code:Component decoration are considered to have a code:Component decoration
of zero.
@ -484,17 +484,17 @@ They must: be:
There must: be no more than one push constant block statically used per
shader entry point.
Each variable in a push constant block must: be placed at an code:Offset
such that the entire constant value is entirely contained within the
Each statically used member of a push constant block must: be placed at an
code:Offset such that the entire member is entirely contained within the
slink:VkPushConstantRange for each code:OpEntryPoint that uses it, and the
pname:stageFlags for that range must: specify the appropriate
elink:VkShaderStageFlagBits for that stage.
The code:Offset decoration for any variable in a push constant block must:
not cause the space required for that variable to extend outside the range
The code:Offset decoration for any member of a push constant block must: not
cause the space required for that member to extend outside the range
[eq]#[0, pname:maxPushConstantsSize)#.
Any variable in a push constant block that is declared as an array must:
only be accessed with _dynamically uniform_ indices.
Any member of a push constant block that is declared as an array must: only
be accessed with _dynamically uniform_ indices.
[[interfaces-resources-descset]]

View File

@ -2670,9 +2670,11 @@ The pname:deviceMask serves several purposes.
It is an upper bound on the set of physical devices that can: be used during
the render pass instance, and the initial device mask when the render pass
instance begins.
Render pass attachment load, store, and resolve operations only apply to
physical devices included in the device mask.
Subpass dependencies only apply to the physical devices in the device mask.
In addition, commands transitioning to the next subpass in the render pass
instance and commands ending the render pass instance, and, accordingly
render pass attachment load, store, and resolve operations and subpass
dependencies corresponding to the render pass instance, are executed on the
physical devices included in the device mask provided here.
If pname:deviceRenderAreaCount is not zero, then the elements of
pname:pDeviceRenderAreas override the value of

View File

@ -608,6 +608,9 @@ order:
* ename:VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT
* ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV
* ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV
ifdef::VK_NV_shading_rate_image[]
* ename:VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV
endif::VK_NV_shading_rate_image[]
* ename:VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
* ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT
* ename:VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT

View File

@ -1934,8 +1934,9 @@ d_{lo} & = min( d_{hi} + 1, q ) \\
\end{aligned}
++++++++++++++++++++++++
[eq]#{delta}# is the fractional value used for <<textures-texel-filtering,
linear filtering>> between levels.
[eq]#{delta}# is the fractional value, quantized to the number of
<<features-limits-mipmapPrecisionBits,mipmap precision bits>>, used for
<<textures-texel-filtering, linear filtering>> between levels.
[[textures-normalized-to-unnormalized]]

View File

@ -43,7 +43,7 @@ extern "C" {
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
// Version of this file
#define VK_HEADER_VERSION 88
#define VK_HEADER_VERSION 89
#define VK_NULL_HANDLE 0

View File

@ -2,8 +2,12 @@
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
// The mysterious :regtitle: attribute is explained in
// http://discuss.asciidoctor.org/How-to-add-markup-to-author-information-in-document-title-td6488.html
= Vulkan^®^ {revnumber} - A Specification {apititle}
The Khronos^®^ Vulkan Working Group
:regtitle: pass:q,r[^®^]
The Khronos{regtitle} Vulkan Working Group
:data-uri:
:icons: font
:toc2:

View File

@ -502,12 +502,17 @@ class Registry:
# Construct a "validextensionstructs" list for parent structures
# based on "structextends" tags in child structures
disabled_types = []
for disabled_ext in self.reg.findall('extensions/extension[@supported="disabled"]'):
for type in disabled_ext.findall("*/type"):
disabled_types.append(type.get('name'))
for type in self.reg.findall('types/type'):
parentStructs = type.get('structextends')
if (parentStructs != None):
for parent in parentStructs.split(','):
# self.gen.logMsg('diag', type.get('name'), 'extends', parent)
self.validextensionstructs[parent].append(type.get('name'))
if type.get('name') not in disabled_types:
parentStructs = type.get('structextends')
if (parentStructs != None):
for parent in parentStructs.split(','):
# self.gen.logMsg('diag', type.get('name'), 'extends', parent)
self.validextensionstructs[parent].append(type.get('name'))
# Sort the lists so they don't depend on the XML order
for parent in self.validextensionstructs:
self.validextensionstructs[parent].sort()

View File

@ -150,7 +150,7 @@ server.
<type category="define">// Vulkan 1.1 version number
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 88</type>
#define <name>VK_HEADER_VERSION</name> 89</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -6931,7 +6931,7 @@ server.
<param optional="true">const <type>VkAllocationCallbacks</type>* <name>pAllocator</name></param>
<param len="createInfoCount"><type>VkPipeline</type>* <name>pPipelines</name></param>
</command>
<command>
<command successcodes="VK_SUCCESS">
<proto><type>VkResult</type> <name>vkGetImageDrmFormatModifierPropertiesEXT</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkImage</type> <name>image</name></param>
@ -10076,5 +10076,23 @@ server.
<enum value="&quot;VK_KHR_extension_240&quot;" name="VK_KHR_EXTENSION_240_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_NV_extension_241" number="241" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="disabled">
<require>
<enum value="0" name="VK_NV_EXTENSION_241_SPEC_VERSION"/>
<enum value="&quot;VK_NV_extension_241&quot;" name="VK_NV_EXTENSION_241_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_NV_extension_242" number="242" author="NVIDIA" contact="Nuno Subtil @nsubtil" supported="disabled">
<require>
<enum value="0" name="VK_NV_EXTENSION_242_SPEC_VERSION"/>
<enum value="&quot;VK_NV_extension_242&quot;" name="VK_NV_EXTENSION_242_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_INTEL_extension_243" number="243" author="INTEL" contact="Slawek Grajewski @sgrajewski" supported="disabled">
<require>
<enum value="0" name="VK_INTEL_EXTENSION_243_SPEC_VERSION"/>
<enum value="&quot;VK_INTEL_extension_243&quot;" name="VK_INTEL_EXTENSION_243_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>