Skip to content

Commit a48d843

Browse files
committed
Change log for November 30, 2020 Vulkan 1.2.163 spec update:
* Update release number to 163 for this update. Github Issues: * Add XML mapping between VK_OBJECT_TYPE_* names and object type names (public issue 1379). * Remove *_READ_BIT from .srcAccessMask in code samples (public issue 1389). * Fix example code for slink:VkPushConstantRange to take elink:VkShaderStageFlags, not elink:VkPipelineStageFlags (public pull request 1393). * Add missing :refpage: attribute to slink:VkBlitImageInfo2KHR (public issue 1407). * Remove extraneous newline from texel block size table (public issue 1409). Internal Issues: * Update style guide to require `optional="true"` be set on pname:pNext structure members (internal issue 2428). * Sort conditionals in ifdef:: output of spirvcapgenerator for stability (internal issue 2430). * Fix slink:VkGraphicsPipelineShaderGroupsCreateInfoNV VU 02886 (internal merge request 4225).
1 parent 850c4d5 commit a48d843

10 files changed

+143
-67
lines changed

ChangeLog.txt

+30
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,36 @@ on Github are done as single large patches at the release point, collecting
99
together the resolution of many Khronos internal issues, along with any
1010
public pull requests that have been accepted.
1111

12+
-----------------------------------------------------
13+
14+
Change log for November 30, 2020 Vulkan 1.2.163 spec update:
15+
16+
* Update release number to 163 for this update.
17+
18+
Github Issues:
19+
20+
* Add XML mapping between VK_OBJECT_TYPE_* names and object type names
21+
(public issue 1379).
22+
* Remove *_READ_BIT from .srcAccessMask in code samples (public issue
23+
1389).
24+
* Fix example code for slink:VkPushConstantRange to take
25+
elink:VkShaderStageFlags, not elink:VkPipelineStageFlags (public pull
26+
request 1393).
27+
* Add missing :refpage: attribute to slink:VkBlitImageInfo2KHR (public
28+
issue 1407).
29+
* Remove extraneous newline from texel block size table (public issue
30+
1409).
31+
32+
Internal Issues:
33+
34+
* Update style guide to require `optional="true"` be set on pname:pNext
35+
structure members (internal issue 2428).
36+
* Sort conditionals in ifdef:: output of spirvcapgenerator for stability
37+
(internal issue 2430).
38+
* Fix slink:VkGraphicsPipelineShaderGroupsCreateInfoNV VU 02886
39+
(internal merge request 4225).
40+
41+
1242
-----------------------------------------------------
1343

1444
Change log for November 23, 2020 Vulkan 1.2.162 spec update:

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ VERBOSE =
109109
# ADOCOPTS options for asciidoc->HTML5 output
110110

111111
NOTEOPTS = -a editing-notes -a implementation-guide
112-
PATCHVERSION = 162
112+
PATCHVERSION = 163
113113
ifneq (,$(findstring VK_VERSION_1_2,$(VERSIONS)))
114114
SPECREVISION = 1.2.$(PATCHVERSION)
115115
else

chapters/VK_EXT_private_data.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,8 @@ slink:VkSwapchainKHR.
170170
.Valid Usage
171171
****
172172
* [[VUID-vkGetPrivateDataEXT-objectType-04018]]
173-
pname:objectType must: be slink:VkDevice or an object type whose parent
174-
is slink:VkDevice
173+
pname:objectType must: be ename:VK_OBJECT_TYPE_DEVICE, or an object type
174+
whose parent is slink:VkDevice
175175
****
176176

177177
include::{generated}/validity/protos/vkGetPrivateDataEXT.txt[]

chapters/copies.txt

+2
Original file line numberDiff line numberDiff line change
@@ -1440,6 +1440,8 @@ include::{generated}/validity/protos/vkCmdBlitImage2KHR.txt[]
14401440

14411441
[open,refpage='VkBlitImageInfo2KHR',desc='Structure specifying parameters of blit image command',type='structs']
14421442
--
1443+
:refpage: VkBlitImageInfo2KHR
1444+
14431445
The sname:VkBlitImageInfo2KHR structure is defined as:
14441446

14451447
include::{generated}/api/structs/VkBlitImageInfo2KHR.txt[]

chapters/pipelines.txt

+3-4
Original file line numberDiff line numberDiff line change
@@ -1991,10 +1991,9 @@ ifdef::VK_NV_mesh_shader[]
19911991
pname:pGroups
19921992
endif::VK_NV_mesh_shader[]
19931993
* [[VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886]]
1994-
Each element of the pname:pPipelines member of pname:libraries must:
1995-
have been created with identical state to the pipeline currently created
1996-
except the state that can be overriden by
1997-
slink:VkGraphicsShaderGroupCreateInfoNV
1994+
Each element of pname:pPipelines must: have been created with identical
1995+
state to the pipeline currently created except the state that can be
1996+
overridden by slink:VkGraphicsShaderGroupCreateInfoNV
19981997
* [[VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887]]
19991998
The <<features-deviceGeneratedCommands,
20001999
sname:VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::pname:deviceGeneratedCommands>>

chapters/renderpass.txt

+5-8
Original file line numberDiff line numberDiff line change
@@ -1611,10 +1611,7 @@ VkSubpassDependency implicitDependency = {
16111611
.dstSubpass = VK_SUBPASS_EXTERNAL;
16121612
.srcStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
16131613
.dstStageMask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
1614-
.srcAccessMask = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT |
1615-
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
1616-
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
1617-
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
1614+
.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
16181615
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
16191616
.dstAccessMask = 0;
16201617
.dependencyFlags = 0;
@@ -1718,19 +1715,19 @@ The subpass dependency operates as if defined with the following parameters:
17181715
---------------------------------------------------
17191716
// Used for input attachments
17201717
VkPipelineStageFlags inputAttachmentStages = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
1721-
VkAccessFlags inputAttachmentAccess = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT;
1718+
VkAccessFlags inputAttachmentDstAccess = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT;
17221719

17231720
// Used for depth/stencil attachments
17241721
VkPipelineStageFlags depthStencilAttachmentStages = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;
1725-
VkAccessFlags depthStencilAttachmentAccess = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
1722+
VkAccessFlags depthStencilAttachmentDstAccess = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
17261723

17271724
VkSubpassDependency implicitDependency = {
17281725
.srcSubpass = firstSubpass;
17291726
.dstSubpass = secondSubpass;
17301727
.srcStageMask = inputAttachmentStages | depthStencilAttachmentStages;
17311728
.dstStageMask = inputAttachmentStages | depthStencilAttachmentStages;
1732-
.srcAccessMask = inputAttachmentAccess | depthStencilAttachmentAccess;
1733-
.dstAccessMask = inputAttachmentAccess | depthStencilAttachmentAccess;
1729+
.srcAccessMask = 0;
1730+
.dstAccessMask = inputAttachmentDstAccess | depthStencilAttachmentDstAccess;
17341731
.dependencyFlags = 0;
17351732
};
17361733
---------------------------------------------------

registry.txt

+11
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,9 @@ information is used to generate more complicated C types.
462462
* attr:allowduplicate - only applicable if attr:category is `"struct"`.
463463
If `"true"`, then structures whose `pNext` chains include this structure
464464
may include more than one instance of it.
465+
* attr:objtypeenum - only applicable at present if attr:category is
466+
`"handle"`. Specifies the name of a `VkObjectType` enumerant which
467+
corresponds to this type. The enumerant must be defined.
465468

466469
== Contents of tag:type tags
467470

@@ -524,6 +527,9 @@ member.
524527
separated by commas - one for each pointer indirection.
525528
If not present, the value is assumed to be `"false"` (the member must
526529
not be omitted).
530+
Structure members with name `pNext` must always be specified with
531+
`optional="true"`, since there is no requirement that any member of a
532+
`pNext` chain have a following member in the chain.
527533
* attr:selector - optional.
528534
If the member is a union, attr:selector identifies another member of the
529535
struct that is used to select which of that union's members are valid.
@@ -2230,6 +2236,11 @@ files and Python scripts are logged in Github history.
22302236
[[changelog]]
22312237
= Change Log
22322238

2239+
* 2020-11-23 - Add `objtypeenum` attribute to <<tag:type, tag:type>> tags
2240+
to link the object name to the corresponding `VK_OBJECT_TYPE_*`
2241+
enumerant, if any (internal issue 2393).
2242+
* 2020-11-22 - Add requirement that `pNext` members have the
2243+
`optional="true"` attribute set (internal issue 2428).
22332244
* 2020-10-14 - Remove advice to set the attr:noautovalidity attribute on
22342245
the `pNext` member of extending structures in the <<tag:type, tag:type
22352246
tag>>, since the validity generator scripts now take care of this

scripts/spirvcapgenerator.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ def getCondition(self, enable):
4949
return ''
5050

5151
def getConditions(self, enables):
52-
"""Return a set of strings which are conditions under which one or
53-
more of the enables is supported.
52+
"""Return a sorted list of strings which are conditions under which
53+
one or more of the enables is supported.
5454
5555
- enables - ElementTree corresponding to a <spirvcapability> or
5656
<spirvextension> XML tag"""
@@ -60,7 +60,7 @@ def getConditions(self, enables):
6060
condition = self.getCondition(enable)
6161
if condition != None:
6262
conditions.add(condition)
63-
return conditions
63+
return sorted(conditions)
6464

6565
def endFile(self):
6666
captable = []

xml/registry.rnc

+10-5
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,18 @@ Types = element types {
7272
# may contain arbitrary C code.
7373
# name - name of this type, if not present in the <name> tag
7474
# api - matches a <feature> api attribute, if present
75+
# alias - name of a type this type aliases
7576
# requires - name of another type definition required by this one
7677
# bitvalues - for a *Flags type, name of an enum definition that
7778
# defines the valid values for parameters of that type
79+
# name - name of the type being defined
7880
# category - if present, 'enum' indicates a matching <enums>
7981
# block to generate an enumerated type for, and 'struct'
8082
# causes special interpretation of the contents of the type
8183
# tag including ... TBD ...
8284
# Other allowed values are 'include', 'define', 'handle' and 'bitmask',
8385
# which don't change syntactic interpretation but allow organization in
8486
# the generated header.
85-
# comment - unused
8687
# parent - only applicable if category is 'handle'. Notes another type with
8788
# the 'handle' category that acts as a parent object for this type.
8889
# returnedonly - only applicable if category is 'struct'. Notes that this
@@ -96,6 +97,9 @@ Types = element types {
9697
# to pNext chain validity for the parent structures it extends.
9798
# allowduplicate - only applicable if category is 'struct'. pNext can include
9899
# multiple structures of this type.
100+
# objtypeenum - name of VK_OBJECT_TYPE_* API enumerant which corresponds
101+
# to this type. Currently only specified for category="handle" types.
102+
# comment - descriptive text with no semantic meaning
99103
# For types without a category, contents include
100104
# <apientry /> - substitutes for an APIENTRY-style macro on output
101105
# <name> - contains name of the type being defined
@@ -139,6 +143,7 @@ Type = element type {
139143
attribute returnedonly { text } ? ,
140144
attribute structextends { text } ? ,
141145
attribute allowduplicate { text } ? ,
146+
attribute objtypeenum { text } ? ,
142147
Comment ? ,
143148
(
144149
(
@@ -183,7 +188,7 @@ Type = element type {
183188
# vendor - owner of the numeric range
184189
# type - 'enum' or 'bitmask', if present
185190
# bitwidth - bit width of the enum value type.
186-
# comment - unused
191+
# comment - descriptive text with no semantic meaning
187192
Enums = element enums {
188193
attribute name { text } ? ,
189194
attribute type { text } ? ,
@@ -224,7 +229,7 @@ Enums = element enums {
224229
# type - 'u' (unsigned), 'ull' (uint64), or integer if not present
225230
# name - enumerant name
226231
# alias - another enumerant this is semantically identical to
227-
# comment - unused
232+
# comment - descriptive text with no semantic meaning
228233
Enum = element enum {
229234
(
230235
(
@@ -257,7 +262,7 @@ Enum = element enum {
257262
# <unused> defines a range of enumerants not currently being used
258263
# start, end - beginning and end of an unused numeric range
259264
# vendor - unused
260-
# comment - unused
265+
# comment - descriptive text with no semantic meaning
261266
Unused = element unused {
262267
attribute start { Integer } ,
263268
attribute end { Integer } ? ,
@@ -365,7 +370,7 @@ Command = element command {
365370
# <require> / <remove> contains features to require or remove in
366371
# this version
367372
# profile - only require/remove when generated profile matches
368-
# comment - unused
373+
# comment - descriptive text with no semantic meaning
369374
Feature = element feature {
370375
attribute api { text } ,
371376
Name ,

0 commit comments

Comments
 (0)