Skip to content

Commit

Permalink
Change log for October 21, 2019 Vulkan 1.1.126 spec update:
Browse files Browse the repository at this point in the history
  * Update release number to 126

Github Issues:

  * Update the elink:VkAccessFlagBits etext:VK_ACCESS_MEMORY_* flags
    definition to make clear that ename:VK_ACCESS_MEMORY_READ_BIT and
    ename:VK_ACCESS_MEMORY_WRITE_BIT are meant to be equivalent to setting
    all applicable etext:READ and etext:WRITE access flags, and update the
    <<synchronization-access-types-supported, supported access types>> table
    accordingly (public pull request 1014).
  * Remove misleading NOTE in the <<synchronization-dependencies-chains>>
    section (public pull request 1048).
  * Clarify the memory mapping NOTE about invalidation described for
    flink:vkInvalidateMappedMemoryRanges (public pull request 1049).
  * Fix label for flink:vkCmdWaitEvents VUID 02803 (public pull request
    1056).
  * Styleguide fixes to several NOTES in the <<synchronization>> chapter
    (public pull request 1057).
  * Markup fix to <<features-features-timelineSemaphore>> section (public
    pull request 1058).
  * Convert some external links to `https` protocol (public pull request
    1064).
  * Remove unsupported nested links inside table captions (public pull
    request 1067 + followon tweak to make 'allchecks' target pass).

Internal Issues:

  * Restrict the SPIR-V code:Invariant decoration to only be used with
    code:Output variables in the <<spirvenv-module-validation, Validation
    Rules within a Module>> section (internal issue 1832).
  * Clarify that the <<features-independentResolve, independentResolve>>
    feature implies support for the <<features-independentResolveNone,
    independentResolveNone>> feature (internal issue 1848).
  * Clarify self-contradictory language for slink:VkSubpassDescription to
    say that resolves only happen within the render area (internal issue
    1850).
  * Add valid usage statements for slink:VkMemoryAllocateInfo and
    corresponding language to elink:VkExternalMemoryFeatureFlagBitsKHR to
    restrict implementations and applications from using both an external
    host memory allocation and dedicated allocation (internal merge request
    3375).
  • Loading branch information
oddhack committed Oct 21, 2019
1 parent 24d03bf commit 90add81
Show file tree
Hide file tree
Showing 14 changed files with 107 additions and 19 deletions.
46 changes: 46 additions & 0 deletions ChangeLog.txt
Expand Up @@ -8,6 +8,52 @@ public pull requests that have been accepted.

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

Change log for October 21, 2019 Vulkan 1.1.126 spec update:

* Update release number to 126

Github Issues:

* Update the elink:VkAccessFlagBits etext:VK_ACCESS_MEMORY_* flags
definition to make clear that ename:VK_ACCESS_MEMORY_READ_BIT and
ename:VK_ACCESS_MEMORY_WRITE_BIT are meant to be equivalent to setting
all applicable etext:READ and etext:WRITE access flags, and update the
<<synchronization-access-types-supported, supported access types>> table
accordingly (public pull request 1014).
* Remove misleading NOTE in the <<synchronization-dependencies-chains>>
section (public pull request 1048).
* Clarify the memory mapping NOTE about invalidation described for
flink:vkInvalidateMappedMemoryRanges (public pull request 1049).
* Fix label for flink:vkCmdWaitEvents VUID 02803 (public pull request
1056).
* Styleguide fixes to several NOTES in the <<synchronization>> chapter
(public pull request 1057).
* Markup fix to <<features-features-timelineSemaphore>> section (public
pull request 1058).
* Convert some external links to `https` protocol (public pull request
1064).
* Remove unsupported nested links inside table captions (public pull
request 1067 + followon tweak to make 'allchecks' target pass).

Internal Issues:

* Restrict the SPIR-V code:Invariant decoration to only be used with
code:Output variables in the <<spirvenv-module-validation, Validation
Rules within a Module>> section (internal issue 1832).
* Clarify that the <<features-independentResolve, independentResolve>>
feature implies support for the <<features-independentResolveNone,
independentResolveNone>> feature (internal issue 1848).
* Clarify self-contradictory language for slink:VkSubpassDescription to
say that resolves only happen within the render area (internal issue
1850).
* Add valid usage statements for slink:VkMemoryAllocateInfo and
corresponding language to elink:VkExternalMemoryFeatureFlagBitsKHR to
restrict implementations and applications from using both an external
host memory allocation and dedicated allocation (internal merge request
3375).

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

Change log for October 13, 2019 Vulkan 1.1.125 spec update:

* Update release number to 125.
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -119,7 +119,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 125
PATCHVERSION = 126
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else
Expand Down
5 changes: 5 additions & 0 deletions appendices/spirvenv.txt
Expand Up @@ -740,6 +740,11 @@ endif::VK_VERSION_1_1,VK_KHR_16bit_storage[]
constraints on storage class, type, and descriptor type described in
<<interfaces-resources-setandbinding,DescriptorSet and Binding
Assignment>>
** Variables decorated with code:Invariant and variables with structure
types that have any members decorated with code:Invariant must: be in
the code:Output or code:Input storage class.
code:Invariant used on an code:Input storage class variable or
structure member has no effect.
* code:OpTypeRuntimeArray must: only be used for:
** the last member of an code:OpTypeStruct
ifdef::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
Expand Down
7 changes: 7 additions & 0 deletions chapters/capabilities.txt
Expand Up @@ -633,6 +633,13 @@ ename:VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT for buffers with
external handle type
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID.
endif::VK_ANDROID_external_memory_android_hardware_buffer[]
ifdef::VK_EXT_external_memory_host[]
Implementations must: not report
ename:VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT for images or buffers
with external handle type
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, or
ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT.
endif::VK_EXT_external_memory_host[]

--

Expand Down
6 changes: 5 additions & 1 deletion chapters/commonvalidity/draw_renderpass_validation.txt
@@ -1,2 +1,6 @@
* Every input attachment used by the current subpass must: be bound to the
// Common Valid Usage
// Not clear what these are common to, they're not included anywhere?
* [[VUID-{refpage}-None-02807]]
Every input attachment used by the current subpass must: be bound to the
pipeline via a descriptor set
// Common Valid Usage
5 changes: 4 additions & 1 deletion chapters/commonvalidity/query_begin_common.txt
@@ -1,10 +1,12 @@
// Common Valid Usage
// Common to vkCmdBeginQuery* commands
* [[VUID-{refpage}-queryPool-01922]]
pname:queryPool must: have been created with a pname:queryType that
differs from that of any queries that are
<<queries-operation-active,active>> within pname:commandBuffer
* [[VUID-{refpage}-None-00807]]
All queries used by the command must: be unavailable
* [[VUID-{refpage}-queryType-2804]]
* [[VUID-{refpage}-queryType-02804]]
The pname:queryType used to create pname:queryPool must: not be
ename:VK_QUERY_TYPE_TIMESTAMP
* [[VUID-{refpage}-queryType-00800]]
Expand Down Expand Up @@ -40,3 +42,4 @@ ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
number of bits set in the current subpass's view mask must: be less than
or equal to the number of queries in pname:queryPool
endif::VK_VERSION_1_1,VK_KHR_multiview[]
// Common Valid Usage
8 changes: 4 additions & 4 deletions chapters/formats.txt
Expand Up @@ -2953,7 +2953,7 @@ s| Format
<<<

[[formats-mandatory-features-depth-stencil]]
.Mandatory format support: depth/stencil with etext:VkImageType ename:VK_IMAGE_TYPE_2D
.Mandatory format support: depth/stencil with `VkImageType` ename:VK_IMAGE_TYPE_2D
[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"]
|====
13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow}
Expand Down Expand Up @@ -2986,7 +2986,7 @@ ename:VK_FORMAT_D24_UNORM_S8_UINT and ename:VK_FORMAT_D32_SFLOAT_S8_UINT.
<<<

[[formats-mandatory-features-bcn]]
.Mandatory format support: BC compressed formats with etext:VkImageType ename:VK_IMAGE_TYPE_2D and ename:VK_IMAGE_TYPE_3D
.Mandatory format support: BC compressed formats with `VkImageType` ename:VK_IMAGE_TYPE_2D and ename:VK_IMAGE_TYPE_3D
[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"]
|====
13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow}
Expand Down Expand Up @@ -3030,7 +3030,7 @@ one of: this table, <<formats-mandatory-features-etc>>, or
<<<

[[formats-mandatory-features-etc]]
.Mandatory format support: ETC2 and EAC compressed formats with etext:VkImageType ename:VK_IMAGE_TYPE_2D
.Mandatory format support: ETC2 and EAC compressed formats with `VkImageType` ename:VK_IMAGE_TYPE_2D
[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"]
|====
13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow}
Expand Down Expand Up @@ -3068,7 +3068,7 @@ one of: this table, <<formats-mandatory-features-bcn>>, or
<<<

[[formats-mandatory-features-astc]]
.Mandatory format support: ASTC LDR compressed formats with etext:VkImageType ename:VK_IMAGE_TYPE_2D
.Mandatory format support: ASTC LDR compressed formats with `VkImageType` ename:VK_IMAGE_TYPE_2D
[width="100%",cols="12,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1",options="unbreakable"]
|====
13+>| ename:VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT .14+^.^| {downarrow}
Expand Down
5 changes: 4 additions & 1 deletion chapters/limits.txt
Expand Up @@ -2137,7 +2137,10 @@ structure describe the following implementation-dependent limits:
same value.
* [[features-independentResolve]] pname:independentResolve is
ename:VK_TRUE if the implementation supports all combinations of the
supported depth and stencil resolve modes.
supported depth and stencil resolve modes, including setting either
depth or stencil resolve mode to ename:VK_RESOLVE_MODE_NONE_KHR.
An implementation that supports pname:independentResolve must: also
support pname:independentResolveNone.

include::{generated}/validity/structs/VkPhysicalDeviceDepthStencilResolvePropertiesKHR.txt[]
--
Expand Down
15 changes: 15 additions & 0 deletions chapters/memory.txt
Expand Up @@ -1234,6 +1234,21 @@ ifdef::VK_EXT_external_memory_host[]
If the parameters define an import operation and the external handle is
a host pointer, pname:allocationSize must: be an integer multiple of
sname:VkPhysicalDeviceExternalMemoryHostPropertiesEXT::pname:minImportedHostPointerAlignment
ifdef::VK_NV_dedicated_allocation[]
* [[VUID-VkMemoryAllocateInfo-pNext-02805]]
If the parameters define an import operation and the external handle is
a host pointer, the pname:pNext chain must: not contain an instance of
slink:VkDedicatedAllocationMemoryAllocateInfoNV with either its
pname:image or pname:buffer field set to a value other than
dlink:VK_NULL_HANDLE.
endif::VK_NV_dedicated_allocation[]
ifdef::VK_KHR_dedicated_allocation[]
* [[VUID-VkMemoryAllocateInfo-pNext-02806]]
If the parameters define an import operation and the external handle is
a host pointer, the pname:pNext chain must: not contain an instance of
slink:VkMemoryDedicatedAllocateInfo with either its pname:image or
pname:buffer field set to a value other than dlink:VK_NULL_HANDLE.
endif::VK_KHR_dedicated_allocation[]
endif::VK_EXT_external_memory_host[]
ifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
* [[VUID-VkMemoryAllocateInfo-allocationSize-02383]]
Expand Down
7 changes: 4 additions & 3 deletions chapters/renderpass.txt
Expand Up @@ -904,9 +904,10 @@ If pname:pResolveAttachments is not `NULL`, each of its elements corresponds
to a color attachment (the element in pname:pColorAttachments at the same
index), and a multisample resolve operation is defined for each attachment.
At the end of each subpass, multisample resolve operations read the
subpass's color attachments, and resolve the samples for each pixel to the
same pixel location in the corresponding resolve attachments, unless the
resolve attachment index is ename:VK_ATTACHMENT_UNUSED.
subpass's color attachments, and resolve the samples for each pixel within
the render area to the same pixel location in the corresponding resolve
attachments, unless the resolve attachment index is
ename:VK_ATTACHMENT_UNUSED.

ifdef::VK_KHR_depth_stencil_resolve[]
Similarly, if
Expand Down
8 changes: 4 additions & 4 deletions chapters/synchronization.txt
Expand Up @@ -773,11 +773,11 @@ endif::VK_KHR_depth_stencil_resolve[]
Accesses of this type are not performed through a resource, but directly
on memory.
* ename:VK_ACCESS_MEMORY_READ_BIT specifies all read accesses.
It is always valid in any access mask, and is treated as equivalent to setting
all etext:READ access flags that are valid where it is used.
It is always valid in any access mask, and is treated as equivalent to
setting all etext:READ access flags that are valid where it is used.
* ename:VK_ACCESS_MEMORY_WRITE_BIT specifies all write accesses.
It is always valid in any access mask, and is treated as equivalent to setting
all etext:WRITE access flags that are valid where it is used.
It is always valid in any access mask, and is treated as equivalent to
setting all etext:WRITE access flags that are valid where it is used.
ifdef::VK_EXT_conditional_rendering[]
* ename:VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT specifies read access
to a predicate as part of conditional rendering.
Expand Down
8 changes: 6 additions & 2 deletions scripts/reflow.py
Expand Up @@ -475,8 +475,12 @@ def endBlock(self, line, reflow = False, vuBlock = False):
self.blockStack.pop()
self.reflowStack.pop()
self.vuStack.pop()
# Always reset apiName at the end of a block
self.apiName = ''

# Reset apiName at the end of a block if we were in a VU block
# This allows only one VU block inside a refpage block, which is
# consistent with the style guide.
if self.vuStack[-1]:
self.apiName = ''
else:
# Start a block
self.blockStack.append(line)
Expand Down
2 changes: 1 addition & 1 deletion scripts/reflow_count.py
@@ -1,2 +1,2 @@
# The value to start tagging VU statements at, unless overridden by -nextvu
startVUID = 2805
startVUID = 2808
2 changes: 1 addition & 1 deletion xml/vk.xml
Expand Up @@ -154,7 +154,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> 125</type>
#define <name>VK_HEADER_VERSION</name> 126</type>

<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
Expand Down

0 comments on commit 90add81

Please sign in to comment.