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:
parent
49adf2575c
commit
b97259786d
|
@ -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).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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[]
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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[]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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[]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue