Change log for March 25, 2016 Vulkan 1.0.7 spec update:

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

Github Issues:

  * Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
    aliasing issues (public issue 14).

  * Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
    validity language (public issue 33).

  * Add stub reference pages so xrefs to not-yet-written pages don't
    generate 404 errors. However, the actual content of these pages
    still needs to be filled in as time allows (public issue 44, but
    does not close that issue out).

  * Remove incorrect validity statement for
    flink:vkGetImageSparseMemoryRequirements (public issue 85).

  * Reword the
    <<features-limits-bufferImageGranularity,bufferImageGranularity>>
    feature in terms of "aliasing", and clarify that it applies to
    bindings in the same memory object (public issue 90).

  * Clarify the relationship of the slink:VkPhysicalDeviceLimits
    pname:maxViewportDimensions and pname:viewportBoundsRange limits
    (public issue 92).

  * Specify sparse unbound texture replacement in the
    <<textures-texel-replacement,Texel Replacement>> section
    independently of robust buffer access language (public issue 100).

  * Add the <<fundamentals-architecture-model,Architecture Model>>
    section to explain architecture constraints Vulkan has chosen to
    accept in order to enable portable and performant code (public issue
    122).

  * State that an object must not be destroyed until *all* (not *any*)
    uses of that object have completed (public issue 123).

  * Minor editorial cleanup (public issues 129, 134, 146, 148).

  * Add validity language for layer and extension names to
    slink:VkDeviceCreateInfo matching that used for
    slink:VkInstanceCreateInfo (public issue 130).

  * Clean up terminology for the case when the bits set in one bitmask
    are a subset of the bits set in another bitmask (public issue 138).

  * Document that input attachments are UniformConstant not Input, in
    the <<interfaces-inputattachment,Fragment Input Attachment
    Interface>> section (public glslang bug 169).

Internal Issues:

  * Add max enum values to "flag bits" enums (internal issue #136).

  * Clarify language around the various uses of the term "block" in the
    <<appendix-compressedtex-bc,Block Compressed Image Formats>> section
    (internal issue #202).

  * Removed "expand" dependency from <enums> groups in vk.xml and added
    auto-generation code in the scripts to infer it instead, to ensure
    consistency. This caused renaming of sname:VkColorSpaceKHR and
    sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
    tokens are metadata, not part of the API, and the Vulkan WG is OK
    with this change. This change adds ranges to two additional enums
    that were missing them due to not defining the "expand" attribute
    (internal issue 217).

  * Tweak makefile to generate ref page nroff (.3) files in the right
    output directory, working around an a2x limitation (internal issue
    223).

Other Commits:

  * Add validity requirements for flink:vkCmdCopyQueryPoolResults
    pname:dstBuffer parameter.

  * Fix ref page build to generate .3 targets in the right output
    directory.
This commit is contained in:
Jon Leech 2016-03-25 02:25:04 -07:00
parent 13f85fac1a
commit 8c3c9b4c85
284 changed files with 7887 additions and 849 deletions

View File

@ -273,3 +273,89 @@ Other Commits:
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
-----------------------------------------------------
Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
update.
Github Issues:
* Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
aliasing issues (public issue 14).
* Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
validity language (public issue 33).
* Add stub reference pages so xrefs to not-yet-written pages don't
generate 404 errors. However, the actual content of these pages
still needs to be filled in as time allows (public issue 44, but
does not close that issue out).
* Remove incorrect validity statement for
flink:vkGetImageSparseMemoryRequirements (public issue 85).
* Reword the
<<features-limits-bufferImageGranularity,bufferImageGranularity>>
feature in terms of "aliasing", and clarify that it applies to
bindings in the same memory object (public issue 90).
* Clarify the relationship of the slink:VkPhysicalDeviceLimits
pname:maxViewportDimensions and pname:viewportBoundsRange limits
(public issue 92).
* Specify sparse unbound texture replacement in the
<<textures-texel-replacement,Texel Replacement>> section
independently of robust buffer access language (public issue 100).
* Add the <<fundamentals-architecture-model,Architecture Model>>
section to explain architecture constraints Vulkan has chosen to
accept in order to enable portable and performant code (public issue
122).
* State that an object must not be destroyed until *all* (not *any*)
uses of that object have completed (public issue 123).
* Minor editorial cleanup (public issues 129, 134, 146, 148).
* Add validity language for layer and extension names to
slink:VkDeviceCreateInfo matching that used for
slink:VkInstanceCreateInfo (public issue 130).
* Clean up terminology for the case when the bits set in one bitmask
are a subset of the bits set in another bitmask (public issue 138).
* Document that input attachments are UniformConstant not Input, in
the <<interfaces-inputattachment,Fragment Input Attachment
Interface>> section (public glslang bug 169).
Internal Issues:
* Add max enum values to "flag bits" enums (internal issue #136).
* Clarify language around the various uses of the term "block" in the
<<appendix-compressedtex-bc,Block Compressed Image Formats>> section
(internal issue #202).
* Removed "expand" dependency from <enums> groups in vk.xml and added
auto-generation code in the scripts to infer it instead, to ensure
consistency. This caused renaming of sname:VkColorSpaceKHR and
sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
tokens are metadata, not part of the API, and the Vulkan WG is OK
with this change. This change adds ranges to two additional enums
that were missing them due to not defining the "expand" attribute
(internal issue 217).
* Tweak makefile to generate ref page nroff (.3) files in the right
output directory, working around an a2x limitation (internal issue
223).
Other Commits:
* Add validity requirements for flink:vkCmdCopyQueryPoolResults
pname:dstBuffer parameter.
* Fix ref page build to generate .3 targets in the right output
directory.

View File

@ -44,7 +44,7 @@ ECHO:=echo
# XHTMLDIR - 'xhtml' target
# PDFDIR - 'pdf' target
# CHECKDIR - 'allchecks' target
OUTDIR :=../../../out/core
OUTDIR :=../../../out/1.0
HTMLDIR := $(OUTDIR)/html
XHTMLDIR := $(OUTDIR)/xhtml
PDFDIR := $(OUTDIR)/pdf
@ -126,7 +126,7 @@ INCLUDES := $(wildcard protos/*.txt structs/*.txt flags/*.txt enums/*.txt funcpo
COMMONDOCS := $(CHAPTERS) $(INCLUDES)
# A generated included file with the spec version, date, and git commit
SPECVERSION = specversion.txt
SPECREVISION = 1.0.6
SPECREVISION = 1.0.7
SPECREMARK =
# Spec targets

View File

@ -24,7 +24,7 @@ Format Specification.
<<<
[[appendix-compressedtex-bc]]
== Block Compressed Image Formats
== Block-Compressed Image Formats
.Mapping of {apiname} BC formats to descriptions
[width="90%",options="header",cols="5,4"]
@ -86,7 +86,7 @@ chapter of the Khronos Data Format Specification.
.Mapping of {apiname} ASTC formats to descriptions
[width="75%",options="header",cols="63%,15%,22%"]
|==============================
| VkFormat ^| Block size ^| sRGB-encoded
| VkFormat ^| Compressed texel block dimensions ^| sRGB-encoded
| ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK ^|latexmath:[$4\times 4$] ^|No
| ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK ^|latexmath:[$4\times 4$] ^|Yes
| ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK ^|latexmath:[$5\times 4$] ^|No

View File

@ -415,14 +415,14 @@ The information needed to add new values to the XML are as follows:
positive, if not specified.
Implicit is the registered number of an extension, which is used to create a
block of unused values offset against a global extension base value.
Individual enumerant values are calculated as offsets in that block. Values
range of unused values offset against a global extension base value.
Individual enumerant values are calculated as offsets in that range. Values
are calculated as follows:
* base_value = 1000000000
* block_size = 1000
* range_size = 1000
* enum_offset(extension_number,offset) = base_value +
(extension_number - 1) × block_size + offset
(extension_number - 1) × range_size + offset
* Positive values: enum_offset(extension_number,offset)
* Negative values: -enum_offset(extension_number,offset)

View File

@ -139,6 +139,14 @@ Compatible Queues::
Queues within a queue family. Compatible queues have identical
properties.
Compressed Texel Block::
An element of an image having a block-compressed format, comprising a
rectangular block of texel values that are encoded as a single value in
memory. Compressed texel blocks of a particular block-compressed format
have a corresponding width, height, and depth that define the dimensions
of these elements in units of texels, and a size in bytes of the encoding
in memory.
Cull Distance::
A built-in output from vertex processing stages that defines a cull
half-space where the primitive is rejected if all vertices have a
@ -435,8 +443,8 @@ Memory Type::
Mip Tail Region::
The set of mipmap levels of a sparse residency texture that are too
small to fill a block, and that must all be bound to memory collectively
and opaquely.
small to fill a sparse block, and that must all be bound to memory
collectively and opaquely.
Non-Dispatchable Handle::
A handle of an integer handle type. Handle values may: not be unique,
@ -607,6 +615,18 @@ Shader Stage::
Side Effect::
A store to memory or atomic operation on memory from a shader invocation.
Sparse Block::
An element of a sparse resource that can be independently bound to memory.
Sparse blocks of a particular sparse resource have a corresponding size
in bytes that they use in the bound memory.
Sparse Image Block::
A sparse block in a sparse partially-resident image. In addition to the
sparse block size in bytes, sparse image blocks have a corresponding
width, height, and depth that define the dimensions of these elements
in units of texels or compressed texel blocks, the latter being used in
case of sparse images having a block-compressed format.
Sparse Unbound Texel::
A texel read from a region of a sparse texture that does not have
memory bound to it.

View File

@ -28,7 +28,8 @@ Some rules for valid operation are common to all copy commands:
* Copy regions must: be non-empty.
* Regions must: not extend outside the bounds of the buffer or image
level, except that regions of compressed images can: extend as far as
the dimension of the image level rounded up to a complete block.
the dimension of the image level rounded up to a complete compressed
texel block.
* Source image subresources must: be in either the
ename:VK_IMAGE_LAYOUT_GENERAL or
ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL layout. Destination image
@ -154,51 +155,57 @@ destination. pname:layerCount layers are copied to the destination image.
The formats of pname:srcImage and pname:dstImage must: be compatible.
Formats are considered compatible if their texel size in bytes is the same
between both formats. For example, ename:VK_FORMAT_R8G8B8A8_UNORM is
compatible with ename:VK_FORMAT_R32_UINT because because both texels are 4
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 texel
size of the uncompressed format is equal to the block size in bytes 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 becomes a single block of compressed
data. When copying from a compressed format to an uncompressed format, a
block of compressed data becomes a single texel of uncompressed data. Thus,
for example, it is legal to copy between a 128-bit uncompressed format and a
compressed format which uses 8-bit/texel 4x4 blocks, or between a 64-bit
uncompressed format and a compressed format which uses 4-bit/texel 4x4
blocks.
size of the uncompressed format is equal to the compressed texel block size in
bytes 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 corresponding compressed texel block of the
destination image. When copying from a compressed format to an uncompressed
format, each compressed texel block of the source image is copied as a raw
value to the corresponding texel of uncompressed data in the destination
image. Thus, for example, it is legal to copy between a 128-bit uncompressed
format and a compressed format which has a 128-bit sized compressed texel
block representing 4x4 texels (using 8 bits per texel), or between a 64-bit
uncompressed format and a compressed format which has a 64-bit sized
compressed texel block representing 4x4 texels (using 4 bits per texel).
When copying between compressed and uncompressed formats the pname:extent
members represent the texel dimensions of the source image and not the
destination. When copying from a compressed image to an uncompressed image
the image texel dimensions written to the uncompressed image will be source
extent divided by the block size. When copying from an uncompressed image to
a compressed image the image texel dimensions written to the compressed
image will be the source extent multiplied by the block size. In both cases
the number of bytes read and the number of bytes written will be identical.
extent divided by the compressed texel block dimensions. When copying from an
uncompressed image to a compressed image the image texel dimensions written
to the compressed image will be the source extent multiplied by the
compressed texel block dimensions. In both cases the number of bytes read and
the number of bytes written will be identical.
Copying to or from block-compressed images is typically done in multiples of
the block. For this reason the pname:extent must: be a multiple of the
block dimension. There is one exception to this rule which is required: to
handle compressed images created with dimensions that are not a multiple
of the block dimensions. If the pname:srcImage is compressed and if
pname:extent.width is not a multiple of the block width then
(pname:extent.width + pname:srcOffset.x) must: equal the subresource width,
if pname:extent.height is not a multiple of the block height then
(pname:extent.height + pname:srcOffset.y) must: equal
the subresource height and if pname:extent.depth is not a multiple of the
block depth then (pname:extent.depth + pname:srcOffset.z) must: equal
the subresource depth. Similarily if the pname:dstImage is compressed and
if pname:extent.width is not a multiple of the block width then
(pname:extent.width + pname:dstOffset.x) must: equal the subresource width,
if pname:extent.height is not a multiple of the block height then
(pname:extent.height + pname:dstOffset.y) must: equal
the subresource height and if pname:extent.depth is not a multiple of the
block depth then (pname:extent.depth + pname:dstOffset.z) must: equal
the subresource depth. This allows the last block of the image in each
non-multiple dimension to be included as a source or target of the copy.
the compressed texel block. For this reason the pname:extent must: be a
multiple of the compressed texel block dimension. There is one exception to
this rule which is required: to handle compressed images created with
dimensions that are not a multiple of the compressed texel block dimensions.
If the pname:srcImage is compressed and if pname:extent.width is not a
multiple of the compressed texel block width then (pname:extent.width +
pname:srcOffset.x) must: equal the subresource width, if pname:extent.height
is not a multiple of the compressed texel block height then
(pname:extent.height + pname:srcOffset.y) must: equal the subresource height
and if pname:extent.depth is not a multiple of the compressed texel block
depth then (pname:extent.depth + pname:srcOffset.z) must: equal the
subresource depth. Similarily if the pname:dstImage is compressed and if
pname:extent.width is not a multiple of the compressed texel block width then
(pname:extent.width + pname:dstOffset.x) must: equal the subresource width, if
pname:extent.height is not a multiple of the compressed texel block height
then (pname:extent.height + pname:dstOffset.y) must: equal the subresource
height and if pname:extent.depth is not a multiple of the compressed texel
block depth then (pname:extent.depth + pname:dstOffset.z) must: equal the
subresource depth. This allows the last compressed texel block of the image
in each non-multiple dimension to be included as a source or destination of
the copy.
fname:vkCmdCopyImage can: be used to copy image data between multisample
images, but both images must: have the same number of samples.
@ -330,8 +337,8 @@ buffer memory. Instead, pname:bufferOffset can: be used to
select the starting address in buffer memory.
For block-compression formats, all parameters are still specified in texels
rather than blocks, but the addressing math operates on whole blocks.
Pseudocode for compressed copy addressing is:
rather than compressed texel blocks, but the addressing math operates on
whole compressed texel blocks. Pseudocode for compressed copy addressing is:
[source,c]
---------------------------------------------------
@ -343,28 +350,30 @@ imageHeight = region->bufferImageHeight;
if (imageHeight == 0)
imageHeight = region->imageExtent.height;
blockSizeInBytes = <block size taken from the src/dstImage>;
rowLength /= blockWidth;
imageHeight /= blockHeight;
compressedTexelBlockSizeInBytes = <compressed texel block size taken from the src/dstImage>;
rowLength /= compressedTexelBlockWidth;
imageHeight /= compressedTexelBlockHeight;
address of (x,y,z) = region->bufferOffset + (((z * imageHeight) + y) * rowLength + x) * blockSizeInBytes;
address of (x,y,z) = region->bufferOffset + (((z * imageHeight) + y) * rowLength + x) * compressedTexelBlockSizeInBytes;
where x,y,z range from (0,0,0) to region->imageExtent.{width/blockWidth,height/blockHeight,depth/blockDepth}.
where x,y,z range from (0,0,0) to region->imageExtent.{width/compressedTexelBlockWidth,height/compressedTexelBlockHeight,depth/compressedTexelBlockDepth}.
---------------------------------------------------
Copying to or from block-compressed images is typically done in multiples of
the block. For this reason the pname:imageExtent must: be a multiple of the
block dimension. There is one exception to this rule which is required: to
handle compressed images created with dimensions that are not a multiple of
the block dimensions. If pname:imageExtent.width is not a multiple of the
block width then (pname:imageExtent.width + pname:imageOffset.x) must: equal
the subresource width, if pname:imageExtent.height is not a multiple of the
block height then (pname:imageExtent.height + pname:imageOffset.y) must:
equal the subresource height and if pname:imageExtent.depth is not a
multiple of the block depth then (pname:imageExtent.depth +
pname:imageOffset.z) must: equal the subresource depth. This allows the last
block of the image in each non-multiple dimension to be included as a source
or target of the copy.
the compressed texel block. For this reason the pname:imageExtent must: be a
multiple of the compressed texel block dimension. There is one exception to
this rule which is required: to handle compressed images created with
dimensions that are not a multiple of the compressed texel block dimensions.
If pname:imageExtent.width is not a multiple of the compressed texel block
width then (pname:imageExtent.width + pname:imageOffset.x) must: equal the
subresource width, if pname:imageExtent.height is not a multiple of the
compressed texel block height then (pname:imageExtent.height +
pname:imageOffset.y) must: equal the subresource height and if
pname:imageExtent.depth is not a multiple of the compressed texel block depth
then (pname:imageExtent.depth + pname:imageOffset.z) must: equal the
subresource depth. This allows the last compressed texel block of the image
in each non-multiple dimension to be included as a source or destination of
the copy.
[[copies-imagescaling]]

View File

@ -220,8 +220,9 @@ include::../validity/structs/VkQueueFamilyProperties.txt[]
For further details see <<devsandqueues-queues,Queues>>.
The value returned in pname:minImageTransferGranularity has a unit of blocks
for images having a block compressed format, and a unit of texels otherwise.
The value returned in pname:minImageTransferGranularity has a unit of
compressed texel blocks for images having a block-compressed format, and a
unit of texels otherwise.
Possible values of pname:minImageTransferGranularity are:
@ -257,8 +258,9 @@ Possible values of pname:minImageTransferGranularity are:
equal the depth of the image subresource corresponding to the
parameter.
** If the format of the image corresponding to the parameters is one of
the block compressed formats then for the purposes of the above
calculations the granularity must: be scaled up by the block size.
the block-compressed formats then for the purposes of the above
calculations the granularity must: be scaled up by the compressed
texel block dimensions.
Queues supporting graphics and/or compute operations must: report
latexmath:[$(1,1,1)$] in pname:minImageTransferGranularity, meaning that

View File

@ -463,9 +463,9 @@ check for the supported properties of individual formats.
code. This also indicates whether shader modules can: declare the
code:MinLod capability.
* [[features-features-sparseBinding]] pname:sparseBinding indicates
whether resource memory can: be managed at opaque block level instead of
at the object level. If this feature is not enabled, resource memory
must: be bound only on a per-object basis using the
whether resource memory can: be managed at opaque sparse block level
instead of at the object level. If this feature is not enabled, resource
memory must: be bound only on a per-object basis using the
fname:vkBindBufferMemory and fname:vkBindImageMemory commands. In this
case, buffers and images mustnot: be created with
ename:VK_BUFFER_CREATE_SPARSE_BINDING_BIT and
@ -624,9 +624,10 @@ properties of the physical device:
exist on a device.
* [[features-limits-bufferImageGranularity]] pname:bufferImageGranularity
is the granularity, in bytes, at which buffer or linear image resources,
and optimal image resources can: be bound to adjacent memory for
simultaneous usage. See <<resources-bufferimagegranularity,Buffer-Image
Granularity>> for more details.
and optimal image resources can: be bound to adjacent offsets in the same
sname:VkDeviceMemory object without aliasing. See
<<resources-bufferimagegranularity,Buffer-Image Granularity>> for more
details.
* [[features-limits-sparseAddressSpaceSize]] pname:sparseAddressSpaceSize
is the total amount of address space available, in bytes, for sparse
memory resources. This is an upper bound on the sum of the size of all
@ -726,7 +727,7 @@ properties of the physical device:
<<descriptorsets-combinedimagesampler>>.
* [[features-limits-maxDescriptorSetUniformBuffers]]
pname:maxDescriptorSetUniformBuffers is the maximum number of uniform
buffers that can: be be included in descriptor bindings in a pipeline
buffers that can: be included in descriptor bindings in a pipeline
layout across all pipeline shader stages and descriptor set numbers.
Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against this
@ -741,7 +742,7 @@ properties of the physical device:
limit. See <<descriptorsets-uniformbufferdynamic>>.
* [[features-limits-maxDescriptorSetStorageBuffers]]
pname:maxDescriptorSetStorageBuffers is the maximum number of storage
buffers that can: be be included in descriptor bindings in a pipeline
buffers that can: be included in descriptor bindings in a pipeline
layout across all pipeline shader stages and descriptor set numbers.
Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this
@ -749,14 +750,14 @@ properties of the physical device:
<<descriptorsets-storagebufferdynamic>>.
* [[features-limits-maxDescriptorSetStorageBuffersDynamic]]
pname:maxDescriptorSetStorageBuffersDynamic is the maximum number of
dynamic storage buffers that can: be be included in descriptor bindings
dynamic storage buffers that can: be included in descriptor bindings
in a pipeline layout across all pipeline shader stages and descriptor
set numbers. Descriptors with a type of
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this
limit. See <<descriptorsets-storagebufferdynamic>>.
* [[features-limits-maxDescriptorSetSampledImages]]
pname:maxDescriptorSetSampledImages is the maximum number of sampled
images that can: be be included in descriptor bindings in a pipeline
images that can: be included in descriptor bindings in a pipeline
layout across all pipeline shader stages and descriptor set numbers.
Descriptors with a type of
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
@ -767,7 +768,7 @@ properties of the physical device:
<<descriptorsets-uniformtexelbuffer>>.
* [[features-limits-maxDescriptorSetStorageImages]]
pname:maxDescriptorSetStorageImages is the maximum number of storage
images that can: be be included in descriptor bindings in a pipeline
images that can: be included in descriptor bindings in a pipeline
layout across all pipeline shader stages and descriptor set numbers.
Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or
ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER count against this limit.
@ -775,7 +776,7 @@ properties of the physical device:
<<descriptorsets-storagetexelbuffer>>.
* [[features-limits-maxDescriptorSetInputAttachments]]
pname:maxDescriptorSetInputAttachments is the maximum number of input
attachments that can: be be included in descriptor bindings in a
attachments that can: be included in descriptor bindings in a
pipeline layout across all pipeline shader stages and descriptor set
numbers. Descriptors with a type of
ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT count against this limit. See
@ -971,9 +972,28 @@ different equations in the spec).
which can: be created and used as a framebuffer attachment. See
<<vertexpostproc-viewport,Controlling the Viewport>>.
* [[features-limits-viewportboundsrange]] pname:viewportBoundsRange[2] is
the viewport bounds range
latexmath:[$[\mathit{minimum},\mathit{maximum}\]$]. See
<<vertexpostproc-viewport,Controlling the Viewport>>.
the latexmath:[$[\mathit{minimum},\mathit{maximum}\]$] range that the
corners of a viewport must: be contained in. This range must: be at
least latexmath:[$[- 2 \times \mathit{maxViewportDimensions},
2 \times \mathit{maxViewportDimensions} - 1\]$].
See <<vertexpostproc-viewport,Controlling the Viewport>>.
+
--
[NOTE]
.Note
====
The intent of the pname:viewportBoundsRange limit is to allow a maximum sized
viewport to be arbitrarily shifted relative to the output target as long
as at least some portion intersects. This would give a bounds limit of
latexmath:[$[- \mathit{maxViewportDimensions}+1,
2 \times \mathit{maxViewportDimensions} -1\]$] which would allow
all possible non-empty-set intersections of the output target and the viewport.
Since these numbers are typically powers of two, picking the signed number
range using the smalled possible number of bits, ends up with the specified
range.
====
--
* [[features-limits-viewportSubPixelBits]] pname:viewportSubPixelBits is
the number of bits of subpixel precision for viewport bounds. The
subpixel precision that floating-point viewport bounds are interpreted
@ -1453,10 +1473,12 @@ the same whether or not the feature is enabled.
It may: not be possible to reach this limit in every stage.
3::
Maximum image attachment size or maximum display size
See <<features-limits-maxViewportDimensions,pname:maxViewportDimensions>>
for the required relationship to other limits.
4::
Double the pname:maxViewportDimensions
See <<features-limits-viewportboundsrange,pname:viewportBoundsRange>>
for the required relationship to other limits.
5::
The values pname:minInterpolationOffset and pname:maxInterpolationOffset
@ -2260,283 +2282,274 @@ ename:VK_FORMAT_D32_SFLOAT_S8_UINT::
are optionally: 24-bits that are unused.
ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK::
A three-component, block compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data. This format
has no alpha and is considered opaque.
A three-component, block-compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGB texel data.
This format has no alpha and is considered opaque.
ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK::
A three-component, block compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data with sRGB
nonlinear encoding. This format has no alpha and is considered opaque.
A three-component, block-compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGB texel data
with sRGB nonlinear encoding. This format has no alpha and is considered
opaque.
ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK::
A four-component, block compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data, and provides 1
bit of alpha.
A four-component, block-compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGB texel data,
and provides 1 bit of alpha.
ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK::
A four-component, block compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data with sRGB
nonlinear encoding, and provides 1 bit of alpha.
A four-component, block-compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGB texel data
with sRGB nonlinear encoding, and provides 1 bit of alpha.
ename:VK_FORMAT_BC2_UNORM_BLOCK::
A four-component, block compressed format where each 4x4 block consists
of 64-bits of unsigned normalized alpha image data followed by 64-bits
of encoded unsigned normalized RGB image data.
A four-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel data
with the first 64 bits encoding alpha values followed by 64 bits encoding
RGB values.
ename:VK_FORMAT_BC2_SRGB_BLOCK::
A four-component, block compressed format where each 4x4 block consists
of 64-bits of unsigned normalized alpha image data followed by 64-bits
of encoded unsigned normalized RGB image data with sRGB nonlinear
encoding.
A four-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel data
with the first 64 bits encoding alpha values followed by 64 bits encoding
RGB values with sRGB nonlinear encoding.
ename:VK_FORMAT_BC3_UNORM_BLOCK::
A four-component, block compressed format where each 4x4 block consists
of 64-bits of encoded alpha image data followed by 64-bits of encoded
RGB image data. Both blocks are decoded as unsigned normalized values.
A four-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel data
with the first 64 bits encoding alpha values followed by 64 bits encoding
RGB values.
ename:VK_FORMAT_BC3_SRGB_BLOCK::
A four-component, block compressed format where each 4x4 block consists
of 64-bits of encoded alpha image data followed by 64-bits of encoded
RGB image data with sRGB nonlinear encoding. Both blocks are decoded as
unsigned normalized values.
A four-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel data
with the first 64 bits encoding alpha values followed by 64 bits encoding
RGB values with sRGB nonlinear encoding.
ename:VK_FORMAT_BC4_UNORM_BLOCK::
A one-component, block compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized red image data.
A one-component, block-compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized red texel data.
ename:VK_FORMAT_BC4_SNORM_BLOCK::
A one-component, block compressed format where each 4x4 block consists
of 64-bits of encoded signed normalized red image data.
A one-component, block-compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of signed normalized red texel data.
ename:VK_FORMAT_BC5_UNORM_BLOCK::
A two-component, block compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized red image data followed by
64-bits of encoded unsigned normalized green image data.
A two-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RG texel data
with the first 64 bits encoding red values followed by 64 bits encoding
green values.
ename:VK_FORMAT_BC5_SNORM_BLOCK::
A two-component, block compressed format where each 4x4 block consists
of 64-bits of encoded signed normalized red image data followed by
64-bits of encoded signed normalized green image data.
A two-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of signed normalized RG texel data
with the first 64 bits encoding red values followed by 64 bits encoding
green values.
ename:VK_FORMAT_BC6H_UFLOAT_BLOCK::
A three-component, block compressed format where each 4x4 block consists
of 128-bits of encoded unsigned floating-point RGB image data.
A three-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned floating-point RGB texel
data.
ename:VK_FORMAT_BC6H_SFLOAT_BLOCK::
A three-component, block compressed format where each 4x4 block consists
of 128-bits of encoded signed floating-point RGB image data.
A three-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of signed floating-point RGB texel
data.
ename:VK_FORMAT_BC7_UNORM_BLOCK::
A four-component, block compressed format where each 4x4 block consists
of 128-bits of encoded unsigned normalized RGBA image data.
A four-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel
data.
ename:VK_FORMAT_BC7_SRGB_BLOCK::
A four-component, block compressed format where each 4x4 block consists
of 128-bits of encoded unsigned normalized RGBA image data with sRGB
nonlinear encoding applied to the RGB components.
A four-component, block-compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel
data with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK::
A three-component, ETC2 compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data.
A three-component, ETC2 compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGB texel data.
This format has no alpha and is considered opaque.
ename:VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK::
A three-component, ETC2 compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data with sRGB
nonlinear encoding.
A three-component, ETC2 compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGB texel data
with sRGB nonlinear encoding. This format has no alpha and is considered
opaque.
ename:VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK::
A four-component, ETC2 compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data, and provides 1
bit of alpha.
A four-component, ETC2 compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGB texel data,
and provides 1 bit of alpha.
ename:VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK::
A four-component, ETC2 compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data with sRGB
nonlinear encoding, and provides 1 bit of alpha.
A four-component, ETC2 compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGB texel data
with sRGB nonlinear encoding, and provides 1 bit of alpha.
ename:VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK::
A four-component, ETC2 compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data, and 64-bits of
encoded unsigned normalized alpha image data.
A four-component, ETC2 compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel data
with the first 64 bits encoding alpha values followed by 64 bits encoding
RGB values.
ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK::
A four-component, ETC2 compressed format where each 4x4 block consists
of 64-bits of encoded unsigned normalized RGB image data with sRGB
nonlinear encoding, and 64-bits of encoded unsigned normalized alpha
image data.
A four-component, ETC2 compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel data
with the first 64 bits encoding alpha values followed by 64 bits encoding
RGB values with sRGB nonlinear encoding applied.
ename:VK_FORMAT_EAC_R11_UNORM_BLOCK::
A one-component, ETC2 compressed format where each 4x4 block consists of
64-bits of encoded unsigned normalized red image data.
A one-component, ETC2 compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized red texel data.
ename:VK_FORMAT_EAC_R11_SNORM_BLOCK::
A one-component, ETC2 compressed format where each 4x4 block consists of
64-bits of encoded signed normalized red image data.
A one-component, ETC2 compressed format where each 64-bit compressed
texel block encodes a 4x4 rectangle of signed normalized red texel data.
ename:VK_FORMAT_EAC_R11G11_UNORM_BLOCK::
A two-component, ETC2 compressed format where each 4x4 block consists of
64-bits of encoded unsigned normalized red image data followed by
64-bits of encoded unsigned normalized green image data.
A two-component, ETC2 compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RG texel data
with the first 64 bits encoding red values followed by 64 bits encoding
green values.
ename:VK_FORMAT_EAC_R11G11_SNORM_BLOCK::
A two-component, ETC2 compressed format where each 4x4 block consists of
64-bits of encoded signed normalized red image data followed by 64-bits
of encoded signed normalized green image data.
A two-component, ETC2 compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of signed normalized RG texel data
with the first 64 bits encoding red values followed by 64 bits encoding
green values.
ename:VK_FORMAT_ASTC_4x4_UNORM_BLOCK::
A four-component, ASTC compressed format where each 4x4 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel data.
ename:VK_FORMAT_ASTC_4x4_SRGB_BLOCK::
A four-component, ASTC compressed format where each 4x4 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 4x4 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_5x4_UNORM_BLOCK::
A four-component, ASTC compressed format where each 5x4 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 5x4 rectangle of unsigned normalized RGBA texel data.
ename:VK_FORMAT_ASTC_5x4_SRGB_BLOCK::
A four-component, ASTC compressed format where each 5x4 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 5x4 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_5x5_UNORM_BLOCK::
A four-component, ASTC compressed format where each 5x5 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 5x5 rectangle of unsigned normalized RGBA texel data.
ename:VK_FORMAT_ASTC_5x5_SRGB_BLOCK::
A four-component, ASTC compressed format where each 5x5 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 5x5 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_6x5_UNORM_BLOCK::
A four-component, ASTC compressed format where each 6x5 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 6x5 rectangle of unsigned normalized RGBA texel data.
ename:VK_FORMAT_ASTC_6x5_SRGB_BLOCK::
A four-component, ASTC compressed format where each 6x5 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 6x5 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_6x6_UNORM_BLOCK::
A four-component, ASTC compressed format where each 6x6 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 6x6 rectangle of unsigned normalized RGBA texel data.
ename:VK_FORMAT_ASTC_6x6_SRGB_BLOCK::
A four-component, ASTC compressed format where each 6x6 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 6x6 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_8x5_UNORM_BLOCK::
A four-component, ASTC compressed format where each 8x5 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 8x5 rectangle of unsigned normalized RGBA texel data.
ename:VK_FORMAT_ASTC_8x5_SRGB_BLOCK::
A four-component, ASTC compressed format where each 8x5 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 8x5 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_8x6_UNORM_BLOCK::
A four-component, ASTC compressed format where each 8x6 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 8x6 rectangle of unsigned normalized RGBA texel data.
ename:VK_FORMAT_ASTC_8x6_SRGB_BLOCK::
A four-component, ASTC compressed format where each 8x6 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 8x6 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_8x8_UNORM_BLOCK::
A four-component, ASTC compressed format where each 8x8 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 8x8 rectangle of unsigned normalized RGBA texel data.
ename:VK_FORMAT_ASTC_8x8_SRGB_BLOCK::
A four-component, ASTC compressed format where each 8x8 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 8x8 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_10x5_UNORM_BLOCK::
A four-component, ASTC compressed format where each 10x5 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 10x5 rectangle of unsigned normalized RGBA texel
data.
ename:VK_FORMAT_ASTC_10x5_SRGB_BLOCK::
A four-component, ASTC compressed format where each 10x5 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 10x5 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_10x6_UNORM_BLOCK::
A four-component, ASTC compressed format where each 10x6 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 10x6 rectangle of unsigned normalized RGBA texel
data.
ename:VK_FORMAT_ASTC_10x6_SRGB_BLOCK::
A four-component, ASTC compressed format where each 10x6 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 10x6 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_10x8_UNORM_BLOCK::
A four-component, ASTC compressed format where each 10x8 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 10x8 rectangle of unsigned normalized RGBA texel
data.
ename:VK_FORMAT_ASTC_10x8_SRGB_BLOCK::
A four-component, ASTC compressed format where each 10x8 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 10x8 rectangle of unsigned normalized RGBA texel data
with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_10x10_UNORM_BLOCK::
A four-component, ASTC compressed format where each 10x10 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 10x10 rectangle of unsigned normalized RGBA texel
data.
ename:VK_FORMAT_ASTC_10x10_SRGB_BLOCK::
A four-component, ASTC compressed format where each 10x10 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 10x10 rectangle of unsigned normalized RGBA texel
data with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_12x10_UNORM_BLOCK::
A four-component, ASTC compressed format where each 12x10 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 12x10 rectangle of unsigned normalized RGBA texel
data.
ename:VK_FORMAT_ASTC_12x10_SRGB_BLOCK::
A four-component, ASTC compressed format where each 12x10 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 12x10 rectangle of unsigned normalized RGBA texel
data with sRGB nonlinear encoding applied to the RGB components.
ename:VK_FORMAT_ASTC_12x12_UNORM_BLOCK::
A four-component, ASTC compressed format where each 12x12 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 12x12 rectangle of unsigned normalized RGBA texel
data.
ename:VK_FORMAT_ASTC_12x12_SRGB_BLOCK::
A four-component, ASTC compressed format where each 12x12 block consists
of 128-bits of encoded image data which is decoded as unsigned
normalized RGBA image data with sRGB nonlinear encoding applied to
the RGB components.
A four-component, ASTC compressed format where each 128-bit compressed
texel block encodes a 12x12 rectangle of unsigned normalized RGBA texel
data with sRGB nonlinear encoding applied to the RGB components.
[[features-formats-packed]]
@ -2616,7 +2629,7 @@ is unused, but may: be present for padding.
The suffix etext:_PACKnn indicates that the format is packed into an
underlying type with nn bits.
The suffix etext:_BLOCK indicates that the format is a block compressed
The suffix etext:_BLOCK indicates that the format is a block-compressed
format, with the representation of multiple pixels encoded interdependently
within a region.
@ -3702,10 +3715,10 @@ returns ename:VK_ERROR_FORMAT_NOT_SUPPORTED.
The limitations on an image format that are reported by
fname:vkGetPhysicalDeviceImageFormatProperties have the following property:
if code:usage1 and code:usage2 of type elink:VkImageUsageFlags and
if code:usage1 and code:usage2 of type elink:VkImageUsageFlags are such that
the bits set in code:usage1 are a subset of the bits set in code:usage2, and
code:flags1 and code:flags2 of type elink:VkImageCreateFlags are such that
code:usage1 contains a subset of the bits set in code:usage2 and code:flags1
contains a subset of the bits set in code:flags2, then the limitations for
code:usage1 and code:flags1 must: be no more strict than the limitations for
code:usage2 and code:flags2, for all values of pname:format, pname:type, and
pname:tiling.
the bits set in code:flags1 are a subset of the bits set in code:flags2,
then the limitations for code:usage1 and code:flags1 must: be no more strict
than the limitations for code:usage2 and code:flags2, for all values of
pname:format, pname:type, and pname:tiling.

View File

@ -5,10 +5,51 @@
= Fundamentals
This chapter introduces fundamental concepts including the {apiname}
execution model, API syntax, queues, pipeline configurations, numeric
representation, state and state queries, and the different types of objects
and shaders. It provides a framework for interpreting more specific
descriptions of commands and behavior in the remainder of the Specification.
architecture and execution model, API syntax, queues, pipeline
configurations, numeric representation, state and state queries, and the
different types of objects and shaders. It provides a framework for
interpreting more specific descriptions of commands and behavior in the
remainder of the Specification.
[[fundamentals-architecture-model]]
== Architecture Model
Vulkan is designed for, and the API is written for, CPU, GPU, and other
hardware accelerator architectures with the following properties:
* Runtime support for 8, 16, 32 and 64-bit signed and unsigned
twos-complement integers, all addressable at the granularity of their size
in bytes.
* Runtime support for 32- and 64-bit floating-point types satisfying the
range and precision constraints in the
<<fundamentals-floatingpoint,Floating Point Computation>> section.
* The representation and endianness of these types must: be identical for
the host and the physical devices.
[NOTE]
.Note
====
Since a variety of data types and structures in Vulkan may: be mapped back
and forth between host and physical device memory, host and device
architectures must: both be able to access such data efficiently in order to
write portable and performant applications.
====
Where the Specification leaves choices open that would affect Application
Binary Interface compatibility on a given platform supporting Vulkan, those
choices are usually made to be compliant to the preferred ABI defined by the
platform vendor. Some choices, such as function calling conventions, may: be
made in platform-specific portions of the +vk_platform.h+ header file.
[NOTE]
.Note
====
For example, the Android ABI is defined by Google, and the Linux ABI is
defined by a combination of gcc defaults, distribution vendor choices, and
external standards such as the Linux Standard Base.
====
[[fundamentals-execmodel]]
@ -266,7 +307,7 @@ descriptor set layout has been destroyed. Otherwise, descriptor set layouts
can be destroyed any time they are not in use by an API command.
The application mustnot: destroy any other type of {apiname} object until
any uses of that object by the device (such as via command buffer execution)
all uses of that object by the device (such as via command buffer execution)
have completed.
The following {apiname} objects can: be destroyed when no command buffers
@ -391,7 +432,7 @@ Information is retrieved from the implementation with commands of the form
ftext:vkGet*.
Commands are recorded into a command buffer by calling API commands of the
form ftext:vkCmd*. Each such command may have different restrictions on
form ftext:vkCmd*. Each such command may: have different restrictions on
where it can be used: in a primary and/or secondary command buffer, inside
and/or outside a render pass, and in one or more of the supported queue
types. These restrictions are documented together with the definition of
@ -975,8 +1016,8 @@ include::../validity/structs/VkOffset3D.txt[]
=== Extents
Extents are used to describe the size of a block of pixels within an image
or framebuffer, as (width,height) for two-dimensional images, or as
Extents are used to describe the size of a rectangular region of pixels within
an image or framebuffer, as (width,height) for two-dimensional images, or as
(width,height,depth) for three-dimensional images. Two- and
three-dimensional extents are respectively defined by the structures
@ -991,7 +1032,7 @@ include::../validity/structs/VkExtent3D.txt[]
=== Rectangles
Rectangles are used to describe a specified rectangular block of pixels
Rectangles are used to describe a specified rectangular region of pixels
within an image or framebuffer. Rectangles include both an offset and an
extent of the same dimensionality, as described above. Two-dimensional
rectangles are defined by the structure

View File

@ -247,7 +247,7 @@ as specified above are supported. _Location aliasing_ is
causing two variables to have the same location number. _Component aliasing_
is assigning the same (or overlapping) component number for
two location aliases. Location aliasing is allowed only if it does
not cause compenent aliasing. Further, when location aliasing, the
not cause component aliasing. Further, when location aliasing, the
aliases sharing the location must: have the same underlying numerical
type (floating-point or integer). Failure to meet these requirements
will result in an invalid pipeline.

View File

@ -319,19 +319,21 @@ attachments specified in the pname:pInputAttachments array of the
slink:VkSubpassDescription structure that describes the subpass that
the fragment shader is executed in.
The fragment shader input variables listed by code:OpEntryPoint with the
code:Input storage class and a decoration of code:InputAttachmentIndex
form the _fragment input attachment interface_. These variables must:
be declared with a type of code:OpTypeImage and a code:Dim operand
of code:SubpassData.
The fragment shader subpass input variables with the code:UniformConstant
storage class and a decoration of code:InputAttachmentIndex that are
statically used by code:OpEntryPoint form the _fragment input
attachment interface_. These variables must: be declared with a type
of code:OpTypeImage, a code:Dim operand of code:SubpassData, and a
code:Sampled operand of 2.
A fragment shader input variable identified with an code:InputAttachmentIndex
A subpass input variable identified with an code:InputAttachmentIndex
decoration of _i_ reads from the input attachment indicated by
pname:pInputAttachments[_i_]. If the input variable is declared as
an array of size N, it consumes N consecutive input attachments, starting
with the index specified. There mustnot: be more than one input variable
with the same code:InputAttachmentIndex whether explicitly declared or
implied by an array declaration. The number of available input attachment
pname:pInputAttachments[_i_] member of sname:VkSubpassDescription.
If the subpass input variable is declared
as an array of size N, it consumes N consecutive input attachments,
starting with the index specified. There mustnot: be more than one input
variable with the same code:InputAttachmentIndex whether explicitly declared
or implied by an array declaration. The number of available input attachment
indices is given by the pname:maxPerStageDescriptorInputAttachments member
of the sname:VkPhysicalDeviceLimits structure.
@ -355,10 +357,9 @@ at pipeline creation time.
The set of shader resources that form the _shader resource interface_
for a stage are the variables statically used by code:OpEntryPoint
with the storage classes of code:Uniform, code:UniformConstant, and
code:PushConstant. For the fragment shader, the variables identified by
operands to code:OpEntryPoint with a storage class of code:Input and a
decoration of code:InputAttachmentIndex are also included in this interface.
with the storage class of code:Uniform, code:UniformConstant, or
code:PushConstant. For the fragment shader, this includes the
<<interfaces-inputattachment, fragment input attachment interface>>.
The shader resource interface can be further broken down into two
sub-interfaces: the push constant interface and the descriptor
@ -368,8 +369,8 @@ set interface.
[[interfaces-resources-pushconst]]
=== Push Constant Interface
The shader variables defined with a storage class of code:PushConstant that
are statically used by the shader entry points for the pipeline
The shader variables defined with a storage class of code:PushConstant
that are statically used by the shader entry points for the pipeline
define the _push constant interface_. They must: be:
* typed as code:OpTypeStruct,
@ -398,8 +399,8 @@ only be accessed with dynamically uniform indices.
=== Descriptor Set Interface
The _descriptor set interface_ is comprised of the shader variables with the
storage classes of code:Uniform, code:UniformConstant, and the variables in
the <<interfaces-inputattachment,fragment input attachment interface>>,
storage class of code:Uniform or code:UniformConstant (including the variables
in the <<interfaces-inputattachment,fragment input attachment interface>>)
that are statically used by the shader entry points for the pipeline.
These variables must: have code:DescriptorSet and code:Binding decorations
@ -473,9 +474,9 @@ decoration for any variable in a code:BufferBlock mustnot: cause the
space required for that variable to extend outside the range
latexmath:[$[0, \mathit{maxStorageBufferRange})$].
Variables identified with a storage class of code:Input and a decoration of
code:InputAttachmentIndex must be declared as described
<<interfaces-inputattachment,above>>.
Variables identified with a storage class of code:UniformConstant and a
decoration of code:InputAttachmentIndex must be declared as described in
<<interfaces-inputattachment,Fragment Input Attachment Interface>>.
Each shader variable declaration must: refer to the same type of resource as
is indicated by the pname:descriptorType. See
@ -524,7 +525,8 @@ descriptor types.
| code:Uniform | code:OpTypeStruct
| code:BufferBlock, code:Offset, (code:ArrayStride), (code:MatrixStride)
| input attachment
| code:Input | code:OpTypeImage (code:Dim=code:SubpassData) | code:InputAttachmentIndex
| code:UniformConstant | code:OpTypeImage (code:Dim=code:SubpassData, code:Sampled=2)
| code:InputAttachmentIndex
|=============================
1:: in addition to code:DescriptorSet and code:Binding

View File

@ -221,7 +221,7 @@ include::../structs/VkGraphicsPipelineCreateInfo.txt[]
* pname:pViewportState is a pointer to an instance of the
slink:VkPipelineViewportStateCreateInfo structure, or `NULL` if the
pipeline has rasterization disabled.
* pname:pRasterState is a pointer to an instance of the
* pname:pRasterizationState is a pointer to an instance of the
slink:VkPipelineRasterizationStateCreateInfo structure.
* pname:pMultisampleState is a pointer to an instance of the
slink:VkPipelineMultisampleStateCreateInfo, or `NULL` if the pipeline
@ -791,31 +791,35 @@ Now to specialize the above via the specialization constants mechanism:
[source,{basebackend@docbook:c++:cpp}]
---------------------------------------------------
struct SpecializationData {
int32_t data0;
float data1;
};
const VkSpecializationMapEntry entries[] =
{
{
0, // constantID
0 * sizeof(int32_t), // offset
sizeof(int32_t) // size
0, // constantID
offsetof(SpecializationData, data0), // offset
sizeof(SpecializationData::data0) // size
},
{
12, // constantID
1 * sizeof(int32_t), // offset
sizeof(float) // size
12, // constantID
offsetof(SpecializationData, data1), // offset
sizeof(SpecializationData::data1) // size
}
};
int32_t data[2];
data[0] = -42; // set the data for the 32-bit integer
((float*)data)[1] = 42.0f; // set the data for the 32-bit floating-point
SpecializationData data;
data.data0 = -42; // set the data for the 32-bit integer
data.data1 = 42.0f; // set the data for the 32-bit floating-point
const VkSpecializationInfo info =
{
2, // mapEntryCount
entries, // pMapEntries
2 * sizeof(int32_t), // dataSize
data, // pData
sizeof(data), // dataSize
&data, // pData
};
---------------------------------------------------

View File

@ -434,14 +434,15 @@ address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*texelSiz
---------------------------------------------------
For compressed formats, the pname:rowPitch is the number of bytes between
compressed blocks in adjacent rows. pname:arrayPitch is the number of bytes
between blocks in adjacent array layers. pname:depthPitch is the number of
bytes between blocks in adjacent slices of a 3D image.
compressed texel blocks in adjacent rows. pname:arrayPitch is the number of
bytes between compressed texel blocks in adjacent array layers.
pname:depthPitch is the number of bytes between compressed texel blocks in
adjacent slices of a 3D image.
[source,c]
---------------------------------------------------
// (x,y,z,layer) are in block coordinates
address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*blockSize + offset;
// (x,y,z,layer) are in compressed texel block coordinates
address(x,y,z,layer) = layer*arrayPitch + z*depthPitch + y*rowPitch + x*compressedTexelBlockByteSize + offset;
---------------------------------------------------
@ -950,15 +951,15 @@ flink:vkGetImageMemoryRequirements:
ename:VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT bit and the
ename:VK_MEMORY_PROPERTY_HOST_COHERENT_BIT bit set. In other words,
mappable coherent memory can: always be attached to these objects.
* The pname:memoryTypeBits member is identical for all
sname:VkBuffer objects created with the same value for the pname:flags
and pname:usage members in the sname:VkBufferCreateInfo structure passed
to fname:vkCreateBuffer. Further, if code:usage1 and code:usage2 of type
elink:VkBufferUsageFlags are such that code:usage2 comprises a subset of
the bits set in code:usage1 and they have the same pname:flags, then the
bits set in pname:memoryTypeBits returned for code:usage1 must: be a
subset of the bits set in pname:memoryTypeBits returned for code:usage2,
for all values of pname:flags.
* The pname:memoryTypeBits member is identical for all sname:VkBuffer
objects created with the same value for the pname:flags and pname:usage
members in the sname:VkBufferCreateInfo structure passed to
fname:vkCreateBuffer. Further, if code:usage1 and code:usage2 of type
elink:VkBufferUsageFlags are such that the bits set in code:usage2 are a
subset of the bits set in code:usage1, and they have the same
pname:flags, then the bits set in pname:memoryTypeBits returned for
code:usage1 must: be a subset of the bits set in pname:memoryTypeBits
returned for code:usage2, for all values of pname:flags.
* The pname:alignment member is identical for all sname:VkBuffer objects
created with the same combination of values for the pname:usage and
pname:flags members in the sname:VkBufferCreateInfo structure passed to
@ -1011,8 +1012,8 @@ include::../validity/protos/vkBindImageMemory.txt[]
.Buffer-Image Granularity
There is an implementation-dependent limit, pname:bufferImageGranularity,
which specifies a page-like granularity at which buffer, linear image and
optimal image resources must be placed in adjacent memory locations for
simultaneous usage. Two resources which do not satisfy this granularity
optimal image resources must: be placed in adjacent memory locations to
avoid aliasing. Two resources which do not satisfy this granularity
requirement are said to <<resources-memory-aliasing,alias>>. Linear image
resource are images created with ename:VK_IMAGE_TILING_LINEAR and optimal
image resources are those created with ename:VK_IMAGE_TILING_OPTIMAL.
@ -1020,9 +1021,19 @@ pname:bufferImageGranularity is specified in bytes, and must: be a power of
two. Implementations which do not require such an additional granularity
may: report a value of one.
[NOTE]
.Note
====
pname:bufferImageGranularity is really a granularity between "linear"
resources, including buffers and images with linear tiling, vs. "optimal"
resources, i.e. images with optimal tiling. It would have been better named
"linearOptimalGranularity".
====
Given resourceA at the lower memory offset and resourceB at the higher
memory offset, where one of the resources is a buffer or a linear image
and the other is an optimal image, and the following:
memory offset in the same sname:VkDeviceMemory object, where one of the
resources is a buffer or a linear image and the other is an optimal image,
and the following:
resourceA.end = resourceA.memoryOffset + resourceA.size - 1
resourceA.endPage = resourceA.end & ~(bufferImageGranularity-1)
@ -1043,7 +1054,7 @@ Adjacent buffers' or adjacent images'
memory ranges can: be closer than pname:bufferImageGranularity, provided
they meet the pname:alignment requirement for the objects in question.
Sparse memory block sizes and sparse image and buffer memory alignments
Sparse block size in bytes and sparse image and buffer memory alignments
must: all be multiples of the pname:bufferImageGranularity. Therefore,
memory bound to sparse resources naturally satisfies the
pname:bufferImageGranularity.
@ -1142,10 +1153,10 @@ bound to an aliased range, all subresources of the image _overlap_ the
range. When a linear image is bound to an aliased range, the subresources
that (according to the image's advertised layout) include bytes from the
aliased range overlap the range. When a
ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT image has blocks bound to an
aliased range, only subresources including those blocks overlap the range,
and when the memory bound to the image's miptail overlaps an aliased range
all subresources in the miptail overlap the range.
ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT image has sparse image blocks bound
to an aliased range, only subresources including those sparse image blocks
overlap the range, and when the memory bound to the image's miptail overlaps
an aliased range all subresources in the miptail overlap the range.
Buffers, and linear image subresources in either the
ename:VK_IMAGE_LAYOUT_PREINITIALIZED or ename:VK_IMAGE_LAYOUT_GENERAL
@ -1167,16 +1178,17 @@ are those written by the memory operations according to its addressing
scheme. If the first alias is not host-accessible, then the bytes affected
are those overlapped by the image subresources that were written. If the
second alias is a host-accessible subresource, the affected bytes become
undefined. If the second alias is a not host-accessible, all sparse blocks
(for sparse residency images) or all subresources (for non-sparse residency
images) that overlap the affected bytes become undefined.
undefined. If the second alias is a not host-accessible, all sparse image
blocks (for sparse partially-resident images) or all subresources (for
non-sparse image and fully resident sparse images) that overlap the affected
bytes become undefined.
If any subresources are made undefined due to writes to an alias, then each
of those subresources must: have its layout transitioned from
ename:VK_IMAGE_LAYOUT_UNDEFINED to a valid layout before it is used, or from
ename:VK_IMAGE_LAYOUT_PREINITIALIZED if the memory has been written by the
host. If any blocks of a sparse image have been made undefined, then only
the subresources containing them must: be transitioned.
host. If any sparse blocks of a sparse image have been made undefined, then
only the subresources containing them must: be transitioned.
Use of an overlapping range by two aliases must: be separated by a memory
dependency using the appropriate access types if at least one of those uses

View File

@ -33,7 +33,7 @@ feature enables specified in slink:VkPhysicalDeviceFeatures.
* <<features-features-sparseBinding,Sparse binding>> is the base
feature, and provides the following capabilities:
** Resources can: be bound at some defined (block) granularity.
** Resources can: be bound at some defined (sparse block) granularity.
** The entire resource must: be bound to memory before use regardless of
regions actually accessed.
** No specific mapping of image region to memory offset is defined, i.e.
@ -55,8 +55,9 @@ feature enables specified in slink:VkPhysicalDeviceFeatures.
** Resources do not have to be completely bound to memory before use on
the device.
** Images have a prescribed block layout, allowing specific image blocks
to be bound to specific offsets in memory allocations.
** Images have a prescribed sparse image block layout, allowing specific
rectangular regions of the image to be bound to specific offsets in
memory allocations.
** Consistency of access to unbound regions of the resource is defined by
the absence or presence of
sname:VkPhysicalDeviceSparseProperties::pname:residencyNonResidentStrict.
@ -108,7 +109,7 @@ pname:sparseResidency16Samples.
* <<features-features-sparseResidencyAliased,Sparse aliasing>>
provides the following capability that can: be enabled per resource:
+
Allows physical memory blocks to be shared between multiple locations in
Allows physical memory ranges to be shared between multiple locations in
the same sparse resource or between multiple sparse resources, with each
binding of a memory location observing a consistent interpretation of the
memory contents.
@ -136,8 +137,8 @@ use.
=== Sparse Buffer and Fully-Resident Image Block Size
The block size for sparse buffers and fully-resident images is reported as
sname:VkMemoryRequirements::pname:alignment. pname:alignment
The sparse block size in bytes for sparse buffers and fully-resident images is
reported as sname:VkMemoryRequirements::pname:alignment. pname:alignment
represents both the memory alignment requirement and the binding granularity
(in bytes) for sparse resources.
@ -157,11 +158,13 @@ the ability for some regions of the buffer to be unbound during device use.
== Sparse Partially-Resident Images
sname:VkImage objects created with the
ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT bit allow blocks of the image to
be bound to specific ranges of memory. This allows the application to manage
residency at either the subresource or pixel block granularity. Each
subresource (outside of the <<sparsememory-miptail,mip tail>>) starts on a
block boundary and has a size that is an integer number of blocks of memory.
ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT bit allow specific rectangular
regions of the image called sparse image blocks to be bound to specific
ranges of memory. This allows the application to manage residency at either
subresource or sparse image block granularity. Each subresource (outside of
the <<sparsememory-miptail,mip tail>>) starts on a sparse block boundary and
has dimensions that are integer multiples of the corresponding dimensions of
the sparse image block.
[NOTE]
.Note
@ -230,25 +233,26 @@ Sparse images created using ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT have no
specific mapping of image region or subresource to memory offset defined, so
the entire image can: be thought of as a linear opaque address region.
However, images created with ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT do
have a prescribed block layout, and hence each subresource must: start on a
block boundary. Within each array layer, the set of mip-levels that are too
small to fill a block are grouped together into a _mip tail region_.
have a prescribed sparse image block layout, and hence each subresource must:
start on a sparse block boundary. Within each array layer, the set of
mip-levels that have a smaller size than the sparse block size in bytes are
grouped together into a _mip tail region_.
If the ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT flag is present in
the pname:flags member of sname:VkSparseImageFormatProperties, for the
image's pname:format, then any mip-level which is not a multiple of the
block size, and all subsequent mip-levels, are also included in the mip tail
region.
image's pname:format, then any mip-level which has dimensions that are not
integer multiples of the corresponding dimensions of the sparse image block,
and all subsequent mip-levels, are also included in the mip tail region.
The following member of sname:VkPhysicalDeviceSparseProperties may: affect
how the implementation places mip levels in the mip tail region:
* pname:residencyAlignedMipSize
Each mip tail region is bound to memory as an opaque block (i.e. must: be
Each mip tail region is bound to memory as an opaque region (i.e. must: be
bound using a slink:VkSparseImageOpaqueMemoryBindInfo structure) and may: be
of a size greater than or equal to the normal block size. It is guaranteed
to be an integer multiple of the normal image block size (in bytes).
of a size greater than or equal to the sparse block size in bytes. This size
is guaranteed to be an integer multiple of the sparse block size in bytes.
An implementation may: choose to allow each array-layer's mip tail region to
be bound to memory independently or require that all array-layer's mip tail
@ -266,12 +270,13 @@ image::images/sparseimage.{svgpdf}[align="center", title="Sparse Image"]
In the absence of ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT and
ename:VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT, each array layer contains a
mip tail region containing pixel data for all mip levels smaller than the
sparse block size in any dimension.
sparse image block in any dimension.
Mip levels that are as large or larger than a block in all dimensions can:
be bound individually. Right-edges and bottom-edges of each level are
allowed to have partially used blocks. Any bound partially-used-blocks must:
still have their full block size allocated in memory.
Mip levels that are as large or larger than a sparse image block in all
dimensions can: be bound individually. Right-edges and bottom-edges of each
level are allowed to have partially used sparse blocks. Any bound
partially-used-sparse-blocks must: still have their full sparse block
size in bytes allocated in memory.
image::images/sparseimage_singlemiptail.{svgpdf}[align="center", title="Sparse Image with Single Mip Tail"]
@ -284,15 +289,16 @@ image::images/sparseimage_alignedmipsize.{svgpdf}[align="center", title="Sparse
.Note
====
The mip tail regions are presented here in 2D arrays simply for figure size
reasons. Each mip tail is logically a single array of blocks with an
implementation-dependent mapping of pixels to blocks.
reasons. Each mip tail is logically a single array of sparse blocks with an
implementation-dependent mapping of pixels to sparse blocks.
====
When ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT is present the first
mip level that would contain partially used blocks begins the mip tail
mip level that would contain partially used sparse blocks begins the mip tail
region. This level and all subsequent levels are placed in the mip tail.
Only the first latexmath:[$N$] mip levels that are an exact multiple of the
sparse block size can: be bound and unbound on a block basis.
Only the first latexmath:[$N$] mip levels whose dimensions are an exact
multiple of the sparse image block dimensions can: be bound and unbound on a
sparse block basis.
image::images/sparseimage_alignedmipsize_singlemiptail.{svgpdf}[align="center", title="Sparse Image with Aligned Mip Size and Single Mip Tail"]
@ -300,8 +306,8 @@ image::images/sparseimage_alignedmipsize_singlemiptail.{svgpdf}[align="center",
.Note
====
The mip tail region is presented here in a 2D array simply for figure size
reasons. It is logically a single array of blocks with an
implementation-dependent mapping of pixels to blocks.
reasons. It is logically a single array of sparse blocks with an
implementation-dependent mapping of pixels to sparse blocks.
====
When both ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT and
@ -309,16 +315,25 @@ ename:VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT are present the constraints
from each of these flags are in effect.
[[sparsememory-standard-sizes]]
=== Standard Image Block Sizes
[[sparsememory-standard-shapes]]
=== Standard Sparse Image Block Shapes
Standard sparse image block sizes are defined by {apiname} and depend on
the format of the image. Layout of pixels within a block is
implementation dependent. All currently defined standard block shapes are 64
KB in size.
Standard sparse image block shapes define a standard set of dimensions for
sparse image blocks that depend on the format of the image. Layout of pixels
within a sparse image block is implementation dependent. All currently defined
standard sparse image block shapes are 64 KB in size.
For compressed pixel formats (e.g. ename:VK_FORMAT_BC5_UNORM_BLOCK), the
pixel size is the size of the compression block (128-bit for etext:BC5).
For block-compressed formats (e.g. ename:VK_FORMAT_BC5_UNORM_BLOCK), the
pixel size is the size of the compressed texel block (128-bit for etext:BC5)
thus the dimensions of the standard sparse image block shapes apply in terms
of compressed texel blocks.
.Note
====
For block-compressed formats, the dimensions of a sparse image block in terms
of texels can: be calculated by multiplying the sparse image block dimensions
by the compressed texel block dimensions.
====
<<<
@ -347,8 +362,9 @@ pixel size is the size of the compression block (128-bit for etext:BC5).
|====
Implementations that support the standard block shape for all applicable
formats may: advertise the following sname:VkPhysicalDeviceSparseProperties:
Implementations that support the standard sparse image block shape for all
applicable formats may: advertise the following
sname:VkPhysicalDeviceSparseProperties:
* pname:residencyStandard2DBlockShape
* pname:residencyStandard2DMultisampleBlockShape
@ -356,26 +372,29 @@ formats may: advertise the following sname:VkPhysicalDeviceSparseProperties:
Reporting each of these features does _not_ imply that all possible image
types are supported as sparse. Instead, this indicates that no supported
sparse image of the corresponding type will use a custom block size.
sparse image of the corresponding type will use custom sparse image block
dimensions for any formats that have a corresponding standard sparse image
block shape.
[[sparsememory-blocksizes]]
=== Custom Image Block Sizes
[[sparsememory-custom-shapes]]
=== Custom Sparse Image Block Shapes
An implementation that does not support the standard image block sizes may:
choose to support a custom block size instead. This custom block size will
have the pixel region size reported in
sname:VkSparseImageFormatProperties::pname:imageGranularity. As with
standard block sizes, the byte-size of the custom block size will be
reported in sname:VkMemoryRequirements::pname:alignment.
An implementation that does not support a standard image block shape for a
particular sparse partially-resident image may: choose to support a custom
sparse image block shape for it instead. The dimensions of such a custom
sparse image block shape are reported in
sname:VkSparseImageFormatProperties::pname:imageGranularity. As with standard
sparse image block shapes, the size in bytes of the custom sparse image
block shape will be reported in sname:VkMemoryRequirements::pname:alignment.
Custom block sizes are reported through
Custom sparse image block dimensions are reported through
fname:vkGetPhysicalDeviceSparseImageFormatProperties and
fname:vkGetImageSparseMemoryRequirements.
An implementation mustnot: support both the standard block size and a custom
block size for the same image. The standard size must: be used if it is
supported.
An implementation mustnot: support both the standard sparse image block shape
and a custom sparse image block shape for the same image. The standard sparse
image block shape must: be used if it is supported.
[[sparsememory-multiaspect]]
@ -394,15 +413,15 @@ image::images/sparseimage_multiaspect.{svgpdf}[align="center",title="Multiple As
.Note
====
The mip tail regions are presented here in 2D arrays simply for figure size
reasons. Each mip tail is logically a single array of blocks with an
implementation-dependent mapping of pixels to blocks.
reasons. Each mip tail is logically a single array of sparse blocks with an
implementation-dependent mapping of pixels to sparse blocks.
====
In the figure above the depth, stencil, and metadata aspects all have unique
sparse properties. The per-pixel stencil data is
latexmath:[${}^{1}\!/\!{}_4$] the size of the depth data, hence the stencil
sparse blocks include latexmath:[$4x$] the number of pixels. The block
byte-size for all of the aspects is identical and defined by
sparse blocks include latexmath:[$4x$] the number of pixels. The sparse block
size in bytes for all of the aspects is identical and defined by
sname:VkMemoryRequirements::pname:alignment.
@ -445,14 +464,14 @@ must: abide by the following guidelines:
* All resources that access aliased physical memory must interpret the
memory in the same way. This implies the following:
** Buffers and images cannot: alias the same physical memory in a data
consistent fashion. The physical memory blocks must be used exclusively
consistent fashion. The physical memory ranges must be used exclusively
by buffers or used exclusively by images for data consistency to be
guaranteed.
** Memory in sparse image mip tail regions cannot: access
aliased memory in a data consistent fashion.
** Sparse images that alias the same physical memory must: have compatible
formats and be using the same block shape in order to access aliased
memory in a data consistent fashion.
formats and be using the same sparse image block shape in order to access
aliased memory in a data consistent fashion.
Failure to follow any of the above guidelines will require the application
to abide by the normal, non-sparse resource <<resources-memory-aliasing,
@ -653,40 +672,42 @@ include::../structs/VkPhysicalDeviceSparseProperties.txt[]
* pname:residencyStandard2DBlockShape is ename:VK_TRUE if the physical
device will access all single-sample 2D sparse resources using the
standard block shapes (based on image format), as described in the
<<sparsememory-sparseblockshapessingle,Standard Sparse Image Block
standard sparse image block shapes (based on image format), as described
in the <<sparsememory-sparseblockshapessingle,Standard Sparse Image Block
Shapes (Single Sample)>> table. If this property is not supported the
value returned in the pname:imageGranularity member of the
sname:VkSparseImageFormatProperties structure for single-sample 2D
images is not required: to match the standard image block sizes listed
in the table.
images is not required: to match the standard sparse image block
dimensions listed in the table.
* pname:residencyStandard2DMultisampleBlockShape is ename:VK_TRUE if the
physical device will access all multisample 2D sparse resources using
the standard block shapes (based on image format), as described in the
<<sparsememory-sparseblockshapesmsaa,Standard Sparse Image Block Shapes
(MSAA)>> table. If this property is not supported, the value returned in
the pname:imageGranularity member of the
the standard sparse image block shapes (based on image format), as
described in the <<sparsememory-sparseblockshapesmsaa,Standard Sparse
Image Block Shapes (MSAA)>> table. If this property is not supported, the
value returned in the pname:imageGranularity member of the
sname:VkSparseImageFormatProperties structure for multisample 2D images
is not required: to match the standard image block sizes listed in the
table.
is not required: to match the standard sparse image block dimensions
listed in the table.
* pname:residencyStandard3DBlockShape is ename:VK_TRUE if the physical
device will access all 3D sparse resources using the standard block
shapes (based on image format), as described in the
device will access all 3D sparse resources using the standard sparse image
block shapes (based on image format), as described in the
<<sparsememory-sparseblockshapessingle,Standard Sparse Image Block
Shapes (Single Sample)>> table. If this property is not supported, the
value returned in the pname:imageGranularity member of the
sname:VkSparseImageFormatProperties structure for 3D images is not
required: to match the standard image block sizes listed in the table.
required: to match the standard sparse image block dimensions listed in
the table.
* pname:residencyAlignedMipSize is ename:VK_TRUE if images with mip level
dimensions that are not a multiple of a block size may: be placed in the
mip tail. If this property is not reported, only mip levels with
dimensions smaller than the pname:imageGranularity member
of the sname:VkSparseImageFormatProperties structure will be placed in
the mip tail. If this property is reported the implementation is allowed
to return ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT in the
pname:flags member of sname:VkSparseImageFormatProperties, indicating
that mip level dimensions that are not a multiple of a block size will
be placed in the mip tail.
dimensions that are not integer multiples of the corresponding dimensions
of the sparse image block may: be placed in the mip tail. If this property
is not reported, only mip levels with dimensions smaller than the
pname:imageGranularity member of the sname:VkSparseImageFormatProperties
structure will be placed in the mip tail. If this property is reported the
implementation is allowed to return
ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT in the pname:flags
member of sname:VkSparseImageFormatProperties, indicating that mip level
dimensions that are not integer multiples of the corresponding dimensions
of the sparse image block will be placed in the mip tail.
* pname:residencyNonResidentStrict specifies whether the physical device
can: consistently access non-resident regions of a resource. If this
property is ename:VK_TRUE, access to non-resident regions of resources
@ -700,11 +721,11 @@ include::../validity/structs/VkPhysicalDeviceSparseProperties.txt[]
=== Sparse Image Format Properties
Given that certain aspects of sparse image support, including the
sparse image block size, may: be implementation-dependent,
sparse image block dimensions, may: be implementation-dependent,
flink:vkGetPhysicalDeviceSparseImageFormatProperties can: be used to
query for sparse image format properties prior to resource creation. This
command is used to check whether a given set of sparse image parameters is
supported and what the sparse block shape will be.
supported and what the sparse image block shape will be.
==== Sparse Image Format Properties API
@ -714,7 +735,7 @@ include::../structs/VkSparseImageFormatProperties.txt[]
* pname:aspectMask is a elink:VkImageAspectFlags specifying which
aspects of the image the properties apply to.
* pname:imageGranularity is the width, height, and depth of the
block in pixels / compressed blocks.
sparse image block in texels or compressed texel blocks.
* pname:flags is a bitmask specifying additional information about
the sparse resource. Bits which can: be set include:
+
@ -724,12 +745,12 @@ include::../enums/VkSparseImageFormatFlagBits.txt[]
** If ename:VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT is set, the image
uses a single mip tail region for all array layers.
** If ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT is set, the first
mip level that is not an exact multiple of the sparse image block size
begins the mip tail region.
mip level whose dimensions are not integer multiples of the corresponding
dimensions of the sparse image block begins the mip tail region.
** If ename:VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT is set, the
image uses a non-standard sparse block size, and the
pname:imageGranularity values do not match the standard block size for
the given pixel format.
image uses non-standard sparse image block dimensions, and the
pname:imageGranularity values do not match the standard sparse image
block dimensions for the given pixel format.
--
include::../validity/structs/VkSparseImageFormatProperties.txt[]
@ -818,8 +839,8 @@ sname:VkBuffer objects and sname:VkImage objects.
Buffers (both fully and partially resident) and fully-resident images can:
be bound to memory using only the data from sname:VkMemoryRequirements. For
all sparse resources the sname:VkMemoryRequirements::pname:alignment member
denotes both the bindable block byte-size and required: alignment of
sname:VkDeviceMemory.
denotes both the bindable sparse block size in bytes and required: alignment
of sname:VkDeviceMemory.
[[sparsememory-memory-partially-resident]]
@ -827,8 +848,8 @@ sname:VkDeviceMemory.
Partially resident images have a different method for binding memory. As
with buffers and fully resident images, the
sname:VkMemoryRequirements::pname:alignment field denotes the bindable block
byte-size for the image.
sname:VkMemoryRequirements::pname:alignment field denotes the bindable sparse
block size in bytes for the image.
Requesting sparse memory requirements for sname:VkImage objects using
fname:vkGetImageSparseMemoryRequirements will return an array of one or more
@ -847,32 +868,34 @@ include::../structs/VkSparseImageMemoryRequirements.txt[]
* pname:formatProperties.aspectMask is the set of aspects of the image
that this sparse memory requirement applies to. This will usually have a
single aspect specified. However, depth/stencil images may: have depth
and stencil data interleaved into the same memory blocks, in which case
and stencil data interleaved in the same sparse block, in which case
both ename:VK_IMAGE_ASPECT_DEPTH_BIT and
ename:VK_IMAGE_ASPECT_STENCIL_BIT would be present.
* pname:formatProperties.imageGranularity describes the size of a single
bindable block in pixel units. For aspect
ename:VK_IMAGE_ASPECT_METADATA_BIT, this region size will be zero
* pname:formatProperties.imageGranularity describes the dimensions of a
single bindable sparse image block in pixel units. For aspect
ename:VK_IMAGE_ASPECT_METADATA_BIT, all dimensions will be zero
pixels. All metadata is located in the mip tail region.
* pname:formatProperties.flags contains members of
elink:VkSparseImageFormatFlags:
** If ename:VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT is set the image
uses a single mip tail region for all array layers.
** If ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT is set the image
mip levels must: be an exact multiple of the sparse image block size
for levels not located in the mip tail.
** If ename:VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT is set the
dimensions of mip levels must: be integer multiples of the corresponding
dimensions of the sparse image block for levels not located in the mip
tail.
** If ename:VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT is set the
image uses a non-standard sparse block size. The
image uses non-standard sparse image block dimensions. The
pname:formatProperties.imageGranularity values do not match the
standard block size for image's given pixel format.
standard sparse image block dimension corresponding to the image's
pixel format.
* pname:imageMipTailFirstLod is the first mip level at which subresources
are included in the mip tail block.
are included in the mip tail region.
* pname:imageMipTailSize is the memory size (in bytes) of the mip tail
block. If pname:formatProperties.flags contains
region. If pname:formatProperties.flags contains
ename:VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT, this is the size of the
whole mip tail, otherwise this is the size of the mip tail of a single
array layer. This value is guaranteed to be a multiple of the block
byte-size.
array layer. This value is guaranteed to be a multiple of the sparse block
size in bytes.
* pname:imageMipTailOffset is the opaque memory offset used with
slink:VkSparseImageOpaqueMemoryBindInfo to bind the mip tail region(s).
* pname:imageMipTailStride is the offset stride between each array-layer's
@ -960,10 +983,10 @@ ranges of the same resource while a bind operation is executing.
[NOTE]
.Note
====
Implementations must: provide a guarantee that simultaneously binding blocks
while another queue accesses those same blocks via a sparse resource
mustnot: access memory owned by another process or otherwise corrupt the
system.
Implementations must: provide a guarantee that simultaneously binding sparse
blocks while another queue accesses those same sparse blocks via a sparse
resource mustnot: access memory owned by another process or otherwise corrupt
the system.
====
While some implementations may: include ename:VK_QUEUE_SPARSE_BINDING_BIT
@ -1140,13 +1163,14 @@ include::../structs/VkSparseImageMemoryBind.txt[]
* pname:offset are the coordinates of the first texel within the
subresource to bind.
* pname:extent is the size in texels of the region within the subresource
to bind. The extent must: be a multiple of the block size, except when
binding blocks along the edge of a subresource it can: instead be such
that any coordinate of latexmath:[$\mathit{offset} + \mathit{extent}$]
equals the subresource size in that dimension.
* pname:memory is the sname:VkDeviceMemory object that the blocks of the
image are bound to. If pname:memory is sname:VK_NULL_HANDLE, the blocks
are unbound.
to bind. The extent must: be a multiple of the sparse image block
dimensions, except when binding sparse image blocks along the edge of a
subresource it can: instead be such that any coordinate of
latexmath:[$\mathit{offset} + \mathit{extent}$] equals the corresponding
dimensions of the subresource.
* pname:memory is the sname:VkDeviceMemory object that the sparse image
blocks of the image are bound to. If pname:memory is sname:VK_NULL_HANDLE,
the sparse image blocks are unbound.
* pname:memoryOffset is an offset into sname:VkDeviceMemory object. If
pname:memory is sname:VK_NULL_HANDLE, this value is ignored.
* pname:flags are sparse memory binding flags.
@ -1232,7 +1256,7 @@ binding them to physical memory.
This basic example creates a normal sname:VkImage object but uses
fine-grained memory allocation to back the resource with multiple memory
blocks.
ranges.
[source,{basebackend@docbook:c++:cpp}]
---------------------------------------------------
@ -1262,7 +1286,7 @@ vkGetImageMemoryRequirements(
sparseImage,
&memoryRequirements);
// Bind memory in fine-grained fashion, find available memory blocks
// Bind memory in fine-grained fashion, find available memory ranges
// from potentially multiple VkDeviceMemory pools.
// (Illustration purposes only, can be optimized for perf)
while (memoryRequirements.size && bindCount < MAX_CHUNKS)
@ -1270,14 +1294,14 @@ while (memoryRequirements.size && bindCount < MAX_CHUNKS)
VkSparseMemoryBind* pBind = &binds[bindCount];
pBind->resourceOffset = offset;
AllocateOrGetMemoryBlock(
AllocateOrGetMemoryRange(
device,
&memoryRequirements,
&pBind->memory,
&pBind->memoryOffset,
&pBind->size);
// memory blocks must be sized as multiples of the alignment
// memory ranges must be sized as multiples of the alignment
assert(IsMultiple(pBind->size, memoryRequirements.alignment));
assert(IsMultiple(pBind->memoryOffset, memoryRequirements.alignment));
@ -1393,7 +1417,7 @@ for (uint32_t i = 0; i < sparseRequirementsCount; ++i)
pBind->memorySize = pSparseReqs[i].imageMipTailSize;
bindCount++;
// ... Allocate memory block
// ... Allocate memory range
pBind->resourceOffset = pSparseReqs[i].imageMipTailOffset;
pBind->memoryOffset = /* allocated memoryOffset */;
@ -1403,14 +1427,14 @@ for (uint32_t i = 0; i < sparseRequirementsCount; ++i)
}
else
{
// Need a mip tail block per array layer.
// Need a mip tail region per array layer.
for (uint32_t a = 0; a < sparseImageInfo.arrayLayers; ++a)
{
VkSparseMemoryBind* pBind = &binds[bindCount];
pBind->memorySize = pSparseReqs[i].imageMipTailSize;
bindCount++;
// ... Allocate memory block
// ... Allocate memory range
pBind->resourceOffset = pSparseReqs[i].imageMipTailOffset +
(a * pSparseReqs[i].imageMipTailStride);
@ -1446,7 +1470,7 @@ for (uint32_t i = 0; i < sparseRequirementsCount; ++i)
// Allocate memory for each array layer
for (uint32_t a = 0; a < sparseImageInfo.arrayLayers; ++a)
{
// ... Allocate memory block
// ... Allocate memory range
VkSparseImageMemoryBind* pBind = &imageBinds[a];
pBind->subresource.aspectMask = pSparseReqs[i].formatProperties.aspectMask;

View File

@ -12,7 +12,7 @@ queue submissions, and between commands within a command buffer.
synchronization primitives for these purposes. Further, memory caches and
other optimizations mean that the normal flow of command execution does not
guarantee that all memory transactions from a command are immediately
visible to other agents with views into a given block of memory. {apiname}
visible to other agents with views into a given range of memory. {apiname}
also provides barrier operations to ensure this type of synchronization.
Four synchronization primitive types are exposed by {apiname}. These are:

View File

@ -601,8 +601,8 @@ endif::editing-notes[]
If the sname:VkPhysicalDeviceSparseProperties property
pname:residencyNonResidentStrict is true, a sparse unbound texel is replaced
with zero values in the same fashion as described for reads from buffer
resources above.
with 0 or 0.0 values for integer and floating-point components of the image
format, respectively.
If pname:residencyNonResidentStrict is false, the read must: be safe, but
the value of the sparse unbound texel is undefined.
@ -1518,10 +1518,10 @@ pname:addressModeW parameters of the sampler, respectively.
=== Texel Gathering
SPIR-V instructions with code:Gather in the name return a vector derived
from a 2x2 block of texels in the base level of the image view. The rules
for the etext:LINEAR minification filter are applied to identify the four
selected texels. Each texel is then converted to an RGBA value according to
<<textures-conversion-to-rgba,conversion to RGBA>> and then
from a 2x2 rectangular region of texels in the base level of the image view.
The rules for the etext:LINEAR minification filter are applied to identify the
four selected texels. Each texel is then converted to an RGBA value according
to <<textures-conversion-to-rgba,conversion to RGBA>> and then
<<textures-component-swizzle,swizzled>>. A four-component vector is then
assembled by taking the component indicated by the code:Component value in
the instruction from the swizzled color value of the four texels:

View File

@ -0,0 +1,20 @@
// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
ifndef::doctype-manpage[]
[[PFN_vkDebugReportCallbackEXT,PFN_vkDebugReportCallbackEXT]]
["source","{basebackend@docbook:c++:cpp}",title=""]
endif::doctype-manpage[]
ifdef::doctype-manpage[]
["source","{basebackend@docbook:c++:cpp}"]
endif::doctype-manpage[]
------------------------------------------------------------------------------
typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
VkDebugReportFlagsEXT flags,
VkDebugReportObjectTypeEXT objectType,
uint64_t object,
size_t location,
int32_t messageCode,
const char* pLayerPrefix,
const char* pMessage,
void* pUserData);
------------------------------------------------------------------------------

View File

@ -0,0 +1,26 @@
VkAccessFlagBits(3)
===================
Name
----
VkAccessFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkAccessFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkAccessFlags(3)
================
Name
----
VkAccessFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkAccessFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkAndroidSurfaceCreateFlagsKHR(3)
=================================
Name
----
VkAndroidSurfaceCreateFlagsKHR - Stub page (not yet written)
C Specification
---------------
include::../flags/VkAndroidSurfaceCreateFlagsKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkAndroidSurfaceCreateInfoKHR(3)
================================
Name
----
VkAndroidSurfaceCreateInfoKHR - Stub page (not yet written)
C Specification
---------------
include::../structs/VkAndroidSurfaceCreateInfoKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkAndroidSurfaceCreateInfoKHR.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkApplicationInfo(3)
====================
Name
----
VkApplicationInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkApplicationInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkApplicationInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkAttachmentDescription(3)
==========================
Name
----
VkAttachmentDescription - Stub page (not yet written)
C Specification
---------------
include::../structs/VkAttachmentDescription.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkAttachmentDescription.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkAttachmentDescriptionFlagBits(3)
==================================
Name
----
VkAttachmentDescriptionFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkAttachmentDescriptionFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkAttachmentDescriptionFlags(3)
===============================
Name
----
VkAttachmentDescriptionFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkAttachmentDescriptionFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkAttachmentLoadOp(3)
=====================
Name
----
VkAttachmentLoadOp - Stub page (not yet written)
C Specification
---------------
include::../enums/VkAttachmentLoadOp.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkAttachmentReference(3)
========================
Name
----
VkAttachmentReference - Stub page (not yet written)
C Specification
---------------
include::../structs/VkAttachmentReference.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkAttachmentReference.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkAttachmentStoreOp(3)
======================
Name
----
VkAttachmentStoreOp - Stub page (not yet written)
C Specification
---------------
include::../enums/VkAttachmentStoreOp.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkBindSparseInfo(3)
===================
Name
----
VkBindSparseInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkBindSparseInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkBindSparseInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkBlendFactor(3)
================
Name
----
VkBlendFactor - Stub page (not yet written)
C Specification
---------------
include::../enums/VkBlendFactor.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkBlendOp(3)
============
Name
----
VkBlendOp - Stub page (not yet written)
C Specification
---------------
include::../enums/VkBlendOp.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkBorderColor(3)
================
Name
----
VkBorderColor - Stub page (not yet written)
C Specification
---------------
include::../enums/VkBorderColor.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkBufferCopy(3)
===============
Name
----
VkBufferCopy - Stub page (not yet written)
C Specification
---------------
include::../structs/VkBufferCopy.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkBufferCopy.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkBufferCreateFlagBits(3)
=========================
Name
----
VkBufferCreateFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkBufferCreateFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkBufferImageCopy(3)
====================
Name
----
VkBufferImageCopy - Stub page (not yet written)
C Specification
---------------
include::../structs/VkBufferImageCopy.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkBufferImageCopy.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkBufferUsageFlagBits(3)
========================
Name
----
VkBufferUsageFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkBufferUsageFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkBufferViewCreateFlags(3)
==========================
Name
----
VkBufferViewCreateFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkBufferViewCreateFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkBufferViewCreateInfo(3)
=========================
Name
----
VkBufferViewCreateInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkBufferViewCreateInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkBufferViewCreateInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkClearAttachment(3)
====================
Name
----
VkClearAttachment - Stub page (not yet written)
C Specification
---------------
include::../structs/VkClearAttachment.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkClearAttachment.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkClearColorValue(3)
====================
Name
----
VkClearColorValue - Stub page (not yet written)
C Specification
---------------
include::../structs/VkClearColorValue.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkClearColorValue.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkClearDepthStencilValue(3)
===========================
Name
----
VkClearDepthStencilValue - Stub page (not yet written)
C Specification
---------------
include::../structs/VkClearDepthStencilValue.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkClearDepthStencilValue.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkClearRect(3)
==============
Name
----
VkClearRect - Stub page (not yet written)
C Specification
---------------
include::../structs/VkClearRect.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkClearRect.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkClearValue(3)
===============
Name
----
VkClearValue - Stub page (not yet written)
C Specification
---------------
include::../structs/VkClearValue.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkClearValue.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkColorComponentFlagBits(3)
===========================
Name
----
VkColorComponentFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkColorComponentFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkColorComponentFlags(3)
========================
Name
----
VkColorComponentFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkColorComponentFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkColorSpaceKHR(3)
==================
Name
----
VkColorSpaceKHR - Stub page (not yet written)
C Specification
---------------
include::../enums/VkColorSpaceKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkCommandBufferBeginInfo(3)
===========================
Name
----
VkCommandBufferBeginInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkCommandBufferBeginInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkCommandBufferBeginInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkCommandBufferInheritanceInfo(3)
=================================
Name
----
VkCommandBufferInheritanceInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkCommandBufferInheritanceInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkCommandBufferInheritanceInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandBufferLevel(3)
=======================
Name
----
VkCommandBufferLevel - Stub page (not yet written)
C Specification
---------------
include::../enums/VkCommandBufferLevel.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandBufferResetFlagBits(3)
===============================
Name
----
VkCommandBufferResetFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkCommandBufferResetFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandBufferResetFlags(3)
============================
Name
----
VkCommandBufferResetFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkCommandBufferResetFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandBufferUsageFlagBits(3)
===============================
Name
----
VkCommandBufferUsageFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkCommandBufferUsageFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandBufferUsageFlags(3)
============================
Name
----
VkCommandBufferUsageFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkCommandBufferUsageFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandPoolCreateFlagBits(3)
==============================
Name
----
VkCommandPoolCreateFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkCommandPoolCreateFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandPoolCreateFlags(3)
===========================
Name
----
VkCommandPoolCreateFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkCommandPoolCreateFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkCommandPoolCreateInfo(3)
==========================
Name
----
VkCommandPoolCreateInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkCommandPoolCreateInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkCommandPoolCreateInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandPoolResetFlagBits(3)
=============================
Name
----
VkCommandPoolResetFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkCommandPoolResetFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCommandPoolResetFlags(3)
==========================
Name
----
VkCommandPoolResetFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkCommandPoolResetFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCompareOp(3)
==============
Name
----
VkCompareOp - Stub page (not yet written)
C Specification
---------------
include::../enums/VkCompareOp.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkComponentMapping(3)
=====================
Name
----
VkComponentMapping - Stub page (not yet written)
C Specification
---------------
include::../structs/VkComponentMapping.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkComponentMapping.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkComponentSwizzle(3)
=====================
Name
----
VkComponentSwizzle - Stub page (not yet written)
C Specification
---------------
include::../enums/VkComponentSwizzle.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCompositeAlphaFlagBitsKHR(3)
==============================
Name
----
VkCompositeAlphaFlagBitsKHR - Stub page (not yet written)
C Specification
---------------
include::../enums/VkCompositeAlphaFlagBitsKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCompositeAlphaFlagsKHR(3)
===========================
Name
----
VkCompositeAlphaFlagsKHR - Stub page (not yet written)
C Specification
---------------
include::../flags/VkCompositeAlphaFlagsKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkComputePipelineCreateInfo(3)
==============================
Name
----
VkComputePipelineCreateInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkComputePipelineCreateInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkComputePipelineCreateInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkCopyDescriptorSet(3)
======================
Name
----
VkCopyDescriptorSet - Stub page (not yet written)
C Specification
---------------
include::../structs/VkCopyDescriptorSet.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkCopyDescriptorSet.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCullModeFlagBits(3)
=====================
Name
----
VkCullModeFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkCullModeFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkCullModeFlags(3)
==================
Name
----
VkCullModeFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkCullModeFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDebugReportCallbackCreateInfoEXT(3)
=====================================
Name
----
VkDebugReportCallbackCreateInfoEXT - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDebugReportCallbackCreateInfoEXT.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDebugReportCallbackCreateInfoEXT.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDebugReportErrorEXT(3)
========================
Name
----
VkDebugReportErrorEXT - Stub page (not yet written)
C Specification
---------------
include::../enums/VkDebugReportErrorEXT.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDebugReportFlagBitsEXT(3)
===========================
Name
----
VkDebugReportFlagBitsEXT - Stub page (not yet written)
C Specification
---------------
include::../enums/VkDebugReportFlagBitsEXT.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDebugReportFlagsEXT(3)
========================
Name
----
VkDebugReportFlagsEXT - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDebugReportFlagsEXT.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDebugReportObjectTypeEXT(3)
=============================
Name
----
VkDebugReportObjectTypeEXT - Stub page (not yet written)
C Specification
---------------
include::../enums/VkDebugReportObjectTypeEXT.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDependencyFlagBits(3)
=======================
Name
----
VkDependencyFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkDependencyFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDependencyFlags(3)
====================
Name
----
VkDependencyFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDependencyFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDescriptorBufferInfo(3)
=========================
Name
----
VkDescriptorBufferInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDescriptorBufferInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDescriptorBufferInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDescriptorImageInfo(3)
========================
Name
----
VkDescriptorImageInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDescriptorImageInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDescriptorImageInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDescriptorPoolCreateFlagBits(3)
=================================
Name
----
VkDescriptorPoolCreateFlagBits - Stub page (not yet written)
C Specification
---------------
include::../enums/VkDescriptorPoolCreateFlagBits.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDescriptorPoolCreateFlags(3)
==============================
Name
----
VkDescriptorPoolCreateFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDescriptorPoolCreateFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDescriptorPoolCreateInfo(3)
=============================
Name
----
VkDescriptorPoolCreateInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDescriptorPoolCreateInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDescriptorPoolCreateInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDescriptorPoolResetFlags(3)
=============================
Name
----
VkDescriptorPoolResetFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDescriptorPoolResetFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDescriptorPoolSize(3)
=======================
Name
----
VkDescriptorPoolSize - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDescriptorPoolSize.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDescriptorPoolSize.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDescriptorSetLayoutBinding(3)
===============================
Name
----
VkDescriptorSetLayoutBinding - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDescriptorSetLayoutBinding.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDescriptorSetLayoutBinding.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDescriptorSetLayoutCreateFlags(3)
===================================
Name
----
VkDescriptorSetLayoutCreateFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDescriptorSetLayoutCreateFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDescriptorSetLayoutCreateInfo(3)
==================================
Name
----
VkDescriptorSetLayoutCreateInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDescriptorSetLayoutCreateInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDescriptorSetLayoutCreateInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDeviceCreateFlags(3)
======================
Name
----
VkDeviceCreateFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDeviceCreateFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDeviceCreateInfo(3)
=====================
Name
----
VkDeviceCreateInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDeviceCreateInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDeviceCreateInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDeviceQueueCreateFlags(3)
===========================
Name
----
VkDeviceQueueCreateFlags - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDeviceQueueCreateFlags.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDeviceQueueCreateInfo(3)
==========================
Name
----
VkDeviceQueueCreateInfo - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDeviceQueueCreateInfo.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDeviceQueueCreateInfo.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDispatchIndirectCommand(3)
============================
Name
----
VkDispatchIndirectCommand - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDispatchIndirectCommand.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDispatchIndirectCommand.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDisplayModeCreateFlagsKHR(3)
==============================
Name
----
VkDisplayModeCreateFlagsKHR - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDisplayModeCreateFlagsKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDisplayModeCreateInfoKHR(3)
=============================
Name
----
VkDisplayModeCreateInfoKHR - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDisplayModeCreateInfoKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDisplayModeCreateInfoKHR.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDisplayModeParametersKHR(3)
=============================
Name
----
VkDisplayModeParametersKHR - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDisplayModeParametersKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDisplayModeParametersKHR.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDisplayModePropertiesKHR(3)
=============================
Name
----
VkDisplayModePropertiesKHR - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDisplayModePropertiesKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDisplayModePropertiesKHR.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDisplayPlaneAlphaFlagBitsKHR(3)
=================================
Name
----
VkDisplayPlaneAlphaFlagBitsKHR - Stub page (not yet written)
C Specification
---------------
include::../enums/VkDisplayPlaneAlphaFlagBitsKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDisplayPlaneAlphaFlagsKHR(3)
==============================
Name
----
VkDisplayPlaneAlphaFlagsKHR - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDisplayPlaneAlphaFlagsKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDisplayPlaneCapabilitiesKHR(3)
================================
Name
----
VkDisplayPlaneCapabilitiesKHR - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDisplayPlaneCapabilitiesKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDisplayPlaneCapabilitiesKHR.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDisplayPlanePropertiesKHR(3)
==============================
Name
----
VkDisplayPlanePropertiesKHR - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDisplayPlanePropertiesKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDisplayPlanePropertiesKHR.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDisplayPresentInfoKHR(3)
==========================
Name
----
VkDisplayPresentInfoKHR - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDisplayPresentInfoKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDisplayPresentInfoKHR.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,27 @@
VkDisplayPropertiesKHR(3)
=========================
Name
----
VkDisplayPropertiesKHR - Stub page (not yet written)
C Specification
---------------
include::../structs/VkDisplayPropertiesKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Fields
------
Description
-----------
include::../validity/structs/VkDisplayPropertiesKHR.txt[]
See Also
--------
include::footer.txt[]

View File

@ -0,0 +1,26 @@
VkDisplaySurfaceCreateFlagsKHR(3)
=================================
Name
----
VkDisplaySurfaceCreateFlagsKHR - Stub page (not yet written)
C Specification
---------------
include::../flags/VkDisplaySurfaceCreateFlagsKHR.txt[]
This is a stub page. Content has not been filled in yet. Khronos is
aware of the problem and working on it as time allows; please do not
file Github issues bringing the missing content to our attention.
Constants
---------
Description
-----------
See Also
--------
include::footer.txt[]

Some files were not shown because too many files have changed in this diff Show More