diff --git a/ChangeLog.txt b/ChangeLog.txt
index 152d0513..fdc9f809 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1520,3 +1520,41 @@ Internal Issues:
* Tag usages of ``dynamically uniform'' as glossary terms and add a
glossary entry pointing to the SPIR-V Specification's definition of the
term (internal issue 531).
+
+-----------------------------------------------------
+
+Change log for October 25, 2016 Vulkan 1.0.32 spec update:
+
+ * Bump API patch number and header version number to 32 for this update.
+
+Github Issues:
+
+ * Add automatic visibility operations to the presentation engineE when
+ doing a queue present in flink:vkAcquireNextImageKHR. Removed all
+ references to MEMORY_READ that referenced WSI - they no longer make
+ sense (some aspects of public issues 128, 131, 132, 261, and 298).
+ * Document valid non-boolean +externsync+ attribute values for
+ tags in +vk.xml+ (public issue 265).
+ * Add valid usage to slink:VkImageCreateInfo requiring that
+ pname:arrayLayers be 1 for images of type ename:VK_IMAGE_TYPE_3D
+ (public issue 319).
+ * Add missing captions to figures in the <>
+ chapter (public issue 334).
+ * Clarify WSI interaction with exclusive sharing mode (public issue
+ 344).
+ * Added explicit language clarifying the allowed queue usage of
+ resources created with ename:VK_SHARING_MODE_CONCURRENT (public
+ issue 386).
+ * Require that the
+ slink:VkDescriptorSetLayoutCreateInfo::pname:binding members of the
+ pname:pBindings array passed to
+ flink:vkDescriptorSetLayoutCreateInfo all be distinct (public issue
+ 391).
+
+Internal Issues:
+
+ * Remove empty validity blocks from +vk.xml+ and suppressed broken
+ validity statements and added missing statements to explicit
+ validity. Doesn't affect output, other than some statements
+ appearing in another block now (internal issue 513).
+
diff --git a/doc/specs/vulkan/Makefile b/doc/specs/vulkan/Makefile
index 7d2e8762..5ffca396 100644
--- a/doc/specs/vulkan/Makefile
+++ b/doc/specs/vulkan/Makefile
@@ -160,7 +160,7 @@ GENDEPENDS = api/timeMarker validity/timeMarker hostsynctable/timeMarker
COMMONDOCS = $(CHAPTERS) $(GENINCLUDE) $(GENDEPENDS)
# A generated included file containing the spec version, date, and git commit
SPECVERSION = specversion.txt
-SPECREVISION = 1.0.31
+SPECREVISION = 1.0.32
SPECREMARK =
# Spec targets
diff --git a/doc/specs/vulkan/chapters/VK_EXT_debug_report.txt b/doc/specs/vulkan/chapters/VK_EXT_debug_report.txt
index e9e364ea..6b495088 100644
--- a/doc/specs/vulkan/chapters/VK_EXT_debug_report.txt
+++ b/doc/specs/vulkan/chapters/VK_EXT_debug_report.txt
@@ -164,14 +164,9 @@ registered.
.Valid Usage
****
- * pname:instance must: be a valid sname:VkInstance handle
- * pname:flags must: be a combination of one or more of
- sname:VkDebugReportFlagBitsEXT
- * pname:objType must: be one of sname:VkDebugReportObjectTypeEXT,
- ename:VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT if pname:object is `NULL`
* pname:object may: be a Vulkan object
* pname:pLayerPrefix must: be a `NULL` terminated string
- * pname:pMsg must: be a `NULL` terminated string
+ * pname:pMessage must: be a `NULL` terminated string
****
include::../validity/protos/vkDebugReportMessageEXT.txt[]
diff --git a/doc/specs/vulkan/chapters/VK_KHR_swapchain/wsi.txt b/doc/specs/vulkan/chapters/VK_KHR_swapchain/wsi.txt
index 946749eb..95f8bd0f 100644
--- a/doc/specs/vulkan/chapters/VK_KHR_swapchain/wsi.txt
+++ b/doc/specs/vulkan/chapters/VK_KHR_swapchain/wsi.txt
@@ -534,9 +534,6 @@ The fname:vkCmdWaitEvents or fname:vkCmdPipelineBarrier used to transition
the image away from ename:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout must: have
pname:dstStageMask and pname:dstAccessMask parameters set based on the next
use of the image.
-The pname:srcAccessMask must: include ename:VK_ACCESS_MEMORY_READ_BIT to
-ensure that all prior reads by the presentation engine are complete before
-the image layout transition occurs.
The application must: use
<> and
@@ -567,6 +564,19 @@ still be in the ename:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout if it was
previously presented, or in the ename:VK_IMAGE_LAYOUT_UNDEFINED layout if
this is the first time it has been acquired.
+[NOTE]
+.Note
+====
+Exclusive ownership of presentable images corresponding to a swapchain
+created with ename:VK_SHARING_MODE_EXCLUSIVE as defined in
+<> is not altered by a call to
+fname:vkAcquireNextImageKHR.
+That means upon the first acquisition from such a swapchain presentable
+images are not owned by any queue family, while at subsequent acquisitions
+the presentable images remain owned by the queue family the image was
+previously presented on.
+====
+
The possible return values for fname:vkAcquireNextImageKHR() depend on the
pname:timeout provided:
@@ -612,16 +622,18 @@ image sizes, a ename:VK_ERROR_OUT_OF_DATE_KHR error will be returned.
Before an application can: present an image, the image's layout must: be
transitioned to the ename:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout.
-The fname:vkCmdWaitEvents or fname:vkCmdPipelineBarrier that perform the
-transition must: have pname:srcStageMask and pname:srcAccessMask parameters
-set based on the preceding use of the image.
-The pname:dstAccessMask must: include ename:VK_ACCESS_MEMORY_READ_BIT
-indicating all prior accesses indicated in pname:srcAccessMask from stages
-in pname:srcStageMask are to be made available to reads by the presentation
-engine.
-Any value of pname:dstStageMask is valid, but should: be set to
-ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT to avoid delaying subsequent
-commands that do not access the image.
+
+.Note
+[NOTE]
+====
+When transitioning the image to ename:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, there
+is no need to delay subsequent processing, or perform any visibility
+operations (as flink:vkQueuePresentKHR performs automatic visibility
+operations).
+To achieve this, the pname:dstAccessMask member of the
+slink:VkImageMemoryBarrier should: be set to `0`, and the pname:dstStageMask
+parameter should: be set to ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.
+====
// refBegin vkQueuePresentKHR - Queue an image for presentation
@@ -649,6 +661,15 @@ ifdef::VK_KHR_display_swapchain[]
endif::VK_KHR_display_swapchain[]
****
+Any writes to memory backing the images referenced by the
+pname:pImageIndices and pname:pSwapchains members of pname:pPresentInfo,
+that are available before flink:VkQueuePresentKHR is executed, are
+automatically made visible to the read access performed by the presentation
+engine.
+This automatic visibility operation for an image happens-after the semaphore
+signal operation, and happens-before the presentation engine accesses the
+image.
+
include::../../validity/protos/vkQueuePresentKHR.txt[]
// refBegin VkPresentInfoKHR - Structure describing parameters of a queue presentation
@@ -701,7 +722,11 @@ endif::VK_KHR_display_swapchain[]
fname:vkQueuePresentKHR, releases the acquisition of the images referenced
by pname:imageIndices.
-A presented images must: not be used again before it has been reacquired
+The queue family corresponding to the queue fname:vkQueuePresentKHR is
+executed on must: have ownership of the presented images as defined in
+<>.
+fname:vkQueuePresentKHR does not alter the queue family ownership, but the
+presented images must: not be used again before they have been reacquired
using fname:vkAcquireNextImageKHR.
The processing of the presentation happens in issue order with other queue
diff --git a/doc/specs/vulkan/chapters/clears.txt b/doc/specs/vulkan/chapters/clears.txt
index 1f88cbe8..04cbf57e 100644
--- a/doc/specs/vulkan/chapters/clears.txt
+++ b/doc/specs/vulkan/chapters/clears.txt
@@ -208,6 +208,7 @@ described for flink:vkCreateRenderPass.
not include ename:VK_IMAGE_ASPECT_DEPTH_BIT or
ename:VK_IMAGE_ASPECT_STENCIL_BIT
* pname:aspectMask must: not include ename:VK_IMAGE_ASPECT_METADATA_BIT
+ * pname:clearValue must: be a valid sname:VkClearValue union
****
include::../validity/structs/VkClearAttachment.txt[]
@@ -288,6 +289,12 @@ This union is used where part of the API requires either color or
depth/stencil clear values, depending on the attachment, and defines the
initial clear values in the slink:VkRenderPassBeginInfo structure.
+.Valid Usage
+****
+ * pname:depthStencil must: be a valid sname:VkClearDepthStencilValue
+ structure
+****
+
include::../validity/structs/VkClearValue.txt[]
diff --git a/doc/specs/vulkan/chapters/cmdbuffers.txt b/doc/specs/vulkan/chapters/cmdbuffers.txt
index ffcf9906..3f8fbaee 100644
--- a/doc/specs/vulkan/chapters/cmdbuffers.txt
+++ b/doc/specs/vulkan/chapters/cmdbuffers.txt
@@ -425,8 +425,8 @@ include::../api/structs/VkCommandBufferInheritanceInfo.txt[]
compatible>> with and can: be executed within.
If the sname:VkCommandBuffer will not be executed within a render pass
instance, pname:renderPass is ignored.
- * pname:subpass is the index of the subpass within the render pass instance
- that the sname:VkCommandBuffer will be executed within.
+ * pname:subpass is the index of the subpass within the render pass
+ instance that the sname:VkCommandBuffer will be executed within.
If the sname:VkCommandBuffer will not be executed within a render pass
instance, pname:subpass is ignored.
* pname:framebuffer optionally refers to the sname:VkFramebuffer object
diff --git a/doc/specs/vulkan/chapters/copies.txt b/doc/specs/vulkan/chapters/copies.txt
index fc0f21e8..eaca79c0 100644
--- a/doc/specs/vulkan/chapters/copies.txt
+++ b/doc/specs/vulkan/chapters/copies.txt
@@ -157,16 +157,17 @@ pname:layerCount layers are copied to the destination image.
[[copies-images-format-compatibility]]
The formats of pname:srcImage and pname:dstImage must: be compatible.
-Formats are considered compatible if their element size is the same
-between both formats.
+Formats are considered compatible if their element size is the same between
+both formats.
For example, ename:VK_FORMAT_R8G8B8A8_UNORM is compatible with
ename:VK_FORMAT_R32_UINT because both texels are 4 bytes in size.
Depth/stencil formats must: match exactly.
fname:vkCmdCopyImage allows copying between size-compatible compressed and
uncompressed internal formats.
-Formats are size-compatible if the element size of the uncompressed format is
-equal to the element size (compressed texel block size) of the compressed format.
+Formats are size-compatible if the element size of the uncompressed format
+is equal to the element size (compressed texel block size) of the compressed
+format.
Such a copy does not perform on-the-fly compression or decompression.
When copying from an uncompressed format to a compressed format, each texel
of uncompressed data of the source image is copied as a raw value to the
@@ -558,8 +559,8 @@ destination image.
** If the calling command's pname:srcImage (flink:vkCmdCopyImageToBuffer)
or pname:dstImage (flink:vkCmdCopyBufferToImage) is of type
ename:VK_IMAGE_TYPE_1D or ename:VK_IMAGE_TYPE_2D, then
- pname:imageOffset.z must: be `0` and
- pname:imageExtent.depth must: be `1`.
+ pname:imageOffset.z must: be `0` and pname:imageExtent.depth must: be
+ `1`.
* If the calling command's sname:VkImage parameter is a compressed format
image:
** pname:bufferRowLength must: be a multiple of the compressed texel block
@@ -910,7 +911,8 @@ the specified source and destination regions.
subresource depth
** If the calling command's pname:srcImage is of type
ename:VK_IMAGE_TYPE_1D or ename:VK_IMAGE_TYPE_2D, then
- pname:srcOffset[0].z must: be `0` and pname:srcOffset[1].z must: be `1`.
+ pname:srcOffset[0].z must: be `0` and pname:srcOffset[1].z must: be
+ `1`.
* pname:dstOffset[0].pname:x and pname:dstOffset[1].pname:x must: both be
greater than or equal to `0` and less than or equal to the destination
image subresource width
@@ -925,7 +927,8 @@ the specified source and destination regions.
image subresource depth
** If the calling command's pname:dstImage is of type
ename:VK_IMAGE_TYPE_1D or ename:VK_IMAGE_TYPE_2D, then
- pname:dstOffset[0].z must: be `0` and pname:dstOffset[1].z must: be `1`.
+ pname:dstOffset[0].z must: be `0` and pname:dstOffset[1].z must: be
+ `1`.
****
include::../validity/structs/VkImageBlit.txt[]
diff --git a/doc/specs/vulkan/chapters/descriptorsets.txt b/doc/specs/vulkan/chapters/descriptorsets.txt
index a0bc8e68..1713f95a 100644
--- a/doc/specs/vulkan/chapters/descriptorsets.txt
+++ b/doc/specs/vulkan/chapters/descriptorsets.txt
@@ -600,6 +600,12 @@ include::../api/structs/VkDescriptorSetLayoutCreateInfo.txt[]
* pname:pBindings is a pointer to an array of
slink:VkDescriptorSetLayoutBinding structures.
+.Valid Usage
+****
+ * The slink:VkDescriptorSetLayoutBinding::pname:binding members of the
+ elements of the pname:pBindings array must: each have different values.
+****
+
include::../validity/structs/VkDescriptorSetLayoutCreateInfo.txt[]
// refBegin VkDescriptorSetLayoutBinding Structure specifying a descriptor set layout binding
@@ -652,10 +658,11 @@ graphics stages and the compute stage.
The above layout definition allows the descriptor bindings to be specified
sparsely such that not all binding numbers between 0 and the maximum binding
number need to be specified in the pname:pBindings array.
-However, all binding numbers between 0 and the maximum binding number may:
-consume memory in the descriptor set layout even if not all descriptor
-bindings are used, though it should: not consume additional memory from the
-descriptor pool.
+However, all binding numbers between 0 and the maximum binding number in the
+slink:VkDescriptorSetLayoutCreateInfo::pname:pBindings array may: consume
+memory in the descriptor set layout even if not all descriptor bindings are
+used, though it should: not consume additional memory from the descriptor
+pool.
[NOTE]
.Note
diff --git a/doc/specs/vulkan/chapters/drawing.txt b/doc/specs/vulkan/chapters/drawing.txt
index 3aa69bc0..f1f0e180 100644
--- a/doc/specs/vulkan/chapters/drawing.txt
+++ b/doc/specs/vulkan/chapters/drawing.txt
@@ -474,8 +474,9 @@ The assembled primitives execute the currently bound graphics pipeline.
.Valid Usage
****
* The current render pass must: be <>
- with the pname:renderPass member of the sname:VkGraphicsPipelineCreateInfo
- structure specified when creating the sname:VkPipeline currently bound to
+ with the pname:renderPass member of the
+ sname:VkGraphicsPipelineCreateInfo structure specified when creating the
+ sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* The subpass index of the current render pass must: be equal to the
pname:subpass member of the sname:VkGraphicsPipelineCreateInfo structure
@@ -609,8 +610,9 @@ The assembled primitives execute the currently bound graphics pipeline.
.Valid Usage
****
* The current render pass must: be <>
- with the pname:renderPass member of the sname:VkGraphicsPipelineCreateInfo
- structure specified when creating the sname:VkPipeline currently bound to
+ with the pname:renderPass member of the
+ sname:VkGraphicsPipelineCreateInfo structure specified when creating the
+ sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* The subpass index of the current render pass must: be equal to the
pname:subpass member of the sname:VkGraphicsPipelineCreateInfo structure
@@ -746,8 +748,9 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
sname:VkDrawIndirectCommand structures accessed by this command must: be
code:0
* The current render pass must: be <>
- with the pname:renderPass member of the sname:VkGraphicsPipelineCreateInfo
- structure specified when creating the sname:VkPipeline currently bound to
+ with the pname:renderPass member of the
+ sname:VkGraphicsPipelineCreateInfo structure specified when creating the
+ sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* The subpass index of the current render pass must: be equal to the
pname:subpass member of the sname:VkGraphicsPipelineCreateInfo structure
@@ -919,8 +922,9 @@ located at pname:countBufferOffset and use this as the draw count.
sname:VkDrawIndirectCommand structures accessed by this command must: be
code:0
* The current render pass must: be <>
- with the pname:renderPass member of the sname:VkGraphicsPipelineCreateInfo
- structure specified when creating the sname:VkPipeline currently bound to
+ with the pname:renderPass member of the
+ sname:VkGraphicsPipelineCreateInfo structure specified when creating the
+ sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* The subpass index of the current render pass must: be equal to the
pname:subpass member of the sname:VkGraphicsPipelineCreateInfo structure
@@ -1047,8 +1051,9 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
sname:VkDrawIndexedIndirectCommand structures accessed by this command
must: be code:0
* The current render pass must: be <>
- with the pname:renderPass member of the sname:VkGraphicsPipelineCreateInfo
- structure specified when creating the sname:VkPipeline currently bound to
+ with the pname:renderPass member of the
+ sname:VkGraphicsPipelineCreateInfo structure specified when creating the
+ sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* The subpass index of the current render pass must: be equal to the
pname:subpass member of the sname:VkGraphicsPipelineCreateInfo structure
@@ -1227,8 +1232,9 @@ located at pname:countBufferOffset and use this as the draw count.
sname:VkDrawIndexedIndirectCommand structures accessed by this command
must: be code:0
* The current render pass must: be <>
- with the pname:renderPass member of the sname:VkGraphicsPipelineCreateInfo
- structure specified when creating the sname:VkPipeline currently bound to
+ with the pname:renderPass member of the
+ sname:VkGraphicsPipelineCreateInfo structure specified when creating the
+ sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* The subpass index of the current render pass must: be equal to the
pname:subpass member of the sname:VkGraphicsPipelineCreateInfo structure
diff --git a/doc/specs/vulkan/chapters/features.txt b/doc/specs/vulkan/chapters/features.txt
index 4894a196..2d086a50 100644
--- a/doc/specs/vulkan/chapters/features.txt
+++ b/doc/specs/vulkan/chapters/features.txt
@@ -3867,9 +3867,10 @@ limits in sname:VkPhysicalDeviceLimits as follows:
If multiple bits are set in pname:usage, pname:sampleCounts will be the
intersection of the per-usage values described above.
-If none of the bits described above are set in pname:usage, then there
-is no corresponding limit in sname:VkPhysicalDeviceLimits. In this case,
-pname:sampleCounts must: include at least ename:VK_SAMPLE_COUNT_1_BIT.
+If none of the bits described above are set in pname:usage, then there is no
+corresponding limit in sname:VkPhysicalDeviceLimits.
+In this case, pname:sampleCounts must: include at least
+ename:VK_SAMPLE_COUNT_1_BIT.
[[features-extentperimagetype]]
diff --git a/doc/specs/vulkan/chapters/interfaces.txt b/doc/specs/vulkan/chapters/interfaces.txt
index 0e7c0c80..bc438864 100644
--- a/doc/specs/vulkan/chapters/interfaces.txt
+++ b/doc/specs/vulkan/chapters/interfaces.txt
@@ -789,14 +789,14 @@ The code:ClipDistance decoration must: be used only within vertex, fragment,
tessellation control, tessellation evaluation, and geometry shaders.
+
In vertex shaders, any variable decorated with code:ClipDistance must: be
-declared using the output storage class.
+declared using the code:Output storage class.
+
In fragment shaders, any variable decorated with code:ClipDistance must: be
-declared using the input storage class.
+declared using the code:Input storage class.
+
In tessellation control, tessellation evaluation, or geometry shaders, any
variable decorated with code:ClipDistance must: not be in a storage class
-other than input or output.
+other than code:Input or code:Output.
+
Any variable decorated with code:ClipDistance must: be declared as an array
of 32-bit floating-point values.
@@ -831,10 +831,10 @@ The code:CullDistance decoration must: be used only within vertex, fragment,
tessellation control, tessellation evaluation, and geometry shaders.
+
In vertex shaders, any variable decorated with code:CullDistance must: be
-declared using the output storage class.
+declared using the code:Output storage class.
+
In fragment shaders, any variable decorated with code:CullDistance must: be
-declared using the input storage class.
+declared using the code:Input storage class.
+
In tessellation control, tessellation evaluation, or geometry shaders, any
variable decorated with code:CullDistance must: not be declared in a storage
@@ -880,8 +880,8 @@ The [eq]#w# component is the interpolated latexmath:[$\frac{1}{w}$].
+
The code:FragCoord decoration must: be used only within fragment shaders.
+
-The variable decorated with code:FragCoord must: be declared using the input
-storage class.
+The variable decorated with code:FragCoord must: be declared using the
+code:Input storage class.
+
The code:Centroid interpolation decoration is ignored on code:FragCoord.
+
@@ -906,7 +906,7 @@ that path.
The code:FragDepth decoration must: be used only within fragment shaders.
+
The variable decorated with code:FragDepth must: be declared using the
-output storage class.
+code:Output storage class.
+
The variable decorated with code:FragDepth must: be declared as a scalar
32-bit floating-point value.
@@ -922,7 +922,7 @@ fragment is considered to be part of a back-facing primitive.
The code:FrontFacing decoration must: be used only within fragment shaders.
+
The variable decorated with code:FrontFacing must: be declared using the
-input storage class.
+code:Input storage class.
+
The variable decorated with code:FrontFacing must: be declared as a boolean.
@@ -938,7 +938,7 @@ The code:GlobalInvocationId decoration must: be used only within compute
shaders.
+
The variable decorated with code:GlobalInvocationId must: be declared using
-the input storage class.
+the code:Input storage class.
+
The variable decorated with code:GlobalInvocationId must: be declared as a
three-component vector of 32-bit integers.
@@ -957,7 +957,7 @@ The code:HelperInvocation decoration must: be used only within fragment
shaders.
+
The variable decorated with code:HelperInvocation must: be declared using
-the input storage class.
+the code:Input storage class.
+
The variable decorated with code:HelperInvocation must: be declared as a
boolean.
@@ -986,7 +986,7 @@ The code:InvocationId decoration must: be used only within tessellation
control and geometry shaders.
+
The variable decorated with code:InvocationId must: be declared using the
-input storage class.
+code:Input storage class.
+
The variable decorated with code:InvocationId must: be declared as a scalar
32-bit integer.
@@ -1004,7 +1004,7 @@ flink:vkCmdDrawIndexedIndirect.
The code:InstanceIndex decoration must: be used only within vertex shaders.
+
The variable decorated with code:InstanceIndex must: be declared using the
-input storage class.
+code:Input storage class.
+
The variable decorated with code:InstanceIndex must: be declared as a scalar
32-bit integer.
@@ -1030,10 +1030,10 @@ The code:Layer decoration must: be used only within geometry and fragment
shaders.
+
In a geometry shader, any variable decorated with code:Layer must: be
-declared using the output storage class.
+declared using the code:Output storage class.
+
In a fragment shader, any variable decorated with code:Layer must: be
-declared using the input storage class.
+declared using the code:Input storage class.
+
Any variable decorated with code:Layer must: be declared as a scalar 32-bit
integer.
@@ -1050,7 +1050,7 @@ The code:LocalInvocationId decoration must: be used only within compute
shaders.
+
The variable decorated with code:LocalInvocationId must: be declared using
-the input storage class.
+the code:Input storage class.
+
The variable decorated with code:LocalInvocationId must: be declared as a
three-component vector of 32-bit integers.
@@ -1078,7 +1078,7 @@ structure read through a call to flink:vkCmdDispatchIndirect.
The code:NumWorkgroups decoration must: be used only within compute shaders.
+
The variable decorated with code:NumWorkgroups must: be declared using the
-input storage class.
+code:Input storage class.
+
The variable decorated with code:NumWorkgroups must: be declared as a
three-component vector of 32-bit integers.
@@ -1096,9 +1096,9 @@ The code:PatchVertices decoration must: be used only within tessellation
control and tessellation evaluation shaders.
+
The variable decorated with code:PatchVertices must: be declared using the
-input storage class.
+code:Input storage class.
+
-The variable decorated with code:PatchVertices must: be declared as scalar
+The variable decorated with code:PatchVertices must: be declared as a scalar
32-bit integer.
code:PointCoord::
@@ -1115,7 +1115,7 @@ value.
The code:PointCoord decoration must: be used only within fragment shaders.
+
The variable decorated with code:PointCoord must: be declared using the
-input storage class.
+code:Input storage class.
+
The variable decorated with code:PointCoord must: be declared as
two-component vector of 32-bit floating-point values.
@@ -1139,11 +1139,11 @@ The code:PointSize decoration must: be used only within vertex, tessellation
control, tessellation evaluation, and geometry shaders.
+
In a vertex shader, any variable decorated with code:PointSize must: be
-declared using the output storage class.
+declared using the code:Output storage class.
+
In a tessellation control, tessellation evaluation, or geometry shader, any
variable decorated with code:PointSize must: be declared using either the
-input or output storage class.
+code:Input or code:Output storage class.
+
Any variable decorated with code:PointSize must: be declared as a scalar
32-bit floating-point value.
@@ -1151,7 +1151,7 @@ Any variable decorated with code:PointSize must: be declared as a scalar
[NOTE]
.Note
====
-When code:PointSize decorates a variable in the input storage class, it
+When code:PointSize decorates a variable in the code:Input storage class, it
contains the data written to the output variable decorated with
code:PointSize from the previous shader stage.
====
@@ -1168,7 +1168,7 @@ The code:Position decoration must: be used only within vertex, tessellation
control, tessellation evaluation, and geometry shaders.
+
In a vertex shader, any variable decorated with code:Position must: be
-declared using the output storage class.
+declared using the code:Output storage class.
+
In a tessellation control, tessellation evaluation, or geometry shader, any
variable decorated with code:Position must: not be declared in a storage
@@ -1180,7 +1180,7 @@ four-component vector of 32-bit floating-point values.
[NOTE]
.Note
====
-When code:Position decorates a variable in the input storage class, it
+When code:Position decorates a variable in the code:Input storage class, it
contains the data written to the output variable decorated with
code:Position from the previous shader stage.
====
@@ -1211,14 +1211,18 @@ paths.
The code:PrimitiveId decoration must: be used only within fragment,
tessellation control, tessellation evaluation, and geometry shaders.
+
-In a fragment, tessellation control or tessellation evaluation shader, any
-variable decorated with code:PrimitiveId must: be declared using the output
+In a tessellation control or tessellation evaluation shader, any variable
+decorated with code:PrimitiveId must: be declared using the code:Output
storage class.
+
In a geometry shader, any variable decorated with code:PrimitiveId must: be
-declared using either the input or output storage class.
+declared using either the code:Input or code:Output storage class.
+
-Any variable decorated with code:PrimitiveId must: be declared as scalar
+In a fragment shader, any variable decorated with code:PrimitiveId must: be
+declared using the code:Input storage class, and either the code:Geometry or
+code:Tessellation capability must also be declared.
++
+Any variable decorated with code:PrimitiveId must: be declared as a scalar
32-bit integer.
[NOTE]
@@ -1242,8 +1246,8 @@ use that fragment shader.
+
The code:SampleId decoration must: be used only within fragment shaders.
+
-The variable decorated with code:SampleId must: be declared using the input
-storage class.
+The variable decorated with code:SampleId must: be declared using the
+code:Input storage class.
+
The variable decorated with code:SampleId must: be declared as a scalar
32-bit integer.
@@ -1254,9 +1258,9 @@ Decorating a variable with the code:SampleMask built-in decoration will make
any variable contain the sample coverage mask for the current fragment
shader invocation.
+
-A variable in the input storage class decorated with code:SampleMask will
-contain a bitmask of the set of samples covered by the primitive generating
-the fragment during rasterization.
+A variable in the code:Input storage class decorated with code:SampleMask
+will contain a bitmask of the set of samples covered by the primitive
+generating the fragment during rasterization.
It has a sample bit set if and only if the sample is considered covered for
this fragment shader invocation.
code:SampleMask[] is an array of integers.
@@ -1270,10 +1274,10 @@ to the invocation.
In this case, the bit corresponding to each covered sample will be set in
exactly one fragment shader invocation.
+
-A variable in the output storage class decorated with code:SampleMask is an
-array of integers forming a bit array in a manner similar an input variable
-decorated with code:SampleMask, but where each bit represents coverage as
-computed by the shader.
+A variable in the code:Output storage class decorated with code:SampleMask
+is an array of integers forming a bit array in a manner similar an input
+variable decorated with code:SampleMask, but where each bit represents
+coverage as computed by the shader.
Modifying the sample mask by writing zero to a bit of code:SampleMask causes
the sample to be considered uncovered.
However, setting sample mask bits to one will never enable samples not
@@ -1296,7 +1300,7 @@ the processing of a fragment.
The code:SampleMask decoration must: be used only within fragment shaders.
+
Any variable decorated with code:SampleMask must: be declared using either
-the input or output storage class.
+the code:Input or code:Output storage class.
+
Any variable decorated with code:SampleMask must: be declared as an array of
32-bit integers.
@@ -1316,7 +1320,7 @@ The code:SamplePosition decoration must: be used only within fragment
shaders.
+
The variable decorated with code:SamplePosition must: be declared using the
-input storage class.
+code:Input storage class.
+
The variable decorated with code:SamplePosition must: be declared as a
two-component vector of 32-bit floating-point values.
@@ -1334,8 +1338,8 @@ component is always zero.
The code:TessCoord decoration must: be used only within tessellation
evaluation shaders.
+
-The variable decorated with code:TessCoord must: be declared using the input
-storage class.
+The variable decorated with code:TessCoord must: be declared using the
+code:Input storage class.
+
The variable decorated with code:TessCoord must: be declared as
three-component vector of 32-bit floating-point values.
@@ -1360,10 +1364,10 @@ The code:TessLevelOuter decoration must: be used only within tessellation
control and tessellation evaluation shaders.
+
In a tessellation control shader, any variable decorated with
-code:TessLevelOuter must: be declared using the output storage class.
+code:TessLevelOuter must: be declared using the code:Output storage class.
+
In a tessellation evaluation shader, any variable decorated with
-code:TessLevelOuter must: be declared using the input storage class.
+code:TessLevelOuter must: be declared using the code:Input storage class.
+
Any variable decorated with code:TessLevelOuter must: be declared as an
array of size four, containing 32-bit floating-point values.
@@ -1388,10 +1392,10 @@ The code:TessLevelInner decoration must: be used only within tessellation
control and tessellation evaluation shaders.
+
In a tessellation control shader, any variable decorated with
-code:TessLevelInner must: be declared using the output storage class.
+code:TessLevelInner must: be declared using the code:Output storage class.
+
In a tessellation evaluation shader, any variable decorated with
-code:TessLevelInner must: be declared using the input storage class.
+code:TessLevelInner must: be declared using the code:Input storage class.
+
Any variable decorated with code:TessLevelInner must: be declared as an
array of size two, containing 32-bit floating-point values.
@@ -1413,7 +1417,7 @@ flink:vkCmdDrawIndexedIndirect.
The code:VertexIndex decoration must: be used only within vertex shaders.
+
The variable decorated with code:VertexIndex must: be declared using the
-input storage class.
+code:Input storage class.
+
The variable decorated with code:VertexIndex must: be declared as a scalar
32-bit integer.
@@ -1448,10 +1452,10 @@ The code:ViewportIndex decoration must: be used only within geometry and
fragment shaders.
+
In a geometry shader, any variable decorated with code:ViewportIndex must:
-be declared using the output storage class.
+be declared using the code:Output storage class.
+
In a fragment shader, any variable decorated with code:ViewportIndex must:
-be declared using the input storage class.
+be declared using the code:Input storage class.
+
Any variable decorated with code:ViewportIndex must: be declared as a scalar
32-bit integer.
@@ -1468,7 +1472,7 @@ structure read through a call to flink:vkCmdDispatchIndirect.
The code:WorkgroupId decoration must: be used only within compute shaders.
+
The variable decorated with code:WorkgroupId must: be declared using the
-input storage class.
+code:Input storage class.
+
The variable decorated with code:WorkgroupId must: be declared as a
three-component vector of 32-bit integers.
diff --git a/doc/specs/vulkan/chapters/pipelines.txt b/doc/specs/vulkan/chapters/pipelines.txt
index 4534a09f..f45ac8f0 100644
--- a/doc/specs/vulkan/chapters/pipelines.txt
+++ b/doc/specs/vulkan/chapters/pipelines.txt
@@ -381,8 +381,8 @@ include::../api/structs/VkGraphicsPipelineCreateInfo.txt[]
* pname:layout is the description of binding locations used by both the
pipeline and descriptor sets used with the pipeline.
* pname:renderPass is a handle to a render pass object describing the
- environment in which the pipeline will be used; the pipeline must: only be
- used with an instance of any render pass compatible with the one
+ environment in which the pipeline will be used; the pipeline must: only
+ be used with an instance of any render pass compatible with the one
provided.
See <> for more
information.
@@ -1087,6 +1087,9 @@ slink:VkSpecializationMapEntry.
be less than pname:dataSize
* For any given element of pname:pMapEntries, pname:size must: be less
than or equal to pname:dataSize minus pname:offset
+ * If pname:mapEntryCount is not `0`, pname:pMapEntries must: be a pointer
+ to an array of pname:mapEntryCount valid sname:VkSpecializationMapEntry
+ structures
****
include::../validity/structs/VkSpecializationInfo.txt[]
diff --git a/doc/specs/vulkan/chapters/renderpass.txt b/doc/specs/vulkan/chapters/renderpass.txt
index b2cd803f..72012443 100644
--- a/doc/specs/vulkan/chapters/renderpass.txt
+++ b/doc/specs/vulkan/chapters/renderpass.txt
@@ -1104,8 +1104,11 @@ pass.
in pname:renderPass that specifies a pname:loadOp (or
pname:stencilLoadOp, if the attachment has a depth/stencil format) of
ename:VK_ATTACHMENT_LOAD_OP_CLEAR
- * pname:renderPass must: be <>
- with the pname:renderPass member of the sname:VkFramebufferCreateInfo
+ * If pname:clearValueCount is not `0`, pname:pClearValues must: be a
+ pointer to an array of pname:clearValueCount valid sname:VkClearValue
+ unions
+ * pname:renderPass must: be <> with
+ the pname:renderPass member of the sname:VkFramebufferCreateInfo
structure specified when creating pname:framebuffer.
****
diff --git a/doc/specs/vulkan/chapters/resources.txt b/doc/specs/vulkan/chapters/resources.txt
index b6881b2a..a1e0904b 100644
--- a/doc/specs/vulkan/chapters/resources.txt
+++ b/doc/specs/vulkan/chapters/resources.txt
@@ -291,8 +291,8 @@ include::../api/structs/VkBufferViewCreateInfo.txt[]
* If pname:range is not equal to ename:VK_WHOLE_SIZE:
** pname:range must: be greater than `0`
** pname:range must: be a multiple of the element size of pname:format
- ** pname:range divided by the element size of pname:format, must: be
- less than or equal to
+ ** pname:range divided by the element size of pname:format, must: be less
+ than or equal to
sname:VkPhysicalDeviceLimits::pname:maxTexelBufferElements
** the sum of pname:offset and pname:range must: be less than or equal to
the size of pname:buffer
@@ -519,6 +519,8 @@ flink:vkGetPhysicalDeviceImageFormatProperties.
fname:vkGetPhysicalDeviceImageFormatProperties with pname:format,
pname:type, pname:tiling, pname:usage, and pname:flags equal to those in
this structure)
+ * If pname:imageType is ename:VK_IMAGE_TYPE_3D, pname:arrayLayers must: be
+ `1`.
* If pname:samples is not ename:VK_SAMPLE_COUNT_1_BIT, pname:imageType
must: be ename:VK_IMAGE_TYPE_2D, pname:flags must: not contain
ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, pname:tiling must: be
@@ -2037,6 +2039,12 @@ an ownership transfer in the same way as for a resource that was just
created, however doing so means any contents written by other queue families
or via incompatible aliases are undefined.
+Ranges of buffers and image subresources of image objects created using
+ename:VK_SHARING_MODE_CONCURRENT must: only be accessed by queues from the
+queue families specified through the pname:queueFamilyIndexCount and
+pname:pQueueFamilyIndices members of the corresponding create info
+structures.
+
// refEnd VkSharingMode
diff --git a/doc/specs/vulkan/chapters/sparsemem.txt b/doc/specs/vulkan/chapters/sparsemem.txt
index 600333c9..c649cec4 100644
--- a/doc/specs/vulkan/chapters/sparsemem.txt
+++ b/doc/specs/vulkan/chapters/sparsemem.txt
@@ -104,8 +104,8 @@ pname:sparseResidency4Samples, pname:sparseResidency8Samples, and
pname:sparseResidency16Samples.
--
** A sparse image created using ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
- supports all non-compressed color formats with power-of-two element size
- that non-sparse usage supports.
+ supports all non-compressed color formats with power-of-two element
+ size that non-sparse usage supports.
Additional formats may: also be supported and can: be queried via
flink:vkGetPhysicalDeviceSparseImageFormatProperties.
ename:VK_IMAGE_TILING_LINEAR tiling is not supported.
diff --git a/doc/specs/vulkan/chapters/synchronization.txt b/doc/specs/vulkan/chapters/synchronization.txt
index 4f5b5150..1c8ae0ed 100644
--- a/doc/specs/vulkan/chapters/synchronization.txt
+++ b/doc/specs/vulkan/chapters/synchronization.txt
@@ -365,7 +365,7 @@ prevent other work from overlapping with the presentation operation.
For example, a sname:VkImageMemoryBarrier could use:
* pname:srcStageMask = ename:VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
- * pname:srcAccessMask = ename:VK_ACCESS_MEMORY_READ_BIT
+ * pname:srcAccessMask = 0
* pname:dstStageMask = ename:VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT
* pname:dstAccessMask = ename:VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
ename:VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT.
diff --git a/doc/specs/vulkan/chapters/textures.txt b/doc/specs/vulkan/chapters/textures.txt
index 1836cc3e..b83a3922 100644
--- a/doc/specs/vulkan/chapters/textures.txt
+++ b/doc/specs/vulkan/chapters/textures.txt
@@ -124,7 +124,7 @@ n is the sample index and is taken from the code:Sample image operand.
For all coordinate types, unused coordinates are assigned a value of zero.
[[textures-texel-coordinate-systems-diagrams]]
-image::images/vulkantexture0.png[Title="Texel Coordinate Systems", align="left", scaledwidth="80%"]
+image::images/vulkantexture0.png[align="center",title="Texel Coordinate Systems",{fullimagewidth}]
The Texel Coordinate Systems - For the example shown of an 8x4 texel two
dimensional image.
@@ -154,7 +154,7 @@ dimensional image.
four texels selected by the offset are [eq]#i~0~j'~0~#,
[eq]#i~1~j'~0~#, [eq]#i~0~j'~1~#, and [eq]#i~1~j'~1~#.
-image::images/vulkantexture1.png[Title="Texel Coordinate Systems", align="left", scaledwidth="80%"]
+image::images/vulkantexture1.png[align="center",title="Texel Coordinate Systems",{fullimagewidth}]
The Texel Coordinate Systems - For the example shown of an 8x4 texel two
dimensional image.
@@ -826,7 +826,7 @@ SPIR-V derivative instructions include code:OpDPdx, code:OpDPdy,
code:OpDPdxFine, code:OpDPdyFine, code:OpDPdxCoarse, and code:OpDPdyCoarse.
Derivative instructions are only available in a fragment shader.
-image::images/vulkantexture2.png[Title="Implicit derivatives",align="left", scaledwidth="50%"]
+image::images/vulkantexture2.png[align="center",title="Implicit Derivatives",{fullimagewidth}]
Derivatives are computed as if there is a 2x2 neighborhood of fragments for
each fragment shader invocation.
diff --git a/doc/specs/vulkan/chapters/vertexpostproc.txt b/doc/specs/vulkan/chapters/vertexpostproc.txt
index 7833d226..20b8fd61 100644
--- a/doc/specs/vulkan/chapters/vertexpostproc.txt
+++ b/doc/specs/vulkan/chapters/vertexpostproc.txt
@@ -380,6 +380,8 @@ replace the current state for the viewport index [eq]#pname:firstViewport
sname:VkPhysicalDeviceLimits::pname:maxViewports
* The sum of pname:firstViewport and pname:viewportCount must: be between
`1` and sname:VkPhysicalDeviceLimits::pname:maxViewports, inclusive
+ * pname:pViewports must: be a pointer to an array of pname:viewportCount
+ valid sname:VkViewport structures
****
include::../validity/protos/vkCmdSetViewport.txt[]
diff --git a/src/spec/hostsyncgenerator.py b/src/spec/hostsyncgenerator.py
index 772719e9..c982ca93 100644
--- a/src/spec/hostsyncgenerator.py
+++ b/src/spec/hostsyncgenerator.py
@@ -188,10 +188,6 @@ class HostSynchronizationOutputGenerator(OutputGenerator):
# Command generation
def genCmd(self, cmdinfo, name):
OutputGenerator.genCmd(self, cmdinfo, name)
- #
- # Get all thh parameters
- params = cmdinfo.elem.findall('param')
- usages = cmdinfo.elem.findall('validity/usage')
self.makeThreadSafetyBlocks(cmdinfo.elem, 'param')
diff --git a/src/spec/registry.rnc b/src/spec/registry.rnc
index 9146668e..c1eb68cb 100644
--- a/src/spec/registry.rnc
+++ b/src/spec/registry.rnc
@@ -150,8 +150,7 @@ Type = element type {
element name { text },
element enum { EnumName } ?
}
- } * ,
- Validity ?
+ } *
)
)
}
@@ -295,8 +294,7 @@ Command = element command {
} ? &
element implicitexternsyncparams {
element param { text } *
- } ? &
- Validity ?
+ } ?
)
}
@@ -320,20 +318,12 @@ Feature = element feature {
element require {
ProfileName ? ,
Comment ? ,
- InterfaceElement *,
- element usage {
- attribute struct { text } *,
- attribute command { text } *,
- text } *
+ InterfaceElement *
} |
element remove {
ProfileName ? ,
Comment ? ,
- InterfaceElement *,
- element usage {
- attribute struct { text } *,
- attribute command { text } *,
- text } *
+ InterfaceElement *
}
) *
}
@@ -375,21 +365,13 @@ Extension = element extension {
attribute api { text } ? ,
ProfileName ? ,
Comment ? ,
- InterfaceElement *,
- element usage {
- attribute struct { text } *,
- attribute command { text } *,
- text } *
+ InterfaceElement *
} |
element remove {
attribute api { text } ? ,
ProfileName ? ,
Comment ? ,
- InterfaceElement *,
- element usage {
- attribute struct { text } *,
- attribute command { text } *,
- text } *
+ InterfaceElement *
}
) *
}
@@ -409,13 +391,6 @@ InterfaceElement =
Comment ?
}
-# Defines validation text for the Vulkan spec and reference pages.
-# Consists of multiple tags, each containing arbitrary
-# asciidoc text.
-Validity = element validity {
- element usage { text } *
-}
-
# Integers are allowed to be either decimal or C-hex (0x[0-9A-F]+), but
# XML Schema types don't seem to support hex notation, so we use this
# as a placeholder.
diff --git a/src/spec/registry.txt b/src/spec/registry.txt
index e62a6ea7..2fe48368 100644
--- a/src/spec/registry.txt
+++ b/src/spec/registry.txt
@@ -351,9 +351,7 @@ If the attr:category tag has the values +struct+ or +union+, the
type is a C structure or union, respectively. In this case, the attr:name
attribute must be provided, and the contents of the tag:type tag are a
series of tag:member tags defining the members of the aggregate type, in
-order, followed by an optional tag:validity tag including asciidoc
-validation language for the structure contents.
-
+order.
==== Structure member (tag:member) tags
@@ -381,9 +379,7 @@ member.
+VK_NULL_HANDLE+ (for handles), 0 (for bitmasks), or 0 for values
that are the size of an array in the same structure. If the member
is a pointer to one of those types, multiple values may be provided,
- separated by commas - one for each pointer indirection. Note that
- this only affects automatic validity statements - explicit
- statements remain unchanged.
+ separated by commas - one for each pointer indirection.
* attr:noautovalidity - prevents automatic validity language being
generated for the tagged item. Only suppresses item-specific
validity - parenting issues etc. are still captured.
@@ -401,19 +397,6 @@ contain two semantic tags:
* The tag:name tag is required, and contains the struct/union member
name being described.
-==== Validation (tag:validity) tags
-
-The tag:validity tag, if present defines valid use cases and values for
-structure members.
-
-
-==== Contents of tag:validity tags
-
-Each tag:validity tag contains zero or more tag:usage tags. Each
-tag:usage tag is intended to represent a specific validation requirement
-for the structure and include arbitrary asciidoc text describing that
-requirement.
-
=== All other types
@@ -666,8 +649,6 @@ command (function).
* tag:param elements for each command parameter follow, defining its
name and type, as described below. If a command takes no arguments,
it has no tag:param tags.
- * An optional tag:validity tag including asciidoc validation language
- for the command parameters.
Following these elements, the remaining elements in a tag:command
tag are optional and may be in any order:
@@ -737,18 +718,29 @@ members.
+VK_NULL_HANDLE+ (for handles), 0 (for bitmasks), or 0 for values
that are the size of an array in the same command. If the member is
a pointer to one of those types, multiple values may be provided,
- separated by commas - one for each pointer indirection. Note that
- this only affects automatic validity statements - explicit
- statements remain unchanged.
+ separated by commas - one for each pointer indirection.
* attr:noautovalidity - prevents automatic validity language being
generated for the tagged item. Only suppresses item-specific
validity - parenting issues etc. are still captured.
- * attr:externsync - optional. A boolean string, which must have the
- value +"true"+ if present, indicating that this parameter (e.g. the
- object a handle refers to, or the contents of an array a pointer
- refers to) is modified by the command, and is not protected against
- modification in multiple app threads. Parameters which do not have
- this attribute are assumed to not require external synchronization.
+ * attr:externsync - optional. A value of +"true"+ indicates that this
+ parameter (e.g. the object a handle refers to, or the contents of an
+ array a pointer refers to) is modified by the command, and is not
+ protected against modification in multiple app threads. If only certain
+ members of an object or elements of an array are modified, multiple
+ strings may be provided, separated by commas. Each string describes a
+ member which is modified. For example, the +vkQueueSubmit+ command
+ includes attr:externsync attributes for the +pSubmits+ array indicating
+ that only specific members of each element of the array are modified:
++
+--
+[source,{basebackend@docbook:c++:cpp}]
+--------------------------------------
+ const VkSubmitInfo* pSubmits
+--------------------------------------
+
+Parameters which do not have an attr:externsync attribute are assumed to not
+require external synchronization.
+--
=== Contents of tag:param tags
@@ -787,20 +779,6 @@ VkResult vkCreateInstance(
--------------------------------------
-[[tag-command:validity]]
-== Parameter validation (tag:validity) tags
-
-The tag:validity tag, if present defines valid use cases and values for
-command parameters
-
-=== Contents of tag:validity tags
-
-Each tag:validity tag contains zero or more tag:usage tags. Each
-tag:usage tag is intended to represent a specific validation requirement
-for the command, and contains arbitrary asciidoc text describing that
-requirement.
-
-
[[tag-feature]]
= API Features and Versions (tag:feature tag)
@@ -989,12 +967,12 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
= Required and Removed Interfaces (tag:require and tag:remove tags)
A tag:require block defines a set of interfaces (types, enumerants and
-commands) and additional validity statements 'required' by a tag:feature
-or tag:extension. A tag:remove block defines a set of interfaces or
-validity statements 'removed' by a tag:feature. This is primarily for
+commands) 'required' by a tag:feature
+or tag:extension. A tag:remove block defines a set of interfaces
+'removed' by a tag:feature. This is primarily for
future profiles of an API which may choose to deprecate and/or remove
-some interfaces - or for profiles or extensions to remove validity
-statements. Extensions should never remove interfaces, although this
+some interfaces.
+Extensions should never remove interfaces, although this
usage is allowed by the schema). Except for the tag name and behavior,
the contents of tag:require and tag:remove tags are identical.
@@ -1083,18 +1061,6 @@ content, but contains elements:
* attr:name - required. Name of the type.
* attr:comment - optional. Arbitrary string (unused).
-=== Usage Tags
-
-tag:usage specifies a required (or removed) validity statement for a
-tag:validity block belonging to a tag:proto or tag:type block. Validity
-is more likely to be removed by extensions than other items. One of
-struct or command must be present.
-
- * attr:struct - optional. Name of the structure this validity is added
- to (or removed from).
- * attr:comment - optional. Name of the command this validity is added
- to (or removed from).
-
[[tag-required:examples]]
== Examples of Extension Enumerants
@@ -1756,6 +1722,8 @@ files and Python scripts are logged in Github history.
[[changelog]]
= Change Log
+ * 2016-09-27 - remove tag:validity and tag:usage tags, since these
+ explicit usage statements have been moved to the specification source.
* 2016-08-26 - Update for the single-branch model.
* 2016-07-28 - Add attr:type and attr:requires attributes to tag:extension
tags.
diff --git a/src/spec/validitygenerator.py b/src/spec/validitygenerator.py
index 422088bd..0f3a5865 100644
--- a/src/spec/validitygenerator.py
+++ b/src/spec/validitygenerator.py
@@ -73,7 +73,7 @@ class ValidityOutputGenerator(OutputGenerator):
# directory - subdirectory to put file in
# basename - base name of the file
# contents - contents of the file (Asciidoc boilerplate aside)
- def writeInclude(self, directory, basename, validity, usages, threadsafety, commandpropertiesentry, successcodes, errorcodes):
+ def writeInclude(self, directory, basename, validity, threadsafety, commandpropertiesentry, successcodes, errorcodes):
# Create subdirectory, if needed
directory = self.genOpts.directory + '/' + directory
self.makeDir(directory)
@@ -139,19 +139,6 @@ class ValidityOutputGenerator(OutputGenerator):
fp.close()
- # Create plain-text validity include - interim measure
- if usages and len(usages) > 0:
- filename = self.genOpts.directory + '/' + basename + '.txt'
- self.logMsg('diag', '# Generating plain-text include file:', filename)
- fp = open(filename, 'w')
-
- # Add each plain-text tag
- if usages:
- for usage in usages:
- write('* ' + usage, file=fp)
-
- fp.close()
-
#
# Check if the parameter passed in is a pointer
def paramIsPointer(self, param):
@@ -465,10 +452,6 @@ class ValidityOutputGenerator(OutputGenerator):
struct = self.registry.tree.find("types/type[@name='" + structname + "']")
params = struct.findall('member')
- validity = struct.find('validity')
-
- if validity is not None:
- return False
for param in params:
paramname = param.find('name')
@@ -716,7 +699,7 @@ class ValidityOutputGenerator(OutputGenerator):
#
# Generate all the valid usage information for a given struct or command
- def makeValidUsageStatements(self, cmd, blockname, params, usages):
+ def makeValidUsageStatements(self, cmd, blockname, params):
# Start the asciidoc block for this
asciidoc = ''
@@ -869,10 +852,6 @@ class ValidityOutputGenerator(OutputGenerator):
# Find the common ancestor of all objects referenced in this command
asciidoc += self.makeAsciiDocHandlesCommonAncestor(handles, params)
- # Include the plain-text validation language from the usages[] array
- if len(usages) > 0:
- asciidoc += 'include::../' + blockname + '.txt[]\n'
-
# In case there's nothing to report, return None
if asciidoc == '':
return None
@@ -991,23 +970,14 @@ class ValidityOutputGenerator(OutputGenerator):
#
# Get all the parameters
params = cmdinfo.elem.findall('param')
- usageelements = cmdinfo.elem.findall('validity/usage')
- usages = []
- for usage in usageelements:
- usages.append(usage.text)
- for usage in cmdinfo.additionalValidity:
- usages.append(usage.text)
- for usage in cmdinfo.removedValidity:
- usages.remove(usage.text)
-
- validity = self.makeValidUsageStatements(cmdinfo.elem, name, params, usages)
+ validity = self.makeValidUsageStatements(cmdinfo.elem, name, params)
threadsafety = self.makeThreadSafetyBlock(cmdinfo.elem, 'param')
commandpropertiesentry = self.makeCommandPropertiesTableEntry(cmdinfo.elem, name)
successcodes = self.makeSuccessCodes(cmdinfo.elem, name)
errorcodes = self.makeErrorCodes(cmdinfo.elem, name)
- self.writeInclude('protos', name, validity, usages, threadsafety, commandpropertiesentry, successcodes, errorcodes)
+ self.writeInclude('protos', name, validity, threadsafety, commandpropertiesentry, successcodes, errorcodes)
#
# Struct Generation
@@ -1018,23 +988,13 @@ class ValidityOutputGenerator(OutputGenerator):
if typeinfo.elem.attrib.get('returnedonly') is None:
params = typeinfo.elem.findall('member')
- usageelements = typeinfo.elem.findall('validity/usage')
- usages = []
-
- for usage in usageelements:
- usages.append(usage.text)
- for usage in typeinfo.additionalValidity:
- usages.append(usage.text)
- for usage in typeinfo.removedValidity:
- usages.remove(usage.text)
-
- validity = self.makeValidUsageStatements(typeinfo.elem, typename, params, usages)
+ validity = self.makeValidUsageStatements(typeinfo.elem, typename, params)
threadsafety = self.makeThreadSafetyBlock(typeinfo.elem, 'member')
- self.writeInclude('structs', typename, validity, usages, threadsafety, None, None, None)
+ self.writeInclude('structs', typename, validity, threadsafety, None, None, None)
else:
# Still generate files for return only structs, in case this state changes later
- self.writeInclude('structs', typename, None, None, None, None, None, None)
+ self.writeInclude('structs', typename, None, None, None, None, None)
#
# Group (e.g. C "enum" type) generation.
diff --git a/src/spec/vk.xml b/src/spec/vk.xml
index 7fcb2ebc..8b622b4e 100644
--- a/src/spec/vk.xml
+++ b/src/spec/vk.xml
@@ -104,7 +104,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
// Vulkan 1.0 version number
#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)
// Version of this file
-#define VK_HEADER_VERSION 31
+#define VK_HEADER_VERSION 32
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
@@ -414,8 +414,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
float height
float minDepth
float maxDepth
-
-
VkOffset2D offset
@@ -465,8 +463,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const char* pEngineName
uint32_t engineVersion
uint32_t apiVersion
-
-
void* pUserData
@@ -475,8 +471,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
PFN_vkFreeFunction pfnFree
PFN_vkInternalAllocationNotification pfnInternalAllocation
PFN_vkInternalFreeNotification pfnInternalFree
-
-
VkStructureType sType
@@ -485,8 +479,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t queueFamilyIndex
uint32_t queueCount
const float* pQueuePriorities
-
-
VkStructureType sType
@@ -499,8 +491,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t enabledExtensionCount
const char* const* ppEnabledExtensionNames
const VkPhysicalDeviceFeatures* pEnabledFeatures
-
-
VkStructureType sType
@@ -511,8 +501,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const char* const* ppEnabledLayerNames
uint32_t enabledExtensionCount
const char* const* ppEnabledExtensionNames
-
-
VkQueueFlags queueFlags
@@ -531,8 +519,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const void* pNext
VkDeviceSize allocationSize
uint32_t memoryTypeIndex
-
-
VkDeviceSize size
@@ -565,8 +551,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceMemory memory
VkDeviceSize offset
VkDeviceSize size
-
-
VkFormatFeatureFlags linearTilingFeatures
@@ -584,8 +568,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBuffer buffer
VkDeviceSize offset
VkDeviceSize range
-
-
VkSampler sampler
@@ -603,8 +585,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkDescriptorImageInfo* pImageInfo
const VkDescriptorBufferInfo* pBufferInfo
const VkBufferView* pTexelBufferView
-
-
VkStructureType sType
@@ -616,8 +596,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t dstBinding
uint32_t dstArrayElement
uint32_t descriptorCount
-
-
VkStructureType sType
@@ -628,8 +606,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkSharingMode sharingMode
uint32_t queueFamilyIndexCount
const uint32_t* pQueueFamilyIndices
-
-
VkStructureType sType
@@ -644,16 +620,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImageAspectFlags aspectMask
uint32_t mipLevel
uint32_t arrayLayer
-
-
VkImageAspectFlags aspectMask
uint32_t mipLevel
uint32_t baseArrayLayer
uint32_t layerCount
-
-
VkImageAspectFlags aspectMask
@@ -661,8 +633,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t levelCount
uint32_t baseArrayLayer
uint32_t layerCount
-
-
VkStructureType sType
@@ -680,8 +650,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBuffer buffer
VkDeviceSize offset
VkDeviceSize size
-
-
VkStructureType sType
@@ -694,8 +662,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t dstQueueFamilyIndex
VkImage image
VkImageSubresourceRange subresourceRange
-
-
VkStructureType sType
@@ -713,8 +679,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t queueFamilyIndexCount
const uint32_t* pQueueFamilyIndices
VkImageLayout initialLayout
-
-
VkDeviceSize offset
@@ -732,8 +696,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkFormat format
VkComponentMapping components
VkImageSubresourceRange subresourceRange
-
-
VkDeviceSize srcOffset
@@ -746,8 +708,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceMemory memory
VkDeviceSize memoryOffset
VkSparseMemoryBindFlagsflags
-
-
VkImageSubresource subresource
@@ -756,8 +716,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceMemory memory
VkDeviceSize memoryOffset
VkSparseMemoryBindFlagsflags
-
-
VkBuffer buffer
@@ -768,8 +726,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImage image
uint32_t bindCount
const VkSparseMemoryBind* pBinds
-
-
VkImage image
@@ -802,8 +758,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkOffset3D srcOffsets[2]
VkImageSubresourceLayers dstSubresource
VkOffset3D dstOffsets[2]
-
-
VkDeviceSize bufferOffset
@@ -812,8 +766,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImageSubresourceLayers imageSubresource
VkOffset3D imageOffset
VkExtent3D imageExtent
-
-
VkImageSubresourceLayers srcSubresource
@@ -821,8 +773,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImageSubresourceLayers dstSubresource
VkOffset3D dstOffset
VkExtent3D extent
-
-
VkStructureType sType
@@ -830,8 +780,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkShaderModuleCreateFlags flags
size_t codeSize
const uint32_t* pCode
-
-
uint32_t binding
@@ -839,8 +787,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t descriptorCount
VkShaderStageFlags stageFlags
const VkSampler* pImmutableSamplers
-
-
VkStructureType sType
@@ -852,8 +798,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDescriptorType type
uint32_t descriptorCount
-
-
VkStructureType sType
@@ -862,8 +806,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t maxSets
uint32_t poolSizeCount
const VkDescriptorPoolSize* pPoolSizes
-
-
VkStructureType sType
@@ -871,23 +813,17 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDescriptorPool descriptorPool
uint32_t descriptorSetCount
const VkDescriptorSetLayout* pSetLayouts
-
-
uint32_t constantID
uint32_t offset
size_t size
-
-
uint32_t mapEntryCount
- const VkSpecializationMapEntry* pMapEntries
+ const VkSpecializationMapEntry* pMapEntries
size_t dataSize
const void* pData
-
-
VkStructureType sType
@@ -897,8 +833,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkShaderModule module
const char* pName
const VkSpecializationInfo* pSpecializationInfo
-
-
VkStructureType sType
@@ -908,23 +842,17 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkPipelineLayout layout
VkPipeline basePipelineHandle
int32_t basePipelineIndex
-
-
uint32_t binding
uint32_t stride
VkVertexInputRate inputRate
-
-
uint32_t location
uint32_t binding
VkFormat format
uint32_t offset
-
-
VkStructureType sType
@@ -934,8 +862,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkVertexInputBindingDescription* pVertexBindingDescriptions
uint32_t vertexAttributeDescriptionCount
const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
-
-
VkStructureType sType
@@ -943,16 +869,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkPipelineInputAssemblyStateCreateFlags flags
VkPrimitiveTopology topology
VkBool32 primitiveRestartEnable
-
-
VkStructureType sType
const void* pNext
VkPipelineTessellationStateCreateFlags flags
uint32_t patchControlPoints
-
-
VkStructureType sType
@@ -962,8 +884,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkViewport* pViewports
uint32_t scissorCount
const VkRect2D* pScissors
-
-
VkStructureType sType
@@ -979,8 +899,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
float depthBiasClamp
float depthBiasSlopeFactor
float lineWidth
-
-
VkStructureType sType
@@ -992,8 +910,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkSampleMask* pSampleMask
VkBool32 alphaToCoverageEnable
VkBool32 alphaToOneEnable
-
-
VkBool32 blendEnable
@@ -1004,8 +920,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBlendFactor dstAlphaBlendFactor
VkBlendOp alphaBlendOp
VkColorComponentFlags colorWriteMask
-
-
VkStructureType sType
@@ -1016,8 +930,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t attachmentCount
const VkPipelineColorBlendAttachmentState* pAttachments
float blendConstants[4]
-
-
VkStructureType sType
@@ -1048,8 +960,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkStencilOpState back
float minDepthBounds
float maxDepthBounds
-
-
VkStructureType sType
@@ -1071,8 +981,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t subpass
VkPipeline basePipelineHandle
int32_t basePipelineIndex
-
-
VkStructureType sType
@@ -1080,15 +988,11 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkPipelineCacheCreateFlags flags
size_t initialDataSize
const void* pInitialData
-
-
VkShaderStageFlags stageFlags
uint32_t offset
uint32_t size
-
-
VkStructureType sType
@@ -1098,8 +1002,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkDescriptorSetLayout* pSetLayouts
uint32_t pushConstantRangeCount
const VkPushConstantRange* pPushConstantRanges
-
-
VkStructureType sType
@@ -1120,16 +1022,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
float maxLod
VkBorderColor borderColor
VkBool32 unnormalizedCoordinates
-
-
VkStructureType sType
const void* pNext
VkCommandPoolCreateFlags flags
uint32_t queueFamilyIndex
-
-
VkStructureType sType
@@ -1137,8 +1035,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkCommandPool commandPool
VkCommandBufferLevel level
uint32_t commandBufferCount
-
-
VkStructureType sType
@@ -1149,16 +1045,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBool32 occlusionQueryEnable
VkQueryControlFlags queryFlags
VkQueryPipelineStatisticFlags pipelineStatistics
-
-
VkStructureType sType
const void* pNext
VkCommandBufferUsageFlags flags
const VkCommandBufferInheritanceInfo* pInheritanceInfo
-
-
VkStructureType sType
@@ -1167,9 +1059,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkFramebuffer framebuffer
VkRect2D renderArea
uint32_t clearValueCount
- const VkClearValue* pClearValues
-
-
+ const VkClearValue* pClearValues
float float32[4]
@@ -1179,8 +1069,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
float depth
uint32_t stencil
-
-
VkClearColorValue color
@@ -1190,8 +1078,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImageAspectFlags aspectMask
uint32_t colorAttachment
VkClearValue clearValue
-
-
VkAttachmentDescriptionFlags flags
@@ -1203,14 +1089,10 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkAttachmentStoreOp stencilStoreOp
VkImageLayout initialLayout
VkImageLayout finalLayout
-
-
uint32_t attachment
VkImageLayout layout
-
-
VkSubpassDescriptionFlags flags
@@ -1223,8 +1105,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkAttachmentReference* pDepthStencilAttachment
uint32_t preserveAttachmentCount
const uint32_t* pPreserveAttachments
-
-
uint32_t srcSubpass
@@ -1234,8 +1114,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkAccessFlags srcAccessMask
VkAccessFlags dstAccessMask
VkDependencyFlags dependencyFlags
-
-
VkStructureType sType
@@ -1247,8 +1125,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkSubpassDescription* pSubpasses
uint32_t dependencyCount
const VkSubpassDependency* pDependencies
-
-
VkStructureType sType
@@ -1316,8 +1192,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBool32 sparseResidencyAliased
VkBool32 variableMultisampleRate
VkBool32 inheritedQueries
-
-
VkBool32 residencyStandard2DBlockShape
@@ -1455,8 +1329,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkQueryType queryType
uint32_t queryCount
VkQueryPipelineStatisticFlags pipelineStatistics
-
-
VkStructureType sType
@@ -1468,16 +1340,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t width
uint32_t height
uint32_t layers
-
-
uint32_t vertexCount
uint32_t instanceCount
uint32_t firstVertex
uint32_t firstInstance
-
-
uint32_t indexCount
@@ -1485,15 +1353,11 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t firstIndex
int32_t vertexOffset
uint32_t firstInstance
-
-
uint32_t x
uint32_t y
uint32_t z
-
-
VkStructureType sType
@@ -1505,8 +1369,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkCommandBuffer* pCommandBuffers
uint32_t signalSemaphoreCount
const VkSemaphore* pSignalSemaphores
-
-
@@ -1535,8 +1397,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const void* pNext
VkDisplayModeCreateFlagsKHR flags
VkDisplayModeParametersKHR parameters
-
-
VkDisplayPlaneAlphaFlagsKHR supportedAlpha
@@ -1560,8 +1420,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
float globalAlpha
VkDisplayPlaneAlphaFlagBitsKHR alphaMode
VkExtent2D imageExtent
-
-
VkStructureType sType
@@ -1569,8 +1427,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkRect2D srcRect
VkRect2D dstRect
VkBool32 persistent
-
-
uint32_t minImageCount
@@ -1589,8 +1445,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const void* pNext
VkAndroidSurfaceCreateFlagsKHR flags
ANativeWindow* window
-
-
VkStructureType sType
@@ -1650,8 +1504,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkPresentModeKHR presentMode
VkBool32 clipped
VkSwapchainKHR oldSwapchain
-
-
VkStructureType sType
@@ -1662,8 +1514,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkSwapchainKHR* pSwapchains
const uint32_t* pImageIndices
VkResult* pResults
-
-
VkStructureType sType
@@ -1709,23 +1559,17 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkStructureType sType
const void* pNext
VkBool32 dedicatedAllocation
-
-
VkStructureType sType
const void* pNext
VkBool32 dedicatedAllocation
-
-
VkStructureType sType
const void* pNext
VkImage image
VkBuffer buffer
-
-
VkImageFormatProperties imageFormatProperties
@@ -2603,8 +2447,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
void vkDestroyInstance
VkInstance instance
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkEnumeratePhysicalDevices
@@ -2670,8 +2512,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
void vkDestroyDevice
VkDevice device
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkEnumerateInstanceLayerProperties
@@ -2683,8 +2523,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const char* pLayerName
uint32_t* pPropertyCount
VkExtensionProperties* pProperties
-
-
VkResult vkEnumerateDeviceLayerProperties
@@ -2698,8 +2536,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const char* pLayerName
uint32_t* pPropertyCount
VkExtensionProperties* pProperties
-
-
void vkGetDeviceQueue
@@ -2707,8 +2543,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t queueFamilyIndex
uint32_t queueIndex
VkQueue* pQueue
-
-
VkResult vkQueueSubmit
@@ -2716,8 +2550,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t submitCount
const VkSubmitInfo* pSubmits
VkFence fence
-
-
VkResult vkQueueWaitIdle
@@ -2736,16 +2568,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkMemoryAllocateInfo* pAllocateInfo
const VkAllocationCallbacks* pAllocator
VkDeviceMemory* pMemory
-
-
void vkFreeMemory
VkDevice device
VkDeviceMemory memory
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkMapMemory
@@ -2755,15 +2583,11 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceSize size
VkMemoryMapFlags flags
void** ppData
-
-
void vkUnmapMemory
VkDevice device
VkDeviceMemory memory
-
-
VkResult vkFlushMappedMemoryRanges
@@ -2782,8 +2606,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkDeviceMemory memory
VkDeviceSize* pCommittedMemoryInBytes
-
-
void vkGetBufferMemoryRequirements
@@ -2797,8 +2619,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBuffer buffer
VkDeviceMemory memory
VkDeviceSize memoryOffset
-
-
void vkGetImageMemoryRequirements
@@ -2812,8 +2632,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImage image
VkDeviceMemory memory
VkDeviceSize memoryOffset
-
-
void vkGetImageSparseMemoryRequirements
@@ -2832,8 +2650,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImageTiling tiling
uint32_t* pPropertyCount
VkSparseImageFormatProperties* pProperties
-
-
VkResult vkQueueBindSparse
@@ -2841,8 +2657,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t bindInfoCount
const VkBindSparseInfo* pBindInfo
VkFence fence
-
-
VkResult vkCreateFence
@@ -2856,16 +2670,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkFence fence
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkResetFences
VkDevice device
uint32_t fenceCount
const VkFence* pFences
-
-
VkResult vkGetFenceStatus
@@ -2892,8 +2702,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkSemaphore semaphore
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreateEvent
@@ -2907,8 +2715,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkEvent event
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkGetEventStatus
@@ -2924,8 +2730,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkResult vkResetEvent
VkDevice device
VkEvent event
-
-
VkResult vkCreateQueryPool
@@ -2939,8 +2743,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkQueryPool queryPool
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkGetQueryPoolResults
@@ -2952,8 +2754,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
void* pData
VkDeviceSize stride
VkQueryResultFlags flags
-
-
VkResult vkCreateBuffer
@@ -2961,16 +2761,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkBufferCreateInfo* pCreateInfo
const VkAllocationCallbacks* pAllocator
VkBuffer* pBuffer
-
-
void vkDestroyBuffer
VkDevice device
VkBuffer buffer
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreateBufferView
@@ -2984,8 +2780,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkBufferView bufferView
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreateImage
@@ -2993,16 +2787,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkImageCreateInfo* pCreateInfo
const VkAllocationCallbacks* pAllocator
VkImage* pImage
-
-
void vkDestroyImage
VkDevice device
VkImage image
const VkAllocationCallbacks* pAllocator
-
-
void vkGetImageSubresourceLayout
@@ -3010,8 +2800,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImage image
const VkImageSubresource* pSubresource
VkSubresourceLayout* pLayout
-
-
VkResult vkCreateImageView
@@ -3025,8 +2813,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkImageView imageView
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreateShaderModule
@@ -3040,8 +2826,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkShaderModule shaderModule
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreatePipelineCache
@@ -3055,8 +2839,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkPipelineCache pipelineCache
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkGetPipelineCacheData
@@ -3071,8 +2853,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkPipelineCache dstCache
uint32_t srcCacheCount
const VkPipelineCache* pSrcCaches
-
-
VkResult vkCreateGraphicsPipelines
@@ -3082,8 +2862,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkGraphicsPipelineCreateInfo* pCreateInfos
const VkAllocationCallbacks* pAllocator
VkPipeline* pPipelines
-
-
VkResult vkCreateComputePipelines
@@ -3093,16 +2871,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkComputePipelineCreateInfo* pCreateInfos
const VkAllocationCallbacks* pAllocator
VkPipeline* pPipelines
-
-
void vkDestroyPipeline
VkDevice device
VkPipeline pipeline
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreatePipelineLayout
@@ -3116,8 +2890,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkPipelineLayout pipelineLayout
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreateSampler
@@ -3131,8 +2903,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkSampler sampler
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreateDescriptorSetLayout
@@ -3146,8 +2916,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkDescriptorSetLayout descriptorSetLayout
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreateDescriptorPool
@@ -3161,8 +2929,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkDescriptorPool descriptorPool
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkResetDescriptorPool
@@ -3172,8 +2938,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
any sname:VkDescriptorSet objects allocated from pname:descriptorPool
-
-
VkResult vkAllocateDescriptorSets
@@ -3187,8 +2951,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDescriptorPool descriptorPool
uint32_t descriptorSetCount
const VkDescriptorSet* pDescriptorSets
-
-
void vkUpdateDescriptorSets
@@ -3210,8 +2972,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkFramebuffer framebuffer
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkCreateRenderPass
@@ -3225,8 +2985,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkRenderPass renderPass
const VkAllocationCallbacks* pAllocator
-
-
void vkGetRenderAreaGranularity
@@ -3246,16 +3004,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkCommandPool commandPool
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkResetCommandPool
VkDevice device
VkCommandPool commandPool
VkCommandPoolResetFlags flags
-
-
VkResult vkAllocateCommandBuffers
@@ -3269,45 +3023,33 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkCommandPool commandPool
uint32_t commandBufferCount
const VkCommandBuffer* pCommandBuffers
-
-
VkResult vkBeginCommandBuffer
VkCommandBuffer commandBuffer
const VkCommandBufferBeginInfo* pBeginInfo
-
-
VkResult vkEndCommandBuffer
VkCommandBuffer commandBuffer
-
-
VkResult vkResetCommandBuffer
VkCommandBuffer commandBuffer
VkCommandBufferResetFlags flags
-
-
void vkCmdBindPipeline
VkCommandBuffer commandBuffer
VkPipelineBindPoint pipelineBindPoint
VkPipeline pipeline
-
-
void vkCmdSetViewport
VkCommandBuffer commandBuffer
uint32_t firstViewport
uint32_t viewportCount
- const VkViewport* pViewports
-
-
+ const VkViewport* pViewports
void vkCmdSetScissor
@@ -3315,15 +3057,11 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t firstScissor
uint32_t scissorCount
const VkRect2D* pScissors
-
-
void vkCmdSetLineWidth
VkCommandBuffer commandBuffer
float lineWidth
-
-
void vkCmdSetDepthBias
@@ -3331,47 +3069,35 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
float depthBiasConstantFactor
float depthBiasClamp
float depthBiasSlopeFactor
-
-
void vkCmdSetBlendConstants
VkCommandBuffer commandBuffer
const float blendConstants[4]
-
-
void vkCmdSetDepthBounds
VkCommandBuffer commandBuffer
float minDepthBounds
float maxDepthBounds
-
-
void vkCmdSetStencilCompareMask
VkCommandBuffer commandBuffer
VkStencilFaceFlags faceMask
uint32_t compareMask
-
-
void vkCmdSetStencilWriteMask
VkCommandBuffer commandBuffer
VkStencilFaceFlags faceMask
uint32_t writeMask
-
-
void vkCmdSetStencilReference
VkCommandBuffer commandBuffer
VkStencilFaceFlags faceMask
uint32_t reference
-
-
void vkCmdBindDescriptorSets
@@ -3383,8 +3109,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkDescriptorSet* pDescriptorSets
uint32_t dynamicOffsetCount
const uint32_t* pDynamicOffsets
-
-
void vkCmdBindIndexBuffer
@@ -3392,8 +3116,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBuffer buffer
VkDeviceSize offset
VkIndexType indexType
-
-
void vkCmdBindVertexBuffers
@@ -3402,8 +3124,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t bindingCount
const VkBuffer* pBuffers
const VkDeviceSize* pOffsets
-
-
void vkCmdDraw
@@ -3412,8 +3132,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t instanceCount
uint32_t firstVertex
uint32_t firstInstance
-
-
void vkCmdDrawIndexed
@@ -3423,8 +3141,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t firstIndex
int32_t vertexOffset
uint32_t firstInstance
-
-
void vkCmdDrawIndirect
@@ -3433,8 +3149,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceSize offset
uint32_t drawCount
uint32_t stride
-
-
void vkCmdDrawIndexedIndirect
@@ -3443,8 +3157,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceSize offset
uint32_t drawCount
uint32_t stride
-
-
void vkCmdDispatch
@@ -3452,16 +3164,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t x
uint32_t y
uint32_t z
-
-
void vkCmdDispatchIndirect
VkCommandBuffer commandBuffer
VkBuffer buffer
VkDeviceSize offset
-
-
void vkCmdCopyBuffer
@@ -3470,8 +3178,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBuffer dstBuffer
uint32_t regionCount
const VkBufferCopy* pRegions
-
-
void vkCmdCopyImage
@@ -3482,8 +3188,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImageLayout dstImageLayout
uint32_t regionCount
const VkImageCopy* pRegions
-
-
void vkCmdBlitImage
@@ -3495,8 +3199,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t regionCount
const VkImageBlit* pRegions
VkFilter filter
-
-
void vkCmdCopyBufferToImage
@@ -3506,8 +3208,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImageLayout dstImageLayout
uint32_t regionCount
const VkBufferImageCopy* pRegions
-
-
void vkCmdCopyImageToBuffer
@@ -3517,8 +3217,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBuffer dstBuffer
uint32_t regionCount
const VkBufferImageCopy* pRegions
-
-
void vkCmdUpdateBuffer
@@ -3527,8 +3225,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceSize dstOffset
VkDeviceSize dataSize
const void* pData
-
-
void vkCmdFillBuffer
@@ -3537,8 +3233,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceSize dstOffset
VkDeviceSize size
uint32_t data
-
-
void vkCmdClearColorImage
@@ -3548,8 +3242,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkClearColorValue* pColor
uint32_t rangeCount
const VkImageSubresourceRange* pRanges
-
-
void vkCmdClearDepthStencilImage
@@ -3559,8 +3251,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkClearDepthStencilValue* pDepthStencil
uint32_t rangeCount
const VkImageSubresourceRange* pRanges
-
-
void vkCmdClearAttachments
@@ -3569,8 +3259,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkClearAttachment* pAttachments
uint32_t rectCount
const VkClearRect* pRects
-
-
void vkCmdResolveImage
@@ -3581,24 +3269,18 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkImageLayout dstImageLayout
uint32_t regionCount
const VkImageResolve* pRegions
-
-
void vkCmdSetEvent
VkCommandBuffer commandBuffer
VkEvent event
VkPipelineStageFlags stageMask
-
-
void vkCmdResetEvent
VkCommandBuffer commandBuffer
VkEvent event
VkPipelineStageFlags stageMask
-
-
void vkCmdWaitEvents
@@ -3613,8 +3295,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
const VkBufferMemoryBarrier* pBufferMemoryBarriers
uint32_t imageMemoryBarrierCount
const VkImageMemoryBarrier* pImageMemoryBarriers
-
-
void vkCmdPipelineBarrier
@@ -3635,16 +3315,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkQueryPool queryPool
uint32_t query
VkQueryControlFlags flags
-
-
void vkCmdEndQuery
VkCommandBuffer commandBuffer
VkQueryPool queryPool
uint32_t query
-
-
void vkCmdResetQueryPool
@@ -3652,8 +3328,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkQueryPool queryPool
uint32_t firstQuery
uint32_t queryCount
-
-
void vkCmdWriteTimestamp
@@ -3661,8 +3335,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkPipelineStageFlagBits pipelineStage
VkQueryPool queryPool
uint32_t query
-
-
void vkCmdCopyQueryPoolResults
@@ -3674,8 +3346,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceSize dstOffset
VkDeviceSize stride
VkQueryResultFlags flags
-
-
void vkCmdPushConstants
@@ -3685,37 +3355,27 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t offset
uint32_t size
const void* pValues
-
-
void vkCmdBeginRenderPass
VkCommandBuffer commandBuffer
const VkRenderPassBeginInfo* pRenderPassBegin
VkSubpassContents contents
-
-
void vkCmdNextSubpass
VkCommandBuffer commandBuffer
VkSubpassContents contents
-
-
void vkCmdEndRenderPass
VkCommandBuffer commandBuffer
-
-
void vkCmdExecuteCommands
VkCommandBuffer commandBuffer
uint32_t commandBufferCount
const VkCommandBuffer* pCommandBuffers
-
-
VkResult vkCreateAndroidSurfaceKHR
@@ -3742,8 +3402,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t planeIndex
uint32_t* pDisplayCount
VkDisplayKHR* pDisplays
-
-
VkResult vkGetDisplayModePropertiesKHR
@@ -3794,16 +3452,12 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkPhysicalDevice physicalDevice
uint32_t queueFamilyIndex
MirConnection* connection
-
-
void vkDestroySurfaceKHR
VkInstance instance
VkSurfaceKHR surface
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkGetPhysicalDeviceSurfaceSupportKHR
@@ -3811,8 +3465,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t queueFamilyIndex
VkSurfaceKHR surface
VkBool32* pSupported
-
-
VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR
@@ -3846,8 +3498,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDevice device
VkSwapchainKHR swapchain
const VkAllocationCallbacks* pAllocator
-
-
VkResult vkGetSwapchainImagesKHR
@@ -3864,15 +3514,11 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkSemaphore semaphore
VkFence fence
uint32_t* pImageIndex
-
-
VkResult vkQueuePresentKHR
VkQueue queue
const VkPresentInfoKHR* pPresentInfo
-
-
VkResult vkCreateWaylandSurfaceKHR
@@ -3886,8 +3532,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkPhysicalDevice physicalDevice
uint32_t queueFamilyIndex
struct wl_display* display
-
-
VkResult vkCreateWin32SurfaceKHR
@@ -3900,8 +3544,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR
VkPhysicalDevice physicalDevice
uint32_t queueFamilyIndex
-
-
VkResult vkCreateXlibSurfaceKHR
@@ -3916,8 +3558,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t queueFamilyIndex
Display* dpy
VisualID visualID
-
-
VkResult vkCreateXcbSurfaceKHR
@@ -3932,8 +3572,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
uint32_t queueFamilyIndex
xcb_connection_t* connection
xcb_visualid_t visual_id
-
-
VkResult vkCreateDebugReportCallbackEXT
@@ -3947,8 +3585,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkInstance instance
VkDebugReportCallbackEXT callback
const VkAllocationCallbacks* pAllocator
-
-
void vkDebugReportMessageEXT
@@ -3960,22 +3596,16 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
int32_t messageCode
const char* pLayerPrefix
const char* pMessage
-
-
VkResult vkDebugMarkerSetObjectNameEXT
VkDevice device
VkDebugMarkerObjectNameInfoEXT* pNameInfo
-
-
VkResult vkDebugMarkerSetObjectTagEXT
VkDevice device
VkDebugMarkerObjectTagInfoEXT* pTagInfo
-
-
void vkCmdDebugMarkerBeginEXT
@@ -3985,8 +3615,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
void vkCmdDebugMarkerEndEXT
VkCommandBuffer commandBuffer
-
-
void vkCmdDebugMarkerInsertEXT
@@ -4010,8 +3638,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceMemory memory
VkExternalMemoryHandleTypeFlagsNV handleType
HANDLE* pHandle
-
-
void vkCmdDrawIndirectCountAMD
@@ -4022,8 +3648,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceSize countBufferOffset
uint32_t maxDrawCount
uint32_t stride
-
-
void vkCmdDrawIndexedIndirectCountAMD
@@ -4034,8 +3658,6 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
VkDeviceSize countBufferOffset
uint32_t maxDrawCount
uint32_t stride
-
-
@@ -4588,7 +4210,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
-
+
@@ -4600,7 +4222,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
-
+
@@ -4823,5 +4445,89 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/vulkan/vulkan.h b/src/vulkan/vulkan.h
index 0cad6bf9..694527c3 100644
--- a/src/vulkan/vulkan.h
+++ b/src/vulkan/vulkan.h
@@ -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 31
+#define VK_HEADER_VERSION 32
#define VK_NULL_HANDLE 0
@@ -4000,7 +4000,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
#endif
#define VK_AMD_negative_viewport_height 1
-#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 0
+#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
@@ -4010,7 +4010,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
#define VK_AMD_shader_ballot 1
-#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 0
+#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"