Change log for October 14, 2016 Vulkan 1.0.31 spec update:

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

Github Issues:

  * Clarifying wording of slink:VkGraphicsPipelineCreateInfo parameters and
    adding Valid Usage statements on render pass compatibility to the
    <<drawing,drawing commands>> (public issue 375).
  * Replace 'texel size' with 'element size', and add a definition to the
    glossary (public issue 382).
  * Clarify the description of ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR to
    make it accurate, but still generic (non-exhaustive). Remove two Valid
    Usage statements describing error situations that will return
    ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR (public issue 387).
  * Fix refBegin tag for elink:VkDebugReportFlagBitsEXT (public issue 392).
  * The <<interfaces-builtin-variables,built-in variable>> code:PrimitiveId
    in a fragment shader needs the code:Input storage class (public issue
    393).

Internal Issues:

  * Unused ({y,z} and {height,depth} for 1D, z and depth for 2D) offsets
    must be 0 and unused extents must be 1. Added basic offset and extent
    valid usage for slink:VkImageResolve to match that of slink:VkImageCopy
    (internal issue 413).
  * Describe what flink:vkGetPhysicalDeviceImageFormatProperties returns for
    pname:sampleCounts when for pname:usage only includes transfer-related
    flags (internal issue 478).
  * Remove mention of
    slink:VkPhysicalDeviceLimits::pname:maxImageArrayLayers from the valid
    usage for slink:VkImageCreateInfo::pname:arrayLayers (internal issue
    520).
  * 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).
This commit is contained in:
Jon Leech 2016-10-14 04:31:51 -07:00
parent 49adf2575c
commit b97259786d
18 changed files with 196 additions and 46 deletions

View File

@ -1481,3 +1481,42 @@ Internal Issues:
* Modify the <<features-supported-sample-counts,Supported Sample Counts>>
language to allow multisampled depth-stencil images (internal issue
521).
-----------------------------------------------------
Change log for October 14, 2016 Vulkan 1.0.31 spec update:
* Bump API patch number and header version number to 31 for this update.
Github Issues:
* Clarifying wording of slink:VkGraphicsPipelineCreateInfo parameters and
adding Valid Usage statements on render pass compatibility to the
<<drawing,drawing commands>> (public issue 375).
* Replace 'texel size' with 'element size', and add a definition to the
glossary (public issue 382).
* Clarify the description of ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR to
make it accurate, but still generic (non-exhaustive). Remove two Valid
Usage statements describing error situations that will return
ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR (public issue 387).
* Fix refBegin tag for elink:VkDebugReportFlagBitsEXT (public issue 392).
* The <<interfaces-builtin-variables,built-in variable>> code:PrimitiveId
in a fragment shader needs the code:Input storage class (public issue
393).
Internal Issues:
* Unused ({y,z} and {height,depth} for 1D, z and depth for 2D) offsets
must be 0 and unused extents must be 1. Added basic offset and extent
valid usage for slink:VkImageResolve to match that of slink:VkImageCopy
(internal issue 413).
* Describe what flink:vkGetPhysicalDeviceImageFormatProperties returns for
pname:sampleCounts when for pname:usage only includes transfer-related
flags (internal issue 478).
* Remove mention of
slink:VkPhysicalDeviceLimits::pname:maxImageArrayLayers from the valid
usage for slink:VkImageCreateInfo::pname:arrayLayers (internal issue
520).
* 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).

View File

@ -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.30
SPECREVISION = 1.0.31
SPECREMARK =
# Spec targets

View File

@ -272,6 +272,15 @@ Dynamic Uniform Buffer::
A uniform buffer whose offset is specified each time the uniform buffer
is bound to a command buffer via a descriptor set.
Dynamically Uniform::
See _Dynamically Uniform_ in section 2.2 ``Terms'' of the
<<spirv-spec,Khronos SPIR-V Specification>>.
Element Size::
The size (in bytes) used to store one element of an uncompressed format
or the size (in bytes) used to store one block of a block-compressed
format.
Explicitly-Enabled Layer::
A layer enabled by the application by adding it to the enabled layer
list in flink:vkCreateInstance or flink:vkCreateDevice.

View File

@ -49,7 +49,7 @@ include::../api/structs/VkDebugReportCallbackCreateInfoEXT.txt[]
Bits which can: be set include:
+
--
// refBegin VkDebugReportCallbackCreateInfoEXT Bitmask specifying events which cause a debug report callback
// refBegin VkDebugReportFlagBitsEXT Bitmask specifying events which cause a debug report callback
include::../api/enums/VkDebugReportFlagBitsEXT.txt[]
* ename:VK_DEBUG_REPORT_ERROR_BIT_EXT indicates an error that may cause

View File

@ -62,10 +62,5 @@ include::../../api/structs/VkAndroidSurfaceCreateInfoKHR.txt[]
* pname:window is a pointer to the code:ANativeWindow to associate the
surface with.
.Valid Usage
****
* pname:window must: not be in a connected state
****
include::../../validity/structs/VkAndroidSurfaceCreateInfoKHR.txt[]

View File

@ -14,6 +14,7 @@ surfaces) is displayed at a time, but multiple images can: be queued for
presentation.
An application renders to the image, and then queues the image for
presentation to the surface.
A native window cannot: be associated with more than one swapchain at a
time.
Further, swapchains cannot: be created for native windows that have a
@ -182,9 +183,6 @@ effects that require them to run for all pixels in the presentable image.
****
* pname:surface must: be a surface that is supported by the device as
determined using fname:vkGetPhysicalDeviceSurfaceSupportKHR
* The native window referred to by pname:surface must: not already be
associated with a swapchain other than pname:oldSwapchain, or with a
non-Vulkan graphics API surface
* pname:minImageCount must: be greater than or equal to the value returned
in the pname:minImageCount member of the sname:VkSurfaceCapabilitiesKHR
structure returned by fname:vkGetPhysicalDeviceSurfaceCapabilitiesKHR
@ -260,6 +258,10 @@ following sname:VkImageCreateInfo parameters:
The sname:VkSurfaceKHR associated with a swapchain must: not be destroyed
until after the swapchain is destroyed.
The native window referred to by pname:surface must: not already be
associated with a swapchain other than pname:oldSwapchain, or with a
non-Vulkan graphics API surface.
Like core functions, several WSI functions, including
fname:vkCreateSwapchainKHR return ename:VK_ERROR_DEVICE_LOST if the logical
device was lost.

View File

@ -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 pname:renderPass 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

View File

@ -157,7 +157,7 @@ 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 texel size in bytes is the same
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.
@ -165,8 +165,8 @@ Depth/stencil formats must: match exactly.
fname:vkCmdCopyImage allows copying between size-compatible compressed and
uncompressed internal formats.
Formats are size-compatible if the texel size of the uncompressed format is
equal to the compressed texel block size in bytes 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
@ -276,10 +276,6 @@ include::../api/structs/VkImageCopy.txt[]
data.
* pname:extent is the size in texels of the source image to copy in
pname:width, pname:height and pname:depth.
1D images use only pname:x and pname:width.
2D images use pname:x, pname:y, pname:width and pname:height.
3D images use pname:x, pname:y, pname:z, pname:width, pname:height and
pname:depth.
.Valid Usage
****
@ -302,18 +298,30 @@ include::../api/structs/VkImageCopy.txt[]
* pname:srcOffset.y and (pname:extent.height + pname:srcOffset.y) must:
both be greater than or equal to `0` and less than or equal to the
source image subresource height
** If the calling command's pname:srcImage is of type
ename:VK_IMAGE_TYPE_1D, then pname:srcOffset.y must: be `0` and
pname:extent.height must: be `1`.
* pname:srcOffset.z and (pname:extent.depth + pname:srcOffset.z) must:
both be greater than or equal to `0` and less than or equal to the
source image 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.z must: be `0` and pname:extent.depth must: be `1`.
* pname:dstOffset.x and (pname:extent.width + pname:dstOffset.x) must:
both be greater than or equal to `0` and less than or equal to the
destination image subresource width
* pname:dstOffset.y and (pname:extent.height + pname:dstOffset.y) must:
both be greater than or equal to `0` and less than or equal to the
destination image subresource height
** If the calling command's pname:dstImage is of type
ename:VK_IMAGE_TYPE_1D, then pname:dstOffset.y must: be `0` and
pname:extent.height must: be `1`.
* pname:dstOffset.z and (pname:extent.depth + pname:dstOffset.z) must:
both be greater than or equal to `0` and less than or equal to the
destination 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.z must: be `0` and pname:extent.depth must: be `1`.
* If the calling command's pname:srcImage is a compressed format image:
** all members of pname:srcOffset must: be a multiple of the corresponding
dimensions of the compressed texel block
@ -487,10 +495,6 @@ include::../api/structs/VkBufferImageCopy.txt[]
sub-region of the source or destination image data.
* pname:imageExtent is the size in texels of the image to copy in
pname:width, pname:height and pname:depth.
1D images use only pname:x and pname:width.
2D images use pname:x, pname:y, pname:width and pname:height.
3D images use pname:x, pname:y, pname:z, pname:width, pname:height and
pname:depth.
When copying to or from a depth or stencil aspect, the data in buffer memory
uses a layout that is a (mostly) tightly packed representation of the depth
@ -532,7 +536,7 @@ destination image.
.Valid Usage
****
* pname:bufferOffset must: be a multiple of the calling command's
sname:VkImage parameter's texel size
sname:VkImage parameter's format's element size
* pname:bufferOffset must: be a multiple of `4`
* pname:bufferRowLength must: be `0`, or greater than or equal to the
pname:width member of pname:imageExtent
@ -544,9 +548,18 @@ destination image.
* pname:imageOffset.y and (imageExtent.height + pname:imageOffset.y) must:
both be greater than or equal to `0` and less than or equal to the image
subresource height
** If the calling command's pname:srcImage (flink:vkCmdCopyImageToBuffer)
or pname:dstImage (flink:vkCmdCopyBufferToImage) is of type
ename:VK_IMAGE_TYPE_1D, then pname:imageOffset.y must: be `0` and
pname:imageExtent.height must: be `1`.
* pname:imageOffset.z and (imageExtent.depth + pname:imageOffset.z) must:
both be greater than or equal to `0` and less than or equal to the image
subresource depth
** 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`.
* If the calling command's sname:VkImage parameter is a compressed format
image:
** pname:bufferRowLength must: be a multiple of the compressed texel block
@ -597,9 +610,9 @@ imageHeight = region->bufferImageHeight;
if (imageHeight == 0)
imageHeight = region->imageExtent.height;
texelSize = <texel size taken from the src/dstImage>;
elementSize = <element size of the format of the src/dstImage>;
address of (x,y,z) = region->bufferOffset + (((z * imageHeight) + y) * rowLength + x) * texelSize;
address of (x,y,z) = region->bufferOffset + (((z * imageHeight) + y) * rowLength + x) * elementSize;
where x,y,z range from (0,0,0) to region->imageExtent.{width,height,depth}.
---------------------------------------------------
@ -889,18 +902,30 @@ the specified source and destination regions.
* pname:srcOffset[0].pname:y and pname:srcOffset[1].pname:y must: both be
greater than or equal to `0` and less than or equal to the source image
subresource height
** If the calling command's pname:srcImage is of type
ename:VK_IMAGE_TYPE_1D, then pname:srcOffset[0].y must: be `0` and
pname:srcOffset[1].y must: be `1`.
* pname:srcOffset[0].pname:z and pname:srcOffset[1].pname:z must: both be
greater than or equal to `0` and less than or equal to the source image
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: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
* pname:dstOffset[0].pname:y and pname:dstOffset[1].pname:y must: both be
greater than or equal to `0` and less than or equal to the destination
image subresource height
** If the calling command's pname:dstImage is of type
ename:VK_IMAGE_TYPE_1D, then pname:dstOffset[0].y must: be `0` and
pname:dstOffset[1].y must: be `1`.
* pname:dstOffset[0].pname:z and pname:dstOffset[1].pname:z must: both be
greater than or equal to `0` and less than or equal to the destination
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`.
****
include::../validity/structs/VkImageBlit.txt[]
@ -939,10 +964,6 @@ pname:srcOffset and pname:dstOffset select the initial x, y, and z offsets
in texels of the sub-regions of the source and destination image data.
pname:extent is the size in texels of the source image to resolve in
pname:width, pname:height and pname:depth.
1D images use only pname:x and pname:width.
2D images use pname:x, pname:y, pname:width and pname:height.
3D images use pname:x, pname:y, pname:z, pname:width, pname:height and
pname:depth.
Resolves are done layer by layer starting with pname:baseArrayLayer member
of pname:srcSubresource for the source and pname:dstSubresource for the
@ -1006,10 +1027,6 @@ include::../api/structs/VkImageResolve.txt[]
data.
* pname:extent is the size in texels of the source image to resolve in
pname:width, pname:height and pname:depth.
1D images use only pname:x and pname:width.
2D images use pname:x, pname:y, pname:width and pname:height.
3D images use pname:x, pname:y, pname:z, pname:width, pname:height and
pname:depth.
.Valid Usage
****
@ -1022,6 +1039,36 @@ include::../api/structs/VkImageResolve.txt[]
pname:baseArrayLayer and pname:layerCount members of both
pname:srcSubresource and pname:dstSubresource must: be `0` and `1`,
respectively
* pname:srcOffset.x and (pname:extent.width + pname:srcOffset.x) must:
both be greater than or equal to `0` and less than or equal to the
source image subresource width
* pname:srcOffset.y and (pname:extent.height + pname:srcOffset.y) must:
both be greater than or equal to `0` and less than or equal to the
source image subresource height
** If the calling command's pname:srcImage is of type
ename:VK_IMAGE_TYPE_1D, then pname:srcOffset.y must: be `0` and
pname:extent.height must: be `1`.
* pname:srcOffset.z and (pname:extent.depth + pname:srcOffset.z) must:
both be greater than or equal to `0` and less than or equal to the
source image 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.z must: be `0` and pname:extent.depth must: be `1`.
* pname:dstOffset.x and (pname:extent.width + pname:dstOffset.x) must:
both be greater than or equal to `0` and less than or equal to the
destination image subresource width
* pname:dstOffset.y and (pname:extent.height + pname:dstOffset.y) must:
both be greater than or equal to `0` and less than or equal to the
destination image subresource height
** If the calling command's pname:dstImage is of type
ename:VK_IMAGE_TYPE_1D, then pname:dstOffset.y must: be `0` and
pname:extent.height must: be `1`.
* pname:dstOffset.z and (pname:extent.depth + pname:dstOffset.z) must:
both be greater than or equal to `0` and less than or equal to the
destination 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.z must: be `0` and pname:extent.depth must: be `1`.
****
include::../validity/structs/VkImageResolve.txt[]

View File

@ -473,6 +473,14 @@ The assembled primitives execute the currently bound graphics pipeline.
.Valid Usage
****
* The current render pass must: be <<renderpass-compatibility,compatible>>
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
specified when creating the sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* For each set _n_ that is statically used by the sname:VkPipeline
currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor
set must: have been bound to _n_ at
@ -600,6 +608,14 @@ The assembled primitives execute the currently bound graphics pipeline.
.Valid Usage
****
* The current render pass must: be <<renderpass-compatibility,compatible>>
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
specified when creating the sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* For each set _n_ that is statically used by the sname:VkPipeline
currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor
set must: have been bound to _n_ at
@ -729,6 +745,14 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
feature is not enabled, all the pname:firstInstance members of the
sname:VkDrawIndirectCommand structures accessed by this command must: be
code:0
* The current render pass must: be <<renderpass-compatibility,compatible>>
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
specified when creating the sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* For each set _n_ that is statically used by the sname:VkPipeline
currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor
set must: have been bound to _n_ at
@ -894,6 +918,14 @@ located at pname:countBufferOffset and use this as the draw count.
feature is not enabled, all the pname:firstInstance members of the
sname:VkDrawIndirectCommand structures accessed by this command must: be
code:0
* The current render pass must: be <<renderpass-compatibility,compatible>>
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
specified when creating the sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* For each set _n_ that is statically used by the sname:VkPipeline
currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor
set must: have been bound to _n_ at
@ -1014,6 +1046,14 @@ If pname:drawCount is less than or equal to one, pname:stride is ignored.
feature is not enabled, all the pname:firstInstance members of the
sname:VkDrawIndexedIndirectCommand structures accessed by this command
must: be code:0
* The current render pass must: be <<renderpass-compatibility,compatible>>
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
specified when creating the sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* For each set _n_ that is statically used by the sname:VkPipeline
currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor
set must: have been bound to _n_ at
@ -1186,6 +1226,14 @@ located at pname:countBufferOffset and use this as the draw count.
feature is not enabled, all the pname:firstInstance members of the
sname:VkDrawIndexedIndirectCommand structures accessed by this command
must: be code:0
* The current render pass must: be <<renderpass-compatibility,compatible>>
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
specified when creating the sname:VkPipeline currently bound to
ename:VK_PIPELINE_BIND_POINT_GRAPHICS.
* For each set _n_ that is statically used by the sname:VkPipeline
currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor
set must: have been bound to _n_ at

View File

@ -491,7 +491,7 @@ properties of individual formats.
code:StorageImageWriteWithoutFormat capability.
* [[features-features-shaderUniformBufferArrayDynamicIndexing]]
pname:shaderUniformBufferArrayDynamicIndexing indicates whether arrays
of uniform buffers can: be indexed by dynamically uniform integer
of uniform buffers can: be indexed by _dynamically uniform_ integer
expressions in shader code.
If this feature is not enabled, resources with a descriptor type of
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
@ -2721,6 +2721,9 @@ This means that promoting one format to another with more bits per component
and/or additional components must: not occur for color formats.
Depth/stencil formats have more relaxed requirements as discussed
<<features-formats-depth-stencil,below>>.
Each format has an _element size_, the number of bytes used to stored one
element or one compressed block, with the value of the element size listed
in slink:VkFormat.
The representation of non-packed formats is that the first component
specified in the name of the format is in the lowest memory addresses and
@ -3864,6 +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.
[[features-extentperimagetype]]
=== Allowed Extent Values Based On Image Type

View File

@ -860,7 +860,8 @@ endif::VK_KHR_swapchain[]
ifdef::VK_KHR_surface[]
* ename:VK_ERROR_SURFACE_LOST_KHR A surface is no longer available.
* ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR The requested window is already
connected to a VkSurfaceKHR, or to some other non-Vulkan API.
in use by Vulkan or another API in a manner which prevents it from being
used again.
endif::VK_KHR_surface[]
ifdef::VK_KHR_swapchain[]
* ename:VK_ERROR_OUT_OF_DATE_KHR A surface has changed in such a way that

View File

@ -414,7 +414,7 @@ not cause the space required for that variable to extend outside the range
[eq]#[0, pname:maxPushConstantsSize)#.
Any variable in a push constant block that is declared as an array must:
only be accessed with dynamically uniform indices.
only be accessed with _dynamically uniform_ indices.
[[interfaces-resources-descset]]

View File

@ -381,12 +381,12 @@ 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 can: be
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 <<renderpass-compatibility,Render Pass Compatibility>> for more
information.
* pname:subpass is the index of the subpass in pname:renderPass where this
* pname:subpass is the index of the subpass in the render pass where this
pipeline will be used.
* pname:basePipelineHandle is a pipeline to derive from.
* pname:basePipelineIndex is an index into the pname:pCreateInfos

View File

@ -1104,6 +1104,9 @@ 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 <<renderpass-compatibility,compatible>>
with the pname:renderPass member of the sname:VkFramebufferCreateInfo
structure specified when creating pname:framebuffer.
****
include::../validity/structs/VkRenderPassBeginInfo.txt[]

View File

@ -291,7 +291,7 @@ 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 size of an element of pname:format, must: be
** 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
@ -515,11 +515,10 @@ flink:vkGetPhysicalDeviceImageFormatProperties.
pname:type, pname:tiling, pname:usage, and pname:flags equal to those in
this structure)
* pname:arrayLayers must: be less than or equal to
sname:VkPhysicalDeviceLimits::pname:maxImageArrayLayers, or
sname:VkImageFormatProperties::pname:maxArrayLayers (as returned by
fname:vkGetPhysicalDeviceImageFormatProperties with pname:format,
pname:type, pname:tiling, pname:usage, and pname:flags equal to those in
this structure) - whichever is higher
this structure)
* 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
@ -955,7 +954,7 @@ image subresource has address:
[source,c]
---------------------------------------------------
// (x,y,z,layer) are in texel coordinates
address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*texelSize + offset
address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*elementSize + offset
---------------------------------------------------
For compressed formats, the pname:rowPitch is the number of bytes between

View File

@ -104,7 +104,7 @@ 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 texel size
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.

View File

@ -104,7 +104,7 @@ maintained in the master branch of the Khronos Vulkan GitHub project.
<type category="define">// Vulkan 1.0 version number
#define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)</type> <!-- The patch version here should never be set to anything other than 0 -->
<type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 30</type>
#define <name>VK_HEADER_VERSION</name> 31</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>

View File

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