2016-07-11 01:13:41 +00:00
|
|
|
// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
|
|
|
|
// Creative Commons Attribution 4.0 International License; see
|
|
|
|
// http://creativecommons.org/licenses/by/4.0/
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
VkPhysicalDeviceLimits(3)
|
|
|
|
=========================
|
|
|
|
|
|
|
|
Name
|
|
|
|
----
|
|
|
|
VkPhysicalDeviceLimits - Structure
|
|
|
|
|
|
|
|
C Specification
|
|
|
|
---------------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin VkPhysicalDeviceLimits Structure
|
|
|
|
|
|
|
|
The sname:VkPhysicalDeviceLimits structure is defined as:
|
|
|
|
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
include::../api/structs/VkPhysicalDeviceLimits.txt[]
|
2016-02-16 09:53:44 +00:00
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
|
|
|
|
Members
|
|
|
|
-------
|
|
|
|
|
|
|
|
* [[features-limits-maxImageDimension1D]] pname:maxImageDimension1D is the
|
|
|
|
maximum dimension (pname:width) of an image created with an
|
|
|
|
pname:imageType of ename:VK_IMAGE_TYPE_1D.
|
|
|
|
* [[features-limits-maxImageDimension2D]] pname:maxImageDimension2D is the
|
|
|
|
maximum dimension (pname:width or pname:height) of an image created with
|
|
|
|
an pname:imageType of ename:VK_IMAGE_TYPE_2D and without
|
|
|
|
ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT set in pname:flags.
|
|
|
|
* [[features-limits-maxImageDimension3D]] pname:maxImageDimension3D is the
|
|
|
|
maximum dimension (pname:width, pname:height, or pname:depth) of an
|
|
|
|
image created with an pname:imageType of ename:VK_IMAGE_TYPE_3D.
|
|
|
|
* [[features-limits-maxImageDimensionCube]] pname:maxImageDimensionCube is
|
|
|
|
the maximum dimension (pname:width or pname:height) of an image created
|
|
|
|
with an pname:imageType of ename:VK_IMAGE_TYPE_2D and with
|
|
|
|
ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT set in pname:flags.
|
|
|
|
* [[features-limits-maxImageArrayLayers]] pname:maxImageArrayLayers is the
|
|
|
|
maximum number of layers (pname:arrayLayers) for an image.
|
|
|
|
* [[features-limits-maxTexelBufferElements]] pname:maxTexelBufferElements
|
|
|
|
is the maximum number of addressable texels for a buffer view created on
|
|
|
|
a buffer which was created with the
|
|
|
|
ename:VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or
|
|
|
|
ename:VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set in the pname:usage
|
|
|
|
member of the sname:VkBufferCreateInfo structure.
|
|
|
|
* [[features-limits-maxUniformBufferRange]] pname:maxUniformBufferRange is
|
|
|
|
the maximum value that can: be specified in the pname:range member of
|
|
|
|
any slink:VkDescriptorBufferInfo structures passed to a call to
|
|
|
|
flink:vkUpdateDescriptorSets for descriptors of type
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC.
|
|
|
|
* [[features-limits-maxStorageBufferRange]] pname:maxStorageBufferRange is
|
|
|
|
the maximum value that can: be specified in the pname:range member of
|
|
|
|
any slink:VkDescriptorBufferInfo structures passed to a call to
|
|
|
|
flink:vkUpdateDescriptorSets for descriptors of type
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC.
|
|
|
|
* [[features-limits-maxPushConstantsSize]] pname:maxPushConstantsSize is
|
|
|
|
the maximum size, in bytes, of the pool of push constant memory. For
|
|
|
|
each of the push constant ranges indicated by the
|
|
|
|
pname:pPushConstantRanges member of the sname:VkPipelineLayoutCreateInfo
|
|
|
|
structure, pname:offset + pname:size must: be less than or equal to this
|
|
|
|
limit.
|
|
|
|
* [[features-limits-maxMemoryAllocationCount]]
|
|
|
|
pname:maxMemoryAllocationCount is the maximum number of device memory
|
|
|
|
allocations, as created by flink:vkAllocateMemory, which can:
|
|
|
|
simultaneously exist.
|
|
|
|
* [[features-limits-maxSamplerAllocationCount]]
|
|
|
|
pname:maxSamplerAllocationCount is the maximum number of sampler
|
|
|
|
objects, as created by flink:vkCreateSampler, which can: simultaneously
|
|
|
|
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 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
|
|
|
|
sparse resources, regardless of whether any memory is bound to them.
|
|
|
|
* [[features-limits-maxBoundDescriptorSets]] pname:maxBoundDescriptorSets
|
|
|
|
is the maximum number of descriptor sets that can: be simultaneously
|
|
|
|
used by a pipeline. All code:DescriptorSet decorations in shader modules
|
|
|
|
must: have a value less than pname:maxBoundDescriptorSets. See
|
|
|
|
<<descriptorsets-sets>>.
|
|
|
|
* [[features-limits-maxPerStageDescriptorSamplers]]
|
|
|
|
pname:maxPerStageDescriptorSamplers is the maximum number of samplers
|
|
|
|
that can: be accessible to a single shader stage in a pipeline layout.
|
|
|
|
Descriptors with a type of ename:VK_DESCRIPTOR_TYPE_SAMPLER or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER count against this
|
|
|
|
limit. A descriptor is accessible to a shader stage when the
|
|
|
|
pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
|
|
|
|
structure has the bit for that shader stage set. See
|
|
|
|
<<descriptorsets-sampler>> and <<descriptorsets-combinedimagesampler>>.
|
|
|
|
* [[features-limits-maxPerStageDescriptorUniformBuffers]]
|
|
|
|
pname:maxPerStageDescriptorUniformBuffers is the maximum number of
|
|
|
|
uniform buffers that can: be accessible to a single shader stage in a
|
|
|
|
pipeline layout. Descriptors with a type of
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against this
|
|
|
|
limit. A descriptor is accessible to a shader stage when the
|
|
|
|
pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
|
|
|
|
structure has the bit for that shader stage set. See
|
|
|
|
<<descriptorsets-uniformbuffer>> and
|
|
|
|
<<descriptorsets-uniformbufferdynamic>>.
|
|
|
|
* [[features-limits-maxPerStageDescriptorStorageBuffers]]
|
|
|
|
pname:maxPerStageDescriptorStorageBuffers is the maximum number of
|
|
|
|
storage buffers that can: be accessible to a single shader stage in a
|
|
|
|
pipeline layout. Descriptors with a type of
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this
|
|
|
|
limit. A descriptor is accessible to a pipeline shader stage when the
|
|
|
|
pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
|
|
|
|
structure has the bit for that shader stage set. See
|
|
|
|
<<descriptorsets-storagebuffer>> and
|
|
|
|
<<descriptorsets-storagebufferdynamic>>.
|
|
|
|
* [[features-limits-maxPerStageDescriptorSampledImages]]
|
|
|
|
pname:maxPerStageDescriptorSampledImages is the maximum number of
|
|
|
|
sampled images that can: be accessible to a single shader stage in a
|
|
|
|
pipeline layout. Descriptors with a type of
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER count against this limit.
|
|
|
|
A descriptor is accessible to a pipeline shader stage when the
|
|
|
|
pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
|
|
|
|
structure has the bit for that shader stage set. See
|
|
|
|
<<descriptorsets-combinedimagesampler>>,
|
|
|
|
<<descriptorsets-sampledimage>>, and
|
|
|
|
<<descriptorsets-uniformtexelbuffer>>.
|
|
|
|
* [[features-limits-maxPerStageDescriptorStorageImages]]
|
|
|
|
pname:maxPerStageDescriptorStorageImages is the maximum number of
|
|
|
|
storage images that can: be accessible to a single shader stage in a
|
|
|
|
pipeline layout. Descriptors with a type of
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER count against this limit.
|
|
|
|
A descriptor is accessible to a pipeline shader stage when the
|
|
|
|
pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
|
|
|
|
structure has the bit for that shader stage set. See
|
|
|
|
<<descriptorsets-storageimage>>, and
|
|
|
|
<<descriptorsets-storagetexelbuffer>>.
|
|
|
|
* [[features-limits-maxPerStageDescriptorInputAttachments]]
|
|
|
|
pname:maxPerStageDescriptorInputAttachments is the maximum number of
|
|
|
|
input attachments that can: be accessible to a single shader stage in a
|
|
|
|
pipeline layout. Descriptors with a type of
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT count against this limit.
|
|
|
|
A descriptor is accessible to a pipeline shader stage when the
|
|
|
|
pname:stageFlags member of the sname:VkDescriptorSetLayoutBinding
|
|
|
|
structure has the bit for that shader stage set. These are only
|
|
|
|
supported for the fragment stage. See
|
|
|
|
<<descriptorsets-inputattachment>>.
|
|
|
|
* [[features-limits-maxPerStageResources]] pname:maxPerStageResources is
|
|
|
|
the maximum number of resources that can: be accessible to a single
|
|
|
|
shader stage in a pipeline layout. Descriptors with a type of
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT count against this limit. For
|
|
|
|
the fragment shader stage the framebuffer color attachments also count
|
|
|
|
against this limit.
|
|
|
|
* [[features-limits-maxDescriptorSetSamplers]]
|
|
|
|
pname:maxDescriptorSetSamplers is the maximum number of samplers 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_SAMPLER or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER count against this
|
|
|
|
limit. See <<descriptorsets-sampler>> and
|
|
|
|
<<descriptorsets-combinedimagesampler>>.
|
|
|
|
* [[features-limits-maxDescriptorSetUniformBuffers]]
|
|
|
|
pname:maxDescriptorSetUniformBuffers is the maximum number of uniform
|
|
|
|
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
|
|
|
|
limit. See <<descriptorsets-uniformbuffer>> and
|
|
|
|
<<descriptorsets-uniformbufferdynamic>>.
|
|
|
|
* [[features-limits-maxDescriptorSetUniformBuffersDynamic]]
|
|
|
|
pname:maxDescriptorSetUniformBuffersDynamic is the maximum number of
|
|
|
|
dynamic uniform 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_DYNAMIC count against this
|
|
|
|
limit. See <<descriptorsets-uniformbufferdynamic>>.
|
|
|
|
* [[features-limits-maxDescriptorSetStorageBuffers]]
|
|
|
|
pname:maxDescriptorSetStorageBuffers is the maximum number of 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 or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this
|
|
|
|
limit. See <<descriptorsets-storagebuffer>> and
|
|
|
|
<<descriptorsets-storagebufferdynamic>>.
|
|
|
|
* [[features-limits-maxDescriptorSetStorageBuffersDynamic]]
|
|
|
|
pname:maxDescriptorSetStorageBuffersDynamic is the maximum number of
|
|
|
|
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 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,
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER count against this limit.
|
|
|
|
See <<descriptorsets-combinedimagesampler>>,
|
|
|
|
<<descriptorsets-sampledimage>>, and
|
|
|
|
<<descriptorsets-uniformtexelbuffer>>.
|
|
|
|
* [[features-limits-maxDescriptorSetStorageImages]]
|
|
|
|
pname:maxDescriptorSetStorageImages is the maximum number of storage
|
|
|
|
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.
|
|
|
|
See <<descriptorsets-storageimage>>, and
|
|
|
|
<<descriptorsets-storagetexelbuffer>>.
|
|
|
|
* [[features-limits-maxDescriptorSetInputAttachments]]
|
|
|
|
pname:maxDescriptorSetInputAttachments is the maximum number of input
|
|
|
|
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
|
|
|
|
<<descriptorsets-inputattachment>>.
|
|
|
|
* [[features-limits-maxVertexInputAttributes]]
|
|
|
|
pname:maxVertexInputAttributes is the maximum number of vertex input
|
|
|
|
attributes that can: be specified for a graphics pipeline. These are
|
|
|
|
described in the array of sname:VkVertexInputAttributeDescription
|
|
|
|
structures that are provided at graphics pipeline creation time via the
|
|
|
|
pname:pVertexAttributeDescriptions member of the
|
|
|
|
sname:VkPipelineVertexInputStateCreateInfo structure. See
|
|
|
|
<<fxvertex-attrib>> and <<fxvertex-input>>.
|
|
|
|
* [[features-limits-maxVertexInputBindings]]
|
|
|
|
pname:maxVertexInputBindings is the maximum number of vertex buffers
|
|
|
|
that can: be specified for providing vertex attributes to a graphics
|
|
|
|
pipeline. These are described in the array of
|
|
|
|
sname:VkVertexInputBindingDescription structures that are provided at
|
|
|
|
graphics pipeline creation time via the pname:pVertexBindingDescriptions
|
|
|
|
member of the sname:VkPipelineVertexInputStateCreateInfo structure. The
|
|
|
|
pname:binding member of sname:VkVertexInputBindingDescription must: be
|
|
|
|
less than this limit. See <<fxvertex-input>>.
|
|
|
|
* [[features-limits-maxVertexInputAttributeOffset]]
|
|
|
|
pname:maxVertexInputAttributeOffset is the maximum vertex input
|
|
|
|
attribute offset that can: be added to the vertex input binding stride.
|
|
|
|
The pname:offset member of the sname:VkVertexInputAttributeDescription
|
|
|
|
structure must: be less than or equal to this limit. See
|
|
|
|
<<fxvertex-input>>.
|
|
|
|
* [[features-limits-maxVertexInputBindingStride]]
|
|
|
|
pname:maxVertexInputBindingStride is the maximum vertex input binding
|
|
|
|
stride that can: be specified in a vertex input binding. The
|
|
|
|
pname:stride member of the sname:VkVertexInputBindingDescription
|
|
|
|
structure must: be less than or equal to this limit. See
|
|
|
|
<<fxvertex-input>>.
|
|
|
|
* [[features-limits-maxVertexOutputComponents]]
|
|
|
|
pname:maxVertexOutputComponents is the maximum number of components of
|
|
|
|
output variables which can: be output by a vertex shader. See
|
|
|
|
<<shaders-vertex>>.
|
|
|
|
* [[features-limits-maxTessellationGenerationLevel]]
|
|
|
|
pname:maxTessellationGenerationLevel is the maximum tessellation
|
|
|
|
generation level supported by the fixed-function tessellation primitive
|
|
|
|
generator. See <<tessellation>>.
|
|
|
|
* [[features-limits-maxTessellationPatchSize]]
|
|
|
|
pname:maxTessellationPatchSize is the maximum patch size, in vertices,
|
|
|
|
of patches that can: be processed by the tessellation control shader and
|
|
|
|
tessellation primitive generator. The
|
|
|
|
pname:patchControlPoints member of the
|
|
|
|
sname:VkPipelineTessellationStateCreateInfo structure specified at
|
|
|
|
pipeline creation time and the value provided in the code:OutputVertices
|
|
|
|
execution mode of shader modules must: be less than or equal to this
|
|
|
|
limit. See <<tessellation>>.
|
|
|
|
* [[features-limits-maxTessellationControlPerVertexInputComponents]]
|
|
|
|
pname:maxTessellationControlPerVertexInputComponents is the maximum
|
|
|
|
number of components of input variables which can: be provided as
|
|
|
|
per-vertex inputs to the tessellation control shader stage.
|
|
|
|
* [[features-limits-maxTessellationControlPerVertexOutputComponents]]
|
|
|
|
pname:maxTessellationControlPerVertexOutputComponents is the maximum
|
|
|
|
number of components of per-vertex output variables which can: be output
|
|
|
|
from the tessellation control shader stage.
|
|
|
|
* [[features-limits-maxTessellationControlPerPatchOutputComponents]]
|
|
|
|
pname:maxTessellationControlPerPatchOutputComponents is the maximum
|
|
|
|
number of components of per-patch output variables which can: be output
|
|
|
|
from the tessellation control shader stage.
|
|
|
|
* [[features-limits-maxTessellationControlTotalOutputComponents]]
|
|
|
|
pname:maxTessellationControlTotalOutputComponents is the maximum total
|
|
|
|
number of components of per-vertex and per-patch output variables which
|
|
|
|
can: be output from the tessellation control shader stage.
|
|
|
|
* [[features-limits-maxTessellationEvaluationInputComponents]]
|
|
|
|
pname:maxTessellationEvaluationInputComponents is the maximum number of
|
|
|
|
components of input variables which can: be provided as per-vertex
|
|
|
|
inputs to the tessellation evaluation shader stage.
|
|
|
|
* [[features-limits-maxTessellationEvaluationOutputComponents]]
|
|
|
|
pname:maxTessellationEvaluationOutputComponents is the maximum number of
|
|
|
|
components of per-vertex output variables which can: be output from the
|
|
|
|
tessellation evaluation shader stage.
|
|
|
|
* [[features-limits-maxGeometryShaderInvocations]]
|
|
|
|
pname:maxGeometryShaderInvocations is the maximum invocation count
|
|
|
|
supported for instanced geometry shaders. The value provided in the
|
|
|
|
code:Invocations execution mode of shader modules must: be less than
|
|
|
|
or equal to this limit. See <<geometry>>.
|
|
|
|
* [[features-limits-maxGeometryInputComponents]]
|
|
|
|
pname:maxGeometryInputComponents is the maximum number of components of
|
|
|
|
input variables which can: be provided as inputs to the geometry shader
|
|
|
|
stage.
|
|
|
|
* [[features-limits-maxGeometryOutputComponents]]
|
|
|
|
pname:maxGeometryOutputComponents is the maximum number of components of
|
|
|
|
output variables which can: be output from the geometry shader stage.
|
|
|
|
* [[features-limits-maxGeometryOutputVertices]]
|
|
|
|
pname:maxGeometryOutputVertices is the maximum number of vertices which
|
|
|
|
can: be emitted by any geometry shader.
|
|
|
|
* [[features-limits-maxGeometryTotalOutputComponents]]
|
|
|
|
pname:maxGeometryTotalOutputComponents is the maximum total number of
|
|
|
|
components of output, across all emitted vertices, which can: be output
|
|
|
|
from the geometry shader stage.
|
|
|
|
* [[features-limits-maxFragmentInputComponents]]
|
|
|
|
pname:maxFragmentInputComponents is the maximum number of components of
|
|
|
|
input variables which can: be provided as inputs to the fragment shader
|
|
|
|
stage.
|
|
|
|
* [[features-limits-maxFragmentOutputAttachments]]
|
|
|
|
pname:maxFragmentOutputAttachments is the maximum number of output
|
|
|
|
attachments which can: be written to by the fragment shader stage.
|
|
|
|
* [[features-limits-maxFragmentDualSrcAttachments]]
|
|
|
|
pname:maxFragmentDualSrcAttachments is the maximum number of output
|
|
|
|
attachments which can: be written to by the fragment shader stage when
|
|
|
|
blending is enabled and one of the dual source blend modes is in use.
|
|
|
|
See <<framebuffer-dsb>> and
|
|
|
|
<<features-features-dualSrcBlend,dualSrcBlend>>.
|
|
|
|
* [[features-limits-maxFragmentCombinedOutputResources]]
|
|
|
|
pname:maxFragmentCombinedOutputResources is the total number of storage
|
|
|
|
buffers, storage images, and output buffers which can: be used in the
|
|
|
|
fragment shader stage.
|
|
|
|
* [[features-limits-maxComputeSharedMemorySize]]
|
|
|
|
pname:maxComputeSharedMemorySize is the maximum total storage size, in
|
|
|
|
bytes, of all variables declared with the code:WorkgroupLocal storage
|
|
|
|
class in shader modules (or with the code:shared storage qualifier in
|
|
|
|
GLSL) in the compute shader stage.
|
|
|
|
* [[features-limits-maxComputeWorkGroupCount]]
|
|
|
|
pname:maxComputeWorkGroupCount[3] is the maximum number of local workgroups
|
|
|
|
that can: be dispatched by a single dispatch command. These three values
|
|
|
|
represent the maximum number of local workgroups for the X, Y, and Z
|
|
|
|
dimensions, respectively. The pname:x, pname:y, and pname:z parameters
|
|
|
|
to the flink:vkCmdDispatch command, or members of the
|
|
|
|
slink:VkDispatchIndirectCommand structure must: be less than or equal to
|
|
|
|
the corresponding limit. See <<dispatch>>.
|
|
|
|
* [[features-limits-maxComputeWorkGroupInvocations]]
|
|
|
|
pname:maxComputeWorkGroupInvocations is the maximum total number of
|
|
|
|
compute shader invocations in a single local workgroup. The product of
|
|
|
|
the X, Y, and Z sizes as specified by the code:LocalSize execution mode
|
|
|
|
in shader modules and by the object decorated by the code:WorkgroupSize
|
|
|
|
decoration must: be less than or equal to this limit.
|
|
|
|
* [[features-limits-maxComputeWorkGroupSize]]
|
|
|
|
pname:maxComputeWorkGroupSize[3] is the maximum size of a local compute
|
|
|
|
workgroup, per dimension. These three values represent the maximum
|
|
|
|
local workgroup size in the X, Y, and Z dimensions, respectively. The
|
|
|
|
pname:x, pname:y, and pname:z sizes specified by the code:LocalSize
|
|
|
|
execution mode and by the object decorated by the code:WorkgroupSize
|
|
|
|
decoration in shader modules must: be less than or equal to the
|
|
|
|
corresponding limit.
|
|
|
|
* [[features-limits-subPixelPrecisionBits]] pname:subPixelPrecisionBits is
|
|
|
|
the number of bits of subpixel precision in framebuffer coordinates
|
|
|
|
latexmath:[$x_f$] and latexmath:[$y_f$]. See <<primsrast>>.
|
|
|
|
* [[features-limits-subTexelPrecisionBits]] pname:subTexelPrecisionBits is
|
|
|
|
the number of bits of precision in the division along an axis of an
|
|
|
|
image used for minification and magnification filters.
|
|
|
|
latexmath:[$2^\mathit{subTexelPrecisionBits}$] is the actual number of
|
|
|
|
divisions along each axis of the image represented. The filtering
|
|
|
|
hardware will snap to these locations when computing the filtered
|
|
|
|
results.
|
|
|
|
* [[features-limits-mipmapPrecisionBits]] pname:mipmapPrecisionBits is the
|
|
|
|
number of bits of division that the LOD calculation for mipmap fetching
|
|
|
|
get snapped to when determining the contribution from each miplevel to
|
|
|
|
the mip filtered results. latexmath:[$2^\mathit{mipmapPrecisionBits}$] is
|
|
|
|
the actual number of divisions.
|
|
|
|
+
|
|
|
|
--
|
|
|
|
[NOTE]
|
|
|
|
.Note
|
|
|
|
====
|
|
|
|
For example, if this value is 2 bits then when linearly filtering between
|
|
|
|
two levels, each level could: contribute: 0%, 33%, 66%, or 100% (this is
|
|
|
|
just an example and the amount of contribution should: be covered by
|
|
|
|
different equations in the spec).
|
|
|
|
====
|
|
|
|
--
|
|
|
|
+
|
|
|
|
* [[features-limits-maxDrawIndexedIndexValue]]
|
|
|
|
pname:maxDrawIndexedIndexValue is the maximum index value that can: be
|
|
|
|
used for indexed draw calls when using 32-bit indices. This excludes the
|
|
|
|
primitive restart index value of 0xFFFFFFFF. See
|
|
|
|
<<features-features-fullDrawIndexUint32,fullDrawIndexUint32>>.
|
|
|
|
* [[features-limits-maxDrawIndirectCount]] pname:maxDrawIndirectCount is
|
|
|
|
the maximum draw count that is supported for indirect draw calls. See
|
|
|
|
<<features-features-multiDrawIndirect,multiDrawIndirect>>.
|
|
|
|
* [[features-limits-maxSamplerLodBias]] pname:maxSamplerLodBias is the
|
|
|
|
maximum absolute sampler level of detail bias. The sum of the
|
|
|
|
pname:mipLodBias member of the sname:VkSamplerCreateInfo structure and
|
|
|
|
the code:Bias operand of image sampling operations in shader modules (or
|
|
|
|
0 if no code:Bias operand is provided to an image sampling operation)
|
|
|
|
are clamped to the range
|
|
|
|
latexmath:[$[-\mathit{maxSamplerLodBias},+\mathit{maxSamplerLodBias}\]$].
|
|
|
|
See <<samplers-mipLodBias>>.
|
|
|
|
* [[features-limits-maxSamplerAnisotropy]] pname:maxSamplerAnisotropy is
|
|
|
|
the maximum degree of sampler anisotropy. The maximum degree of
|
|
|
|
anisotropic filtering used for an image sampling operation is the
|
|
|
|
minimum of the pname:maxAnisotropy member of the
|
|
|
|
sname:VkSamplerCreateInfo structure and this limit. See
|
|
|
|
<<samplers-maxAnisotropy>>.
|
|
|
|
* [[features-limits-maxViewports]] pname:maxViewports is the maximum
|
|
|
|
number of active viewports. The pname:viewportCount member of the
|
|
|
|
sname:VkPipelineViewportStateCreateInfo structure that is provided at
|
|
|
|
pipeline creation must: be less than or equal to this limit.
|
|
|
|
* [[features-limits-maxViewportDimensions]] pname:maxViewportDimensions[2]
|
|
|
|
are the maximum viewport dimensions in the X (width) and Y (height)
|
|
|
|
dimensions, respectively. The maximum viewport dimensions must: be
|
|
|
|
greater than or equal to the largest image
|
|
|
|
which can: be created and used as a framebuffer attachment. See
|
|
|
|
<<vertexpostproc-viewport,Controlling the Viewport>>.
|
|
|
|
* [[features-limits-viewportboundsrange]] pname:viewportBoundsRange[2] is
|
|
|
|
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
|
|
|
|
at is given by this limit.
|
|
|
|
* [[features-limits-minMemoryMapAlignment]] pname:minMemoryMapAlignment is
|
|
|
|
the minimum required alignment, in bytes, of host visible memory
|
|
|
|
allocations within the host address space. When mapping a memory
|
|
|
|
allocation with flink:vkMapMemory, subtracting pname:offset bytes from
|
|
|
|
the returned pointer will always produce an integer multiple of this
|
|
|
|
limit. See <<memory-device-hostaccess>>.
|
|
|
|
* [[features-limits-minTexelBufferOffsetAlignment]]
|
|
|
|
pname:minTexelBufferOffsetAlignment is the minimum required alignment,
|
|
|
|
in bytes, for the pname:offset member of the
|
|
|
|
sname:VkBufferViewCreateInfo structure for texel buffers. When a buffer
|
|
|
|
view is created for a buffer which was created with
|
|
|
|
ename:VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or
|
|
|
|
ename:VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set in the pname:usage
|
|
|
|
member of the sname:VkBufferCreateInfo structure, the pname:offset must:
|
|
|
|
be an integer multiple of this limit.
|
|
|
|
* [[features-limits-minUniformBufferOffsetAlignment]]
|
|
|
|
pname:minUniformBufferOffsetAlignment is the minimum required alignment,
|
|
|
|
in bytes, for the pname:offset member of the
|
|
|
|
sname:VkDescriptorBufferInfo structure for uniform buffers. When a
|
|
|
|
descriptor of type ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC is updated, the
|
|
|
|
pname:offset must: be an integer multiple of this limit. Similarly,
|
|
|
|
dynamic offsets for uniform buffers must: be multiples of this limit.
|
|
|
|
* [[features-limits-minStorageBufferOffsetAlignment]]
|
|
|
|
pname:minStorageBufferOffsetAlignment is the minimum required alignment,
|
|
|
|
in bytes, for the pname:offset member of the
|
|
|
|
sname:VkDescriptorBufferInfo structure for storage buffers. When a
|
|
|
|
descriptor of type ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or
|
|
|
|
ename:VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC is updated, the
|
|
|
|
pname:offset must: be an integer multiple of this limit. Similarly,
|
|
|
|
dynamic offsets for storage buffers must: be multiples of this limit.
|
|
|
|
* [[features-limits-minTexelOffset]] pname:minTexelOffset is the minimum
|
|
|
|
offset value for the code:ConstOffset image operand of any of the
|
|
|
|
code:OpImageSample* or code:OpImageFetch* image instructions.
|
|
|
|
* [[features-limits-maxTexelOffset]] pname:maxTexelOffset is the maximum
|
|
|
|
offset value for the code:ConstOffset image operand of any of the
|
|
|
|
code:OpImageSample* or code:OpImageFetch* image instructions.
|
|
|
|
* [[features-limits-minTexelGatherOffset]] pname:minTexelGatherOffset is
|
|
|
|
the minimum offset value for the code:Offset or code:ConstOffsets image
|
|
|
|
operands of any of the code:OpImage*code:Gather image instructions.
|
|
|
|
* [[features-limits-maxTexelGatherOffset]] pname:maxTexelGatherOffset is
|
|
|
|
the maximum offset value for the code:Offset or code:ConstOffsets image
|
|
|
|
operands of any of the code:OpImage*code:Gather image instructions.
|
|
|
|
* [[features-limits-minInterpolationOffset]] pname:minInterpolationOffset
|
|
|
|
is the minimum negative offset value for the code:offset operand of the
|
|
|
|
code:InterpolateAtOffset extended instruction.
|
|
|
|
* [[features-limits-maxInterpolationOffset]] pname:maxInterpolationOffset
|
|
|
|
is the maximum positive offset value for the code:offset operand of the
|
|
|
|
code:InterpolateAtOffset extended instruction.
|
|
|
|
* [[features-limits-subPixelInterpolationOffsetBits]]
|
|
|
|
pname:subPixelInterpolationOffsetBits is the number of subpixel
|
|
|
|
fractional bits that the code:x and code:y offsets to the
|
|
|
|
code:InterpolateAtOffset extended instruction may: be rounded to as
|
|
|
|
fixed-point values.
|
|
|
|
* [[features-limits-maxFramebufferWidth]] pname:maxFramebufferWidth is the
|
|
|
|
maximum width for a framebuffer. The pname:width member of the
|
|
|
|
sname:VkFramebufferCreateInfo structure must: be less than or equal to
|
|
|
|
this limit.
|
|
|
|
* [[features-limits-maxFramebufferHeight]] pname:maxFramebufferHeight is
|
|
|
|
the maximum height for a framebuffer. The pname:height member of the
|
|
|
|
sname:VkFramebufferCreateInfo structure must: be less than or equal to
|
|
|
|
this limit.
|
|
|
|
* [[features-limits-maxFramebufferLayers]] pname:maxFramebufferLayers is
|
|
|
|
the maximum layer count for a layered framebuffer. The pname:layers
|
|
|
|
member of the sname:VkFramebufferCreateInfo structure must: be less than
|
|
|
|
or equal to this limit.
|
|
|
|
* [[features-limits-framebufferColorSampleCounts]]
|
|
|
|
pname:framebufferColorSampleCounts is a bitmask^1^ of
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
elink:VkSampleCountFlagBits bits indicating the color sample counts that
|
|
|
|
are supported for all framebuffer color attachments.
|
2016-07-11 01:13:41 +00:00
|
|
|
* [[features-limits-framebufferDepthSampleCounts]]
|
|
|
|
pname:framebufferDepthSampleCounts is a bitmask^1^ of
|
|
|
|
elink:VkSampleCountFlagBits bits indicating the supported depth sample
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
counts for all framebuffer depth/stencil attachments, when the format
|
2016-07-11 01:13:41 +00:00
|
|
|
includes a depth component.
|
|
|
|
* pname:framebufferStencilSampleCounts is a bitmask^1^ of
|
|
|
|
elink:VkSampleCountFlagBits bits indicating the supported stencil sample
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
counts for all framebuffer depth/stencil attachments, when the format
|
2016-07-11 01:13:41 +00:00
|
|
|
includes a stencil component.
|
|
|
|
* pname:framebufferNoAttachmentsSampleCounts is a bitmask^1^ of
|
|
|
|
elink:VkSampleCountFlagBits bits indicating the supported sample counts
|
|
|
|
for a framebuffer with no attachments.
|
|
|
|
* [[features-limits-maxColorAttachments]] pname:maxColorAttachments is the
|
|
|
|
maximum number of color attachments that can: be used by a subpass in a
|
|
|
|
render pass. The pname:colorAttachmentCount member of the
|
|
|
|
sname:VkSubpassDescription structure must: be less than or equal to this
|
|
|
|
limit.
|
|
|
|
* [[features-limits-sampledImageColorSampleCounts]]
|
|
|
|
pname:sampledImageColorSampleCounts is a bitmask^1^ of
|
|
|
|
elink:VkSampleCountFlagBits bits indicating the sample counts supported
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
for all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, pname:usage
|
|
|
|
containing ename:VK_IMAGE_USAGE_SAMPLED_BIT, and a non-integer color
|
|
|
|
format.
|
2016-07-11 01:13:41 +00:00
|
|
|
* [[features-limits-sampledImageIntegerSampleCounts]]
|
|
|
|
pname:sampledImageIntegerSampleCounts is a bitmask^1^ of
|
|
|
|
elink:VkSampleCountFlagBits bits indicating the sample counts supported
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
for all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, pname:usage
|
|
|
|
containing ename:VK_IMAGE_USAGE_SAMPLED_BIT, and an integer color
|
|
|
|
format.
|
2016-07-11 01:13:41 +00:00
|
|
|
* [[features-limits-sampledImageDepthSampleCounts]]
|
|
|
|
pname:sampledImageDepthSampleCounts is a bitmask^1^ of
|
|
|
|
elink:VkSampleCountFlagBits bits indicating the sample counts supported
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
for all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, pname:usage
|
|
|
|
containing ename:VK_IMAGE_USAGE_SAMPLED_BIT, and a depth format.
|
2016-07-11 01:13:41 +00:00
|
|
|
* [[features-limits-sampledImageStencilSampleCounts]]
|
|
|
|
pname:sampledImageStencilSampleCounts is a bitmask^1^ of
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
elink:VkSampleCountFlagBits bits indicating the sample supported
|
|
|
|
for all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, pname:usage
|
|
|
|
containing ename:VK_IMAGE_USAGE_SAMPLED_BIT, and a stencil format.
|
2016-07-11 01:13:41 +00:00
|
|
|
* [[features-limits-storageImageSampleCounts]]
|
|
|
|
pname:storageImageSampleCounts is a bitmask^1^ of
|
|
|
|
elink:VkSampleCountFlagBits bits indicating the sample counts supported
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
for all 2D images created with ename:VK_IMAGE_TILING_OPTIMAL, and
|
|
|
|
pname:usage containing ename:VK_IMAGE_USAGE_STORAGE_BIT.
|
2016-07-11 01:13:41 +00:00
|
|
|
* [[features-limits-maxSampleMaskWords]] pname:maxSampleMaskWords is the
|
|
|
|
maximum number of array elements of a variable decorated with the
|
|
|
|
code:SampleMask built-in decoration.
|
|
|
|
* [[features-limits-timestampComputeAndGraphics]]
|
|
|
|
pname:timestampComputeAndGraphics indicates support for timestamps on
|
|
|
|
all graphics and compute queues. If this limit is set to ename:VK_TRUE,
|
|
|
|
all queues that advertise the ename:VK_QUEUE_GRAPHICS_BIT or
|
|
|
|
ename:VK_QUEUE_COMPUTE_BIT in the
|
|
|
|
sname:VkQueueFamilyProperties::pname:queueFlags support
|
|
|
|
sname:VkQueueFamilyProperties::pname:timestampValidBits of at least 36.
|
|
|
|
See <<queries-timestamps, Timestamp Queries>>.
|
|
|
|
* [[features-limits-timestampPeriod]] pname:timestampPeriod is the number
|
|
|
|
of nanoseconds required for a timestamp query to be incremented by 1.
|
|
|
|
See <<queries-timestamps, Timestamp Queries>>.
|
|
|
|
* [[features-limits-maxClipDistances]] pname:maxClipDistances is the
|
|
|
|
maximum number of clip distances that can: be used in a single shader
|
|
|
|
stage. The size of any array declared with the code:ClipDistance
|
|
|
|
built-in decoration in a shader module must: be less than or equal to
|
|
|
|
this limit.
|
|
|
|
* [[features-limits-maxCullDistances]] pname:maxCullDistances is the
|
|
|
|
maximum number of cull distances that can: be used in a single shader
|
|
|
|
stage. The size of any array declared with the code:CullDistance
|
|
|
|
built-in decoration in a shader module must: be less than or equal to
|
|
|
|
this limit.
|
|
|
|
* [[features-limits-maxCombinedClipAndCullDistances]]
|
|
|
|
pname:maxCombinedClipAndCullDistances is the maximum combined number of
|
|
|
|
clip and cull distances that can: be used in a single shader stage.
|
|
|
|
The sum of the sizes of any pair of arrays declared with the
|
|
|
|
code:ClipDistance and code:CullDistance built-in decoration used by
|
|
|
|
a single shader stage in a shader module must: be less than or equal to
|
|
|
|
this limit.
|
|
|
|
* [[features-limits-discreteQueuePriorities]]
|
|
|
|
pname:discreteQueuePriorities is the number of discrete priorities that
|
|
|
|
can: be assigned to a queue based on the value of each member of
|
|
|
|
sname:VkDeviceQueueCreateInfo::pname:pQueuePriorities. This must: be at
|
|
|
|
least 2, and levels must: be spread evenly over the range, with at least
|
|
|
|
one level at 1.0, and another at 0.0. See <<devsandqueues-priority>>.
|
|
|
|
* [[features-limits-pointSizeRange]] pname:pointSizeRange[2] is the range
|
|
|
|
latexmath:[$[\mathit{minimum},\mathit{maximum}\]$] of supported sizes
|
|
|
|
for points. Values written to variables decorated with the
|
|
|
|
code:PointSize built-in decoration are clamped to this range.
|
|
|
|
* [[features-limits-lineWidthRange]] pname:lineWidthRange[2] is the range
|
|
|
|
latexmath:[$[\mathit{minimum},\mathit{maximum}\]$] of supported widths
|
|
|
|
for lines. Values specified by the pname:lineWidth member of the
|
|
|
|
sname:VkPipelineRasterizationStateCreateInfo or the pname:lineWidth
|
|
|
|
parameter to fname:vkCmdSetLineWidth are clamped to this range.
|
|
|
|
* [[features-limits-pointSizeGranularity]] pname:pointSizeGranularity is
|
|
|
|
the granularity of supported point sizes. Not all point sizes in the
|
|
|
|
range defined by pname:pointSizeRange are supported. This limit
|
|
|
|
specifies the granularity (or increment) between successive supported
|
|
|
|
point sizes.
|
|
|
|
* [[features-limits-lineWidthGranularity]] pname:lineWidthGranularity is
|
|
|
|
the granularity of supported line widths. Not all line widths in the
|
|
|
|
range defined by pname:lineWidthRange are supported. This limit
|
|
|
|
specifies the granularity (or increment) between successive supported
|
|
|
|
line widths.
|
|
|
|
* [[features-limits-strictLines]] pname:strictLines indicates whether
|
|
|
|
lines are rasterized according to the preferred method of rasterization.
|
|
|
|
If set to ename:VK_FALSE, lines may: be rasterized under a relaxed set
|
|
|
|
of rules. If set to ename:VK_TRUE, lines are rasterized as per the
|
|
|
|
strict definition. See <<primsrast-lines-basic,Basic Line Segment
|
|
|
|
Rasterization>>.
|
|
|
|
* [[features-limits-standardSampleLocations]]
|
|
|
|
pname:standardSampleLocations indicates whether rasterization uses the
|
|
|
|
standard sample locations as documented in
|
|
|
|
<<primsrast-multisampling,Multisampling>>. If set to ename:VK_TRUE, the
|
|
|
|
implementation uses the documented sample locations. If set to
|
|
|
|
ename:VK_FALSE, the implementation may: use different sample locations.
|
|
|
|
* [[features-limits-optimalBufferCopyOffsetAlignment]]
|
|
|
|
pname:optimalBufferCopyOffsetAlignment is the optimal buffer
|
|
|
|
offset alignment in bytes for fname:vkCmdCopyBufferToImage and
|
|
|
|
fname:vkCmdCopyImageToBuffer. The per texel alignment requirements are
|
|
|
|
still enforced, this is just an additional alignment recommendation for
|
|
|
|
optimal performance and power.
|
|
|
|
* [[features-limits-optimalBufferCopyRowPitchAlignment]]
|
|
|
|
pname:optimalBufferCopyRowPitchAlignment is the optimal buffer
|
|
|
|
row pitch alignment in bytes for fname:vkCmdCopyBufferToImage and
|
|
|
|
fname:vkCmdCopyImageToBuffer. Row pitch is the number of bytes between
|
|
|
|
texels with the same X coordinate in adjacent rows (Y coordinates differ
|
|
|
|
by one). The per texel alignment requirements are still enforced, this
|
|
|
|
is just an additional alignment recommendation for optimal performance
|
|
|
|
and power.
|
|
|
|
* [[features-limits-nonCoherentAtomSize]]
|
|
|
|
pname:nonCoherentAtomSize is the size and alignment in bytes that bounds
|
|
|
|
concurrent access to
|
|
|
|
<<memory-device-hostaccess, host-mapped device memory>>.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
-----------
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// End of list
|
|
|
|
|
|
|
|
1::
|
|
|
|
For all bitmasks of type elink:VkSampleCountFlags above, possible
|
|
|
|
values include:
|
|
|
|
+
|
|
|
|
--
|
|
|
|
// refBegin VkSampleCountFlagBits - Bitmask specifying sample counts supported for an image used for storage operations
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
include::../api/enums/VkSampleCountFlagBits.txt[]
|
2016-07-11 01:13:41 +00:00
|
|
|
--
|
|
|
|
+
|
|
|
|
The sample count limits defined above represent the minimum
|
|
|
|
supported sample counts for each image type. Individual images may: support
|
|
|
|
additional sample counts, which are queried using
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
flink:vkGetPhysicalDeviceImageFormatProperties as described
|
|
|
|
in <<features-supported-sample-counts, Supported Sample Counts>>.
|
2016-07-11 01:13:41 +00:00
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
include::../validity/structs/VkPhysicalDeviceLimits.txt[]
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
See Also
|
|
|
|
--------
|
|
|
|
|
Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.
Github Issues:
* Clarify how <<features-supported-sample-counts,sample count queries>>
relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
185).
* Clarify in the <<interfaces-iointerfaces,Shader Input and Output
Interfaces>> section that shader output variables have undefined values
until the shader writes to them (public issue 240).
* Specify the implicit value of image parameters that cannot be set in
slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
(public issue 243).
* Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
VK_KHR_swapchain extension (public issue 276).
Internal Issues:
* Clarify that presenting an image to a display surface swapchain applies
the display surface's mode, and that destroying a display surface
swapchain may reset the display's mode, in the VK_KHR_display_swapchain
extension (internal issue 247).
* Better describe what a slink:VkSurfaceKHR is, and that creating one does
not set a mode, in the VK_KHR_display extension. This is a round-about
way of pointing out that mode setting is not covered by the extension,
but rather is performed as a side effect of presentation (internal issue
247).
* Add more valid usage statements to flink:vkQueuePresentKHR command when
the VK_KHR_display_swapchain extension is present (internal issue
247).
* Add more includes to the VK_KHR_swapchain extension to better document
interactions with VK_KHR_display_swapchain (internal issue 247).
* Clarify restrictions on location aliasing in the
<<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
370).
* Add mathematical description of blitting to flink:vkCmdBlitImage, and
link it to the <<textures,Image Operations>> chapter. Use mathematical
notation for ranges of texel coordinates in the <<textures,Image
Operations>> chapter. Fixed miscellaneous validity statements for
flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
Other Commits:
* Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
tessellation shaders are used.
* Expand the style guide into a formal "Procedures and Conventions"
document. Add a API Naming Conventions section, move most of the API
Specification Appendix C (Layers and Extensions) content into the new
document, and define the resulting procedures as mandatory (where
relevant). This more clearly separates use vs. specification of Vulkan
APIs.
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
* Various minor cleanups to the Makefile and build process.
2016-07-16 02:05:43 +00:00
|
|
|
basetype:VkBool32, basetype:VkDeviceSize, slink:VkPhysicalDeviceProperties, elink:VkSampleCountFlags
|
2016-07-11 01:13:41 +00:00
|
|
|
|
|
|
|
|
|
|
|
Document Notes
|
|
|
|
--------------
|
|
|
|
|
|
|
|
For more information, see the Vulkan Specification at URL
|
|
|
|
|
|
|
|
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#VkPhysicalDeviceLimits
|
|
|
|
|
|
|
|
This page is extracted from the Vulkan Specification.
|
|
|
|
Fixes and changes should be made to the Specification,not directly.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::footer.txt[]
|
2016-07-11 01:13:41 +00:00
|
|
|
|