2016-02-16 09:53:44 +00:00
|
|
|
// Copyright (c) 2015-2016 The Khronos Group Inc.
|
|
|
|
// Copyright notice at https://www.khronos.org/registry/speccopyright.html
|
|
|
|
|
|
|
|
// The asciidoc [glossary] template cannot contain subsections.
|
|
|
|
// The abbreviations and prefixes probably belong in the upcoming
|
|
|
|
// API/extension-writing-guidelines appendix, anyway.
|
|
|
|
|
|
|
|
[glossary]
|
|
|
|
= Glossary
|
|
|
|
|
|
|
|
The terms defined in this section are used consistently throughout this
|
|
|
|
Specification and may be used with or without capitalization.
|
|
|
|
|
|
|
|
Accessible (Descriptor Binding)::
|
|
|
|
A descriptor binding is accessible to a shader stage if that stage is
|
|
|
|
included in the pname:stageFlags of the descriptor binding. Descriptors
|
|
|
|
using that binding can: only be used by stages in which they are
|
|
|
|
accessible.
|
|
|
|
|
|
|
|
Adjacent Vertex::
|
|
|
|
A vertex in an adjacency primitive topology that is not part of a given
|
|
|
|
primitive, but is accessible in geometry shaders.
|
|
|
|
|
|
|
|
Aliased Range (Memory)::
|
|
|
|
A range of a device memory allocation that is bound to multiple
|
|
|
|
resources simultaneously.
|
|
|
|
|
|
|
|
API Order::
|
|
|
|
A set of ordering rules that govern how primitives in draw commands
|
|
|
|
affect the framebuffer.
|
|
|
|
|
Change log for June 24, 2016 Vulkan 1.0.18 spec update:
* Bump API patch number and header version number to 18 for this
update.
Github Issues:
* Added "queue operation" terminology, and modified spec to actually
use this terminology (public issue 155). The act of submitting a
piece of work to a queue now generates "operations" for the queue to
execute, including operations to wait on/signal semaphores and
fences. Synchronization waits on these operations, making execution
dependency chains more obvious for semaphores and fences (though
additional work is still needed here). These changes include:
** Overview of "queue submission" commands in chapter
<<devsandqueues-submission>>.
** Updated descriptions for fence and semaphore waits and signals in
the synchronization chapter <<synchronization-semaphores-waiting>>,
<<synchronization-semaphores-signaling>> and
<<synchronization-fences-waiting>>.
** Clarifications to semaphore and fence operation within queue
submission functions.
** New glossary terms.
** Moved device idle and queue wait idle to synchronization chapter in
order to describe them in terms of other synchronization
primitives.
** Clarifications to semaphore and fence operation allowed removal of
the "implicit ordering guarantees" section, as this information is
now wholly covered where these primitives are described.
*** The "host writes" section of this is still there for now - in its
own section. This could probably be merged into other sections
later.
*** Modified fundamentals chapter on queue ordering to make sense in
context of the new changes, and avoid duplication.
<<fundamentals-queueoperation>>
* Added "aspect" and "component" definitions to the glossary, and made
sure these terms are referenced correctly (public issue 163).
* Update valid usage for ftext:vkGet*ProcAddr to only include
conditions that must be met to get a valid result. In particular,
it's okay to call flink:vkGetDeviceProcAddr with any string and will
get a code:NULL if that string is not a core Vulkan function or an
enabled extension function (addresses but does not fully close
public issue 214).
* Change the WSI extension dependencies to refer to version 1.0 of the
Vulkan API, instead of the pre-1.0-release internal revisions
numbers (public issue 238).
* Specified that <<interfaces-fragmentoutput,undeclared fragment
shader outputs>> result in undefined values input to the blending
unit or color attachment (public issue 240).
Internal Issues:
* Better documented that the registry XML "optional" tag for values
only applies when that value is the size of an array (internal issue
335).
* Add a stronger definition for the valid usages of
VkSpecializationMapEntry.size in the
<<pipelines-specialization-constants,Specialization Constants>>
section (internal issue 345).
* Change code:OpName to code:OpDecorate (along with appropriate
syntax) for vertex shader built-ins (internal issue 368).
* Add missing ref pages (those which are not currently stubs) to
apispec.txt for the single-page version of the ref pages (internal
issue 378).
Other Commits:
* Fix example in the <<descriptorsets,Descriptor Sets>> section to use
M, N, and I, describing set, binding, and index, consistently
throughout the example code.
2016-06-23 10:18:00 +00:00
|
|
|
Aspect (Image)::
|
|
|
|
An image may: contain multiple kinds, or aspects, of data for each
|
|
|
|
pixel, where each aspect is used in a particular way by the pipeline and
|
|
|
|
may: be stored differently or separately from other aspects.
|
|
|
|
For example, the color components of an image format make up the color
|
|
|
|
aspect of the image, and may: be used as a framebuffer color attachment.
|
|
|
|
Some operations, like depth testing, operate only on specific aspects of
|
|
|
|
an image.
|
|
|
|
Others operations, like image/buffer copies, only operate on one
|
|
|
|
aspect at a time.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Attachment (Render Pass)::
|
|
|
|
A zero-based integer index name used in render pass creation to refer to
|
|
|
|
a framebuffer attachment that is accessed by one or more subpasses. The
|
|
|
|
index also refers to an attachment description which includes
|
|
|
|
information about the properties of the image view that will later be
|
|
|
|
attached.
|
|
|
|
|
|
|
|
Available::
|
|
|
|
See Memory Dependency.
|
|
|
|
|
|
|
|
Back-Facing::
|
|
|
|
See Facingness.
|
|
|
|
|
|
|
|
Batch::
|
Change log for June 24, 2016 Vulkan 1.0.18 spec update:
* Bump API patch number and header version number to 18 for this
update.
Github Issues:
* Added "queue operation" terminology, and modified spec to actually
use this terminology (public issue 155). The act of submitting a
piece of work to a queue now generates "operations" for the queue to
execute, including operations to wait on/signal semaphores and
fences. Synchronization waits on these operations, making execution
dependency chains more obvious for semaphores and fences (though
additional work is still needed here). These changes include:
** Overview of "queue submission" commands in chapter
<<devsandqueues-submission>>.
** Updated descriptions for fence and semaphore waits and signals in
the synchronization chapter <<synchronization-semaphores-waiting>>,
<<synchronization-semaphores-signaling>> and
<<synchronization-fences-waiting>>.
** Clarifications to semaphore and fence operation within queue
submission functions.
** New glossary terms.
** Moved device idle and queue wait idle to synchronization chapter in
order to describe them in terms of other synchronization
primitives.
** Clarifications to semaphore and fence operation allowed removal of
the "implicit ordering guarantees" section, as this information is
now wholly covered where these primitives are described.
*** The "host writes" section of this is still there for now - in its
own section. This could probably be merged into other sections
later.
*** Modified fundamentals chapter on queue ordering to make sense in
context of the new changes, and avoid duplication.
<<fundamentals-queueoperation>>
* Added "aspect" and "component" definitions to the glossary, and made
sure these terms are referenced correctly (public issue 163).
* Update valid usage for ftext:vkGet*ProcAddr to only include
conditions that must be met to get a valid result. In particular,
it's okay to call flink:vkGetDeviceProcAddr with any string and will
get a code:NULL if that string is not a core Vulkan function or an
enabled extension function (addresses but does not fully close
public issue 214).
* Change the WSI extension dependencies to refer to version 1.0 of the
Vulkan API, instead of the pre-1.0-release internal revisions
numbers (public issue 238).
* Specified that <<interfaces-fragmentoutput,undeclared fragment
shader outputs>> result in undefined values input to the blending
unit or color attachment (public issue 240).
Internal Issues:
* Better documented that the registry XML "optional" tag for values
only applies when that value is the size of an array (internal issue
335).
* Add a stronger definition for the valid usages of
VkSpecializationMapEntry.size in the
<<pipelines-specialization-constants,Specialization Constants>>
section (internal issue 345).
* Change code:OpName to code:OpDecorate (along with appropriate
syntax) for vertex shader built-ins (internal issue 368).
* Add missing ref pages (those which are not currently stubs) to
apispec.txt for the single-page version of the ref pages (internal
issue 378).
Other Commits:
* Fix example in the <<descriptorsets,Descriptor Sets>> section to use
M, N, and I, describing set, binding, and index, consistently
throughout the example code.
2016-06-23 10:18:00 +00:00
|
|
|
A single structure submitted to a queue as part of a
|
|
|
|
<<devsandqueues-submission, queue submission command>>, describing a set
|
|
|
|
of queue operations to execute.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
Backwards Compatibility::
|
|
|
|
A given version of the API is backwards compatible with an earlier
|
|
|
|
version if an application, relying only on valid behavior and
|
|
|
|
functionality defined by the earlier specification, is able to correctly
|
|
|
|
run against each version without any modification. This assumes no
|
|
|
|
active attempt by that application to not run when it detects a
|
|
|
|
different version.
|
|
|
|
|
|
|
|
Full Compatibility::
|
|
|
|
A given version of the API is fully compatible with another version if
|
|
|
|
an application, relying only on valid behavior and functionality defined
|
|
|
|
by either of those specifications, is able to correctly run against each
|
|
|
|
version without any modification. This assumes no active attempt by that
|
|
|
|
application to not run when it detects a different version.
|
|
|
|
|
|
|
|
Binding (Memory)::
|
|
|
|
An association established between a range of a resource object and a
|
|
|
|
range of a memory object. These associations determine the memory
|
|
|
|
locations affected by operations performed on elements of a resource
|
|
|
|
object. Memory bindings are established using the
|
|
|
|
flink:vkBindBufferMemory command for non-sparse buffer objects, using
|
|
|
|
the flink:vkBindImageMemory command for non-sparse image objects, and
|
|
|
|
using the flink:vkQueueBindSparse command for sparse resources.
|
|
|
|
|
|
|
|
Blend Constant::
|
|
|
|
Four floating point (RGBA) values used as an input to blending.
|
|
|
|
|
|
|
|
Blending::
|
|
|
|
Arithmetic operations between a fragment color value and a value in a
|
|
|
|
color attachment that produce a final color value to be written to the
|
|
|
|
attachment.
|
|
|
|
|
|
|
|
Buffer::
|
|
|
|
A resource that represents a linear array of data in device memory.
|
|
|
|
Represented by a sname:VkBuffer object.
|
|
|
|
|
|
|
|
Buffer View::
|
|
|
|
An object that represents a range of a specific buffer, and state that
|
|
|
|
controls how the contents are interpreted. Represented by a
|
|
|
|
sname:VkBufferView object.
|
|
|
|
|
|
|
|
Built-In Variable::
|
|
|
|
A variable decorated in a shader, where the decoration makes the
|
|
|
|
variable take values provided by the execution environment or values
|
|
|
|
that are generated by fixed-function pipeline stages.
|
|
|
|
|
|
|
|
Built-In Interface Block::
|
|
|
|
A block defined in a shader that contains only variables decorated with
|
|
|
|
built-in decorations, and is used to match against other shader
|
|
|
|
stages.
|
|
|
|
|
|
|
|
Clip Coordinates::
|
|
|
|
The homogeneous coordinate space that vertex positions
|
|
|
|
(code:Position decoration) are written in by vertex processing stages.
|
|
|
|
|
|
|
|
Clip Distance::
|
|
|
|
A built-in output from vertex processing stages that defines a clip
|
|
|
|
half-space against which the primitive is clipped.
|
|
|
|
|
|
|
|
Clip Volume::
|
|
|
|
The intersection of the view volume with all clip half-spaces.
|
|
|
|
|
|
|
|
Color Attachment::
|
|
|
|
A subpass attachment point, or image view, that is the target of
|
|
|
|
fragment color outputs and blending.
|
|
|
|
|
|
|
|
Combined Image Sampler::
|
|
|
|
A descriptor type that includes both a sampled image and a sampler.
|
|
|
|
|
|
|
|
Command Buffer::
|
|
|
|
An object that records commands to be submitted to a queue. Represented
|
|
|
|
by a sname:VkCommandBuffer object.
|
|
|
|
|
|
|
|
Command Pool::
|
|
|
|
An object that command buffer memory is allocated from, and that owns
|
|
|
|
that memory. Command pools aid multithreaded performance by enabling
|
|
|
|
different threads to use different allocators, without internal
|
|
|
|
synchronization on each use. Represented by a sname:VkCommandPool
|
|
|
|
object.
|
|
|
|
|
|
|
|
Compatible Allocator::
|
|
|
|
When allocators are compatible, allocations from each allocator can: be
|
|
|
|
freed by the other allocator.
|
|
|
|
|
|
|
|
Compatible Image Formats::
|
|
|
|
When formats are compatible, images created with one of the formats can:
|
|
|
|
have image views created from it using any of the compatible formats.
|
|
|
|
|
|
|
|
Compatible Queues::
|
|
|
|
Queues within a queue family. Compatible queues have identical
|
|
|
|
properties.
|
|
|
|
|
Change log for June 24, 2016 Vulkan 1.0.18 spec update:
* Bump API patch number and header version number to 18 for this
update.
Github Issues:
* Added "queue operation" terminology, and modified spec to actually
use this terminology (public issue 155). The act of submitting a
piece of work to a queue now generates "operations" for the queue to
execute, including operations to wait on/signal semaphores and
fences. Synchronization waits on these operations, making execution
dependency chains more obvious for semaphores and fences (though
additional work is still needed here). These changes include:
** Overview of "queue submission" commands in chapter
<<devsandqueues-submission>>.
** Updated descriptions for fence and semaphore waits and signals in
the synchronization chapter <<synchronization-semaphores-waiting>>,
<<synchronization-semaphores-signaling>> and
<<synchronization-fences-waiting>>.
** Clarifications to semaphore and fence operation within queue
submission functions.
** New glossary terms.
** Moved device idle and queue wait idle to synchronization chapter in
order to describe them in terms of other synchronization
primitives.
** Clarifications to semaphore and fence operation allowed removal of
the "implicit ordering guarantees" section, as this information is
now wholly covered where these primitives are described.
*** The "host writes" section of this is still there for now - in its
own section. This could probably be merged into other sections
later.
*** Modified fundamentals chapter on queue ordering to make sense in
context of the new changes, and avoid duplication.
<<fundamentals-queueoperation>>
* Added "aspect" and "component" definitions to the glossary, and made
sure these terms are referenced correctly (public issue 163).
* Update valid usage for ftext:vkGet*ProcAddr to only include
conditions that must be met to get a valid result. In particular,
it's okay to call flink:vkGetDeviceProcAddr with any string and will
get a code:NULL if that string is not a core Vulkan function or an
enabled extension function (addresses but does not fully close
public issue 214).
* Change the WSI extension dependencies to refer to version 1.0 of the
Vulkan API, instead of the pre-1.0-release internal revisions
numbers (public issue 238).
* Specified that <<interfaces-fragmentoutput,undeclared fragment
shader outputs>> result in undefined values input to the blending
unit or color attachment (public issue 240).
Internal Issues:
* Better documented that the registry XML "optional" tag for values
only applies when that value is the size of an array (internal issue
335).
* Add a stronger definition for the valid usages of
VkSpecializationMapEntry.size in the
<<pipelines-specialization-constants,Specialization Constants>>
section (internal issue 345).
* Change code:OpName to code:OpDecorate (along with appropriate
syntax) for vertex shader built-ins (internal issue 368).
* Add missing ref pages (those which are not currently stubs) to
apispec.txt for the single-page version of the ref pages (internal
issue 378).
Other Commits:
* Fix example in the <<descriptorsets,Descriptor Sets>> section to use
M, N, and I, describing set, binding, and index, consistently
throughout the example code.
2016-06-23 10:18:00 +00:00
|
|
|
Component (Format)::
|
|
|
|
A distinct part of a format. Depth, stencil, and color channels
|
|
|
|
(e.g. R, G, B, A), are all separate components.
|
|
|
|
|
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.
2016-03-25 09:25:04 +00:00
|
|
|
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.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
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
|
|
|
|
negative value for the same cull distance.
|
|
|
|
|
|
|
|
Cull Volume::
|
|
|
|
The intersection of the view volume with all cull half-spaces.
|
|
|
|
|
|
|
|
Decoration (SPIR-V)::
|
|
|
|
Auxiliary information such as built-in variables, stream numbers,
|
|
|
|
invariance, interpolation type, relaxed precision, etc., added to
|
|
|
|
variables or structure-type members through decorations.
|
|
|
|
|
|
|
|
Depth/Stencil Attachment::
|
|
|
|
A subpass attachment point, or image view, that is the target of depth
|
|
|
|
and/or stencil test operations and writes.
|
|
|
|
|
|
|
|
Depth/Stencil Format::
|
|
|
|
A elink:VkFormat that includes depth and/or stencil components.
|
|
|
|
|
|
|
|
Depth/Stencil Image (or ImageView)::
|
|
|
|
A sname:VkImage (or sname:VkImageView) with a depth/stencil format.
|
|
|
|
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
Derivative Group::
|
|
|
|
A set of fragment shader invocations that cooperate to compute derivatives,
|
|
|
|
including implicit derivatives for sampled image operations.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Descriptor::
|
|
|
|
Information about a resource or resource view written into a descriptor
|
|
|
|
set that is used to access the resource or view from a shader.
|
|
|
|
|
|
|
|
Descriptor Binding::
|
|
|
|
An entry in a descriptor set layout corresponding to zero or more
|
|
|
|
descriptors of a single descriptor type in a set. Defined by a
|
|
|
|
slink:VkDescriptorSetLayoutBinding structure.
|
|
|
|
|
|
|
|
Descriptor Pool::
|
|
|
|
An object that descriptor sets are allocated from, and that owns the
|
|
|
|
storage of those descriptor sets. Descriptor pools aid multithreaded
|
|
|
|
performance by enabling different threads to use different allocators,
|
|
|
|
without internal synchronization on each use. Represented by a
|
|
|
|
sname:VkDescriptorPool object.
|
|
|
|
|
|
|
|
Descriptor Set::
|
|
|
|
An object that resource descriptors are written into via the API, and
|
|
|
|
that can: be bound to a command buffer such that the descriptors
|
|
|
|
contained within it can: be accessed from shaders. Represented by a
|
|
|
|
sname:VkDescriptorSet object.
|
|
|
|
|
|
|
|
Descriptor Set Layout::
|
|
|
|
An object that defines the set of resources (types and counts) and their
|
|
|
|
relative arrangement (in the binding namespace) within a descriptor set.
|
|
|
|
Used when allocating descriptor sets and when creating pipeline layouts.
|
|
|
|
Represented by a sname:VkDescriptorSetLayout object.
|
|
|
|
|
|
|
|
Device::
|
|
|
|
The processor(s) and execution environment that perform tasks requested
|
|
|
|
by the application via the Vulkan API.
|
|
|
|
|
|
|
|
Device Memory::
|
|
|
|
Memory accessible to the device. Represented by a sname:VkDeviceMemory
|
|
|
|
object.
|
|
|
|
|
Change log for June 10, 2016 Vulkan 1.0.16 spec update:
* Bump API patch number and header version number to 16 for this
update.
Github Issues:
* Clarify that integer border values are meant to be 0/1, and that
integer texture lookups are sign-extended in the
<<textures-format-conversion,Format Conversion>> and
<<textures-texel-replacement,Texel Replacement>> sections (public
issue 52).
* Add logic to generate spec boilerplate without using the 'git'
command-line client, needed when building from a tarball or another
source of the Vulkan tree rather than a cloned git repo. Remove
boilerplate as part of 'clean' target (public issue 195).
* Document that color writes and clears to unused attachments have no
effect for slink:VkClearAttachment and
elink:VkColorComponentFlagBits (public issue 198).
* Fixed flink:vkCmdExecuteCommands validity statement for
sname:VkCommandBufferInheritanceInfo::pname:framebuffer. If used, it
must match the framebuffer in the current renderpass instance
(public issue 226).
* Added valid usage language to require for all functions that set
dynamic state that the currently bound graphics pipeline has the
corresponding dynamic state enabled (public issue 235).
Internal Issues:
* Clarify for flink:vkEnumerateInstanceExtensionProperties, in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section, and in the
<<glossary,Glossary>> section when functionality should be exposed
as an instance extension, as a device extension, or as both
(internal issue 109).
* Place WorkgroupSize in alphabetical order in the
<<interfaces-builtin-variables,Built-in Variables>> section
(internal issue 323).
* Corrects valid usage in vkEndRenderPass to only affect primary
render passes, as secondaries may be entirely within a render pass,
and should be able to be ended (previous language disallowed that)
(internal issue 338).
* Fix relational operator from <= to >= in the
<<features-extentperimagetype,Allowed Extent Values>> section
(internal issue 343).
* Disallow recursion under SPIR-V entry points in the
<<spirvenv-module-validation,Validation Rules within a Module>>
section (internal SPIR-V issue 37).
Other Commits:
* Use standard Python ElementTree package instead of lxml.etree in
header / validation layer / include autogeneration from XML,
reducing platform dependencies.
2016-06-10 22:49:54 +00:00
|
|
|
Device-Level Object::
|
|
|
|
Logical device objects and their child objects For example,
|
|
|
|
sname:VkDevice, sname:VkQueue, and sname:VkCommandBuffer objects are
|
|
|
|
device-level objects.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Device-Local Memory::
|
|
|
|
Memory that is connected to the device, and may: be more performant for
|
|
|
|
device access than host-local memory.
|
|
|
|
|
|
|
|
Dispatchable Handle::
|
|
|
|
A handle of a pointer handle type which may: be used by layers as part
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
of intercepting API commands. The first argument to each Vulkan
|
2016-02-16 09:53:44 +00:00
|
|
|
command is a dispatchable handle type.
|
|
|
|
|
|
|
|
Dispatching Commands::
|
|
|
|
Commands that provoke work using a compute pipeline. Includes
|
|
|
|
flink:vkCmdDispatch and flink:vkCmdDispatchIndirect.
|
|
|
|
|
|
|
|
Drawing Commands::
|
|
|
|
Commands that provoke work using a graphics pipeline. Includes
|
|
|
|
flink:vkCmdDraw, flink:vkCmdDrawIndexed, flink:vkCmdDrawIndirect, and
|
|
|
|
flink:vkCmdDrawIndexedIndirect.
|
|
|
|
|
Change log for April 1, 2016 Vulkan 1.0.8 spec update:
* Bump API patch number and header version number to 8 for this
update.
Github Issues:
* Specify in the validity language for flink:vkBeginCommandBuffer that
pname:commandBuffer mustnot: currently be pending execution (public
issue 96).
* Describe depth comparison using the correct temporary variable names
in the <<textures-depth-compare-operation,Depth Compare Operation>>
section (public issue 100).
* Clarify the order of descriptor update operations in the
flink:vkUpdateDescriptorSets command (public issue 115).
* Specify in the VK_KHR_swapchain extension that
flink:vkAcquireNextImageKHR's pname:semaphore and pname:fence
parameters cannot both be sname:VK_NULL_HANDLE (partly addresses,
but does not fully close, public issue 117 / internal issue 246).
* Change reference to the "lifetime" of a Vulkan command to
"duration", and define the "duration" term (public issue 135).
* Added valid usage language for slink:VkImageLayout to require both
pname:height and pname:depth to be 1 for 1D images and pname:depth
to be 1 for 2D images (public issue 137).
* Fix SPIR-V example code in the
<<descriptorsets-inputattachment,Input Attachment>> section to
properly decorate the code:InputAttachmentIndex (public issue 139).
* Fix reference to nonexistent pname:imageInfo in the description of
flink:VkWriteDescriptorSet to refer to pname:pImageInfo (public
issue 140).
Internal Issues:
* Link to the fixed-function vertex chapter from the drawing chapter
(internal issue #110)
* Fix typo in slink:VkImageCreateInfo validity language:
ptext:maxExtent.sampleCounts -> pname:sampleCounts (internal issue
249).
* Explain why the non-core token etext:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
is used in the example in the
<<synchronization-semaphores,Semaphores>> section (internal issue
251).
* Attempt to clarify in the VK_KHR_android_surface extension's
<<platformQuerySupport_android,Android Platform Support>> section
that there is no Android-specific WSI query, and why (internal issue
252).
Other Commits:
* Add missing language about ename:VK_INCOMPLETE being returned from
array queries when the passed array is too short, in the
VK_KHR_display, VK_KHR_swapchain, and VK_KHR_surface extensions.
2016-04-01 10:04:38 +00:00
|
|
|
Duration (Command)::
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
The _duration_ of a Vulkan command refers to the interval between
|
Change log for April 1, 2016 Vulkan 1.0.8 spec update:
* Bump API patch number and header version number to 8 for this
update.
Github Issues:
* Specify in the validity language for flink:vkBeginCommandBuffer that
pname:commandBuffer mustnot: currently be pending execution (public
issue 96).
* Describe depth comparison using the correct temporary variable names
in the <<textures-depth-compare-operation,Depth Compare Operation>>
section (public issue 100).
* Clarify the order of descriptor update operations in the
flink:vkUpdateDescriptorSets command (public issue 115).
* Specify in the VK_KHR_swapchain extension that
flink:vkAcquireNextImageKHR's pname:semaphore and pname:fence
parameters cannot both be sname:VK_NULL_HANDLE (partly addresses,
but does not fully close, public issue 117 / internal issue 246).
* Change reference to the "lifetime" of a Vulkan command to
"duration", and define the "duration" term (public issue 135).
* Added valid usage language for slink:VkImageLayout to require both
pname:height and pname:depth to be 1 for 1D images and pname:depth
to be 1 for 2D images (public issue 137).
* Fix SPIR-V example code in the
<<descriptorsets-inputattachment,Input Attachment>> section to
properly decorate the code:InputAttachmentIndex (public issue 139).
* Fix reference to nonexistent pname:imageInfo in the description of
flink:VkWriteDescriptorSet to refer to pname:pImageInfo (public
issue 140).
Internal Issues:
* Link to the fixed-function vertex chapter from the drawing chapter
(internal issue #110)
* Fix typo in slink:VkImageCreateInfo validity language:
ptext:maxExtent.sampleCounts -> pname:sampleCounts (internal issue
249).
* Explain why the non-core token etext:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
is used in the example in the
<<synchronization-semaphores,Semaphores>> section (internal issue
251).
* Attempt to clarify in the VK_KHR_android_surface extension's
<<platformQuerySupport_android,Android Platform Support>> section
that there is no Android-specific WSI query, and why (internal issue
252).
Other Commits:
* Add missing language about ename:VK_INCOMPLETE being returned from
array queries when the passed array is too short, in the
VK_KHR_display, VK_KHR_swapchain, and VK_KHR_surface extensions.
2016-04-01 10:04:38 +00:00
|
|
|
calling the command and its return to the caller.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Dynamic Storage Buffer::
|
|
|
|
A storage buffer whose offset is specified each time the storage buffer
|
|
|
|
is bound to a command buffer via a descriptor set.
|
|
|
|
|
|
|
|
Dynamic Uniform Buffer::
|
|
|
|
A uniform buffer whose offset is specified each time the uniform buffer
|
|
|
|
is bound to a command buffer via a descriptor set.
|
|
|
|
|
|
|
|
Explicitly-Enabled Layer::
|
|
|
|
A layer enabled by the application by adding it to the enabled layer
|
2016-04-21 08:08:38 +00:00
|
|
|
list in flink:vkCreateInstance or flink:vkCreateDevice.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
Event::
|
Change log for May 13, 2016 Vulkan 1.0.13 spec update:
* Bump API patch number and header version number to 13 for this
update.
Github Issues:
* Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the
VK_KHR_surface extension (public issue 174).
* Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command
buffers (public issue 182).
* Fix typos in VK_KHR_wayland_surface extension where code:wl_device was
used instead of code:wl_display (public issue 193).
* Replaced {apiname} with ``Vulkan'' in XML validity statements (public
issue 199).
* Fix dead links for WSI handle types (public issue 200).
*** N.b. this needs to be done in WSI branches as well ***
* Use "signaled" instead of "signalled" spelling everywhere (public issue
201).
*** N.b. this needs to be done in WSI branches as well ***
* Move readme.pdf target directory for XML schema documentation into the
target generation directory, instead of leaving it checked into the spec
source tree (public issue 203).
*** N.b. need to add generated PDF to registry index/1.0 page
* Fix duplicate 'which which' typo in description of
elink:VkCommandPoolResetFlagBits (public issue 204).
* Move the <<Programmable Primitive Shading>> section up one level, out of
the <<drawing-primitive-topologies,Primitive Topologies>> section
(public issue 209).
Internal Issues:
* Clarify in the <<pipelines-cache,Pipeline Cache>> section that
implementations should not manage the size of pipeline cache (internal
issue 192).
* Deprecate the concept of device layers and associated commands (internal
issue 255).
* Remove ename:VK_INCOMPLETE from the list of possible result codes of
flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314).
* Add missing std140/std430 rule: the base alignment of a member following
a structure is a multiple of the structure's base alignment (internal
issue 321).
* Fixes naming of the single elink:VkColorSpaceKHR enum from
ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to
ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the
VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the
typename (space and color are two words, not one) (internal issue 322).
* Make it clear that code:LocalInvocationID should only be applied to an
input variable and normalize the language describing
code:LocalInvocationID to the language for other compute shader
variables in the <<interfaces-builtin-variables,Built-in Variables>>
section, and add normative language (internal issue 323).
* Clarify in the <<fundamentals-returncodes,Return Codes>> section that
the result pointer may be modified for specific commands, even if a
runtime error is returned (internal issue 324).
2016-05-14 00:01:59 +00:00
|
|
|
A synchronization primitive that is signaled when execution of previous
|
2016-02-16 09:53:44 +00:00
|
|
|
commands complete through a specified set of pipeline stages. Events can
|
|
|
|
be waited on by the device and polled by the host. Represented by a
|
|
|
|
sname:VkEvent object.
|
|
|
|
|
|
|
|
Executable State (Command Buffer)::
|
|
|
|
A command buffer that has ended recording commands and can: be executed.
|
|
|
|
See also Initial State and Recording State.
|
|
|
|
|
|
|
|
Execution Dependency::
|
|
|
|
A dependency that guarantees that certain pipeline stages' work for a
|
|
|
|
first set of commands has completed execution before certain pipeline
|
|
|
|
stages' work for a second set of commands begins execution. This is
|
|
|
|
accomplished via pipeline barriers, subpass dependencies, events, or
|
|
|
|
implicit ordering operations.
|
|
|
|
|
|
|
|
Execution Dependency Chain::
|
|
|
|
A sequence of execution dependencies that transitively act as an
|
|
|
|
execution dependency.
|
|
|
|
|
|
|
|
External synchronization::
|
|
|
|
A type of synchronization required of the application, where parameters
|
|
|
|
defined to be externally synchronized mustnot: be used simultaneously in
|
|
|
|
multiple threads.
|
|
|
|
|
|
|
|
Facingness (Polygon)::
|
|
|
|
A classification of a polygon as either front-facing or back-facing,
|
|
|
|
depending on the orientation (winding order) of its vertices.
|
|
|
|
|
|
|
|
Fence::
|
|
|
|
A synchronization primitive that is signaled when a set of batches or
|
|
|
|
sparse binding operations complete execution on a queue. Fences can: be
|
|
|
|
waited on by the host. Represented by a sname:VkFence object.
|
|
|
|
|
|
|
|
Flatshading::
|
|
|
|
A property of a vertex attribute that causes the value from a single
|
|
|
|
vertex (the provoking vertex) to be used for all vertices in a
|
|
|
|
primitive, and for interpolation of that attribute to return that single
|
|
|
|
value unaltered.
|
|
|
|
|
|
|
|
Fragment Input Attachment Interface::
|
2016-05-27 10:37:56 +00:00
|
|
|
A fragment shader entry point's variables with code:UniformConstant storage class
|
2016-02-16 09:53:44 +00:00
|
|
|
and a decoration of code:InputAttachmentIndex, which receive values from
|
|
|
|
input attachments.
|
|
|
|
|
|
|
|
Fragment Output Interface::
|
|
|
|
A fragment shader entry point's variables with code:Output storage
|
|
|
|
class, which output to color and/or depth/stencil attachments.
|
|
|
|
|
|
|
|
Framebuffer::
|
|
|
|
A collection of image views and a set of dimensions that, in conjunction
|
|
|
|
with a render pass, define the inputs and outputs used by drawing
|
|
|
|
commands. Represented by a sname:VkFramebuffer object.
|
|
|
|
|
|
|
|
Framebuffer Attachment::
|
|
|
|
One of the image views used in a framebuffer.
|
|
|
|
|
|
|
|
Framebuffer Coordinates::
|
|
|
|
A coordinate system in which adjacent pixels' coordinates differ by 1 in
|
|
|
|
x and/or y, with latexmath:[$(0,0)$] in the upper left corner and pixel
|
|
|
|
centers at half-integers.
|
|
|
|
|
|
|
|
Front-Facing::
|
|
|
|
See Facingness.
|
|
|
|
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
Global Workgroup::
|
|
|
|
A collection of local workgroups dispatched by a single dispatch command.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Handle::
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
An opaque integer or pointer value used to refer to a Vulkan object.
|
2016-02-16 09:53:44 +00:00
|
|
|
Each object type has a unique handle type.
|
|
|
|
|
2016-04-21 08:08:38 +00:00
|
|
|
Happen-after::
|
|
|
|
A command happens-after a dependency if they are separated by an execution
|
|
|
|
dependency chain, with the command included in the destination of the last
|
|
|
|
dependency of the chain. A memory barrier makes visible memory writes to
|
|
|
|
commands that happen-after it.
|
|
|
|
|
|
|
|
Happen-before::
|
|
|
|
A command happens-before a dependency if they are separated by an execution
|
|
|
|
dependency chain, with the command included in the source of the first
|
|
|
|
dependency of the chain. A memory barrier makes available memory writes of
|
|
|
|
commands that happen-before it.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Helper Invocation::
|
|
|
|
A fragment shader invocation that is created solely for the purposes of
|
|
|
|
evaluating derivatives for use in non-helper fragment shader
|
|
|
|
invocations, and which does not have side effects.
|
|
|
|
|
|
|
|
Host::
|
|
|
|
The processor(s) and execution environment that the application runs on,
|
|
|
|
and that the Vulkan API is exposed on.
|
|
|
|
|
|
|
|
Host Memory::
|
|
|
|
Memory not accessible to the device, used to store implementation data
|
|
|
|
structures.
|
|
|
|
|
|
|
|
Host-Accessible Subresource::
|
|
|
|
A buffer, or a linear image subresource in either the
|
|
|
|
ename:VK_IMAGE_LAYOUT_PREINITIALIZED or ename:VK_IMAGE_LAYOUT_GENERAL
|
|
|
|
layout. Host-accessible subresources have a well-defined addressing
|
|
|
|
scheme which can be used by the host.
|
|
|
|
|
|
|
|
Host-Local Memory::
|
|
|
|
Memory that is not local to the device, and may: be less performant for
|
|
|
|
device access than device-local memory.
|
|
|
|
|
|
|
|
Host-Visible Memory::
|
|
|
|
Device memory that can: be mapped on the host and can: be read and
|
|
|
|
written by the host.
|
|
|
|
|
|
|
|
Image::
|
|
|
|
A resource that represents a multi-dimensional formatted interpretation
|
|
|
|
of device memory. Represented by a sname:VkImage object.
|
|
|
|
|
|
|
|
Image Subresource::
|
|
|
|
A specific mipmap level and layer of an image.
|
|
|
|
|
|
|
|
Image Subresource Range::
|
|
|
|
A set of image subresources that are contiguous mipmap levels and
|
|
|
|
layers.
|
|
|
|
|
|
|
|
Image View::
|
Change log for April 15, 2016 Vulkan 1.0.10 spec update:
* Bump API patch number and header version number to 10 for this
update.
Github Issues:
* Slightly tweak the <<memory-allocation,Host Memory>> allocator language
so that an application wrapping the standard C alloc/free/realloc
functions is still correct - the previous language was too strong with
regards to freeing memory. Also made certain scenarios clearer - an
implementation may now continue without error if an allocation failed
and it is able to continue correctly (public issue 21).
* Require that etext:VK_*_CREATE_SPARSE_BINDING_BIT is set when the
corresponding etext:VK_*_CREATE_SPARSE_RESIDENCY_BIT is used, in the
<<sparsememory-miptail,Mip Tail Regions>> section and related commands
flink:vkCreateBuffer and flink:vkCreateImage (public issue 84).
* Update the <<features,Features, Limits, and Formats>> chapter to clarify
interactions between optional features and dynamic state for the
pname:depthBiasClamp and pname:wideLines features (public issue 89).
* Describe the code:WorkgroupSize builtin in the
<<interfaces-builtin-variables,Built-In Variables>> section, and update
the <<compute-shaders,Compute Shaders>> section to further clarify how
to set the number of workgroups to execute in a compute shader (public
issue 145).
* Use the term *image subresource* everywhere instead of *subresource*,
except for the special case of *host-accessible subresource*, which may
be either an image subresource or buffer range (public issue 120)
* Add a note to the <<features,Features, Limits, and Formats>> section
about extensibility of structures (Public issue 165).
* Fix return code flink:vkAcquireNextImageKHR when the timeout parameter
is 0 to ename:VK_NOT_READY instead of ename:VK_TIMEOUT (public issue
170).
* Fix typo in slink:VkLayerProperties::pname:apiVersion field (public
issue 172).
Internal Issues:
* Fix a few minor internally-detected typos.
* Minor formatting tweaks to pseudocode in the <<resources,Resource
Creation>> chapter (internal issue 179).
* Fix typo in the definition of point sampling for
elink:VkCullModeFlagBits (internal issue 268).
2016-04-14 08:58:49 +00:00
|
|
|
An object that represents an image subresource range of a specific
|
|
|
|
image, and state that controls how the contents are interpreted.
|
|
|
|
Represented by a sname:VkImageView object.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
Immutable Sampler::
|
|
|
|
A sampler descriptor provided at descriptor set layout creation time,
|
|
|
|
and that is used for that binding in all descriptor sets created from
|
|
|
|
the layout, and cannot be changed.
|
|
|
|
|
|
|
|
Implicitly-Enabled Layer::
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
A layer enabled by a loader-defined mechanism outside the Vulkan API,
|
2016-02-16 09:53:44 +00:00
|
|
|
rather than explicitly by the application during instance or device
|
|
|
|
creation.
|
|
|
|
|
|
|
|
Index Buffer::
|
|
|
|
A buffer bound via flink:vkCmdBindIndexBuffer which is the source of
|
|
|
|
index values used to fetch vertex attributes for a
|
|
|
|
flink:vkCmdDrawIndexed or flink:vkCmdDrawIndexedIndirect command.
|
|
|
|
|
|
|
|
Indirect Commands::
|
|
|
|
Drawing or dispatching commands that source some of their parameters
|
|
|
|
from structures in buffer memory. Includes flink:vkCmdDrawIndirect,
|
|
|
|
flink:vkCmdDrawIndexedIndirect, and flink:vkCmdDispatchIndirect.
|
|
|
|
|
|
|
|
Initial State (Command Buffer)::
|
|
|
|
A command buffer that has not begun recording commands. See also
|
|
|
|
Recorded State and Executable State.
|
|
|
|
|
|
|
|
Input Attachment::
|
|
|
|
A descriptor type that represents an image view, and supports unfiltered
|
|
|
|
read-only access in a shader, only at the fragment's location in the
|
|
|
|
view.
|
|
|
|
|
|
|
|
Instance::
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
The top-level Vulkan object, which represents the application's
|
2016-02-16 09:53:44 +00:00
|
|
|
connection to the implementation. Represented by a sname:VkInstance
|
|
|
|
object.
|
|
|
|
|
Change log for June 10, 2016 Vulkan 1.0.16 spec update:
* Bump API patch number and header version number to 16 for this
update.
Github Issues:
* Clarify that integer border values are meant to be 0/1, and that
integer texture lookups are sign-extended in the
<<textures-format-conversion,Format Conversion>> and
<<textures-texel-replacement,Texel Replacement>> sections (public
issue 52).
* Add logic to generate spec boilerplate without using the 'git'
command-line client, needed when building from a tarball or another
source of the Vulkan tree rather than a cloned git repo. Remove
boilerplate as part of 'clean' target (public issue 195).
* Document that color writes and clears to unused attachments have no
effect for slink:VkClearAttachment and
elink:VkColorComponentFlagBits (public issue 198).
* Fixed flink:vkCmdExecuteCommands validity statement for
sname:VkCommandBufferInheritanceInfo::pname:framebuffer. If used, it
must match the framebuffer in the current renderpass instance
(public issue 226).
* Added valid usage language to require for all functions that set
dynamic state that the currently bound graphics pipeline has the
corresponding dynamic state enabled (public issue 235).
Internal Issues:
* Clarify for flink:vkEnumerateInstanceExtensionProperties, in the
<<extended-functionality-instance-extensions-and-devices, Instance
Extensions and Device Extensions>> section, and in the
<<glossary,Glossary>> section when functionality should be exposed
as an instance extension, as a device extension, or as both
(internal issue 109).
* Place WorkgroupSize in alphabetical order in the
<<interfaces-builtin-variables,Built-in Variables>> section
(internal issue 323).
* Corrects valid usage in vkEndRenderPass to only affect primary
render passes, as secondaries may be entirely within a render pass,
and should be able to be ended (previous language disallowed that)
(internal issue 338).
* Fix relational operator from <= to >= in the
<<features-extentperimagetype,Allowed Extent Values>> section
(internal issue 343).
* Disallow recursion under SPIR-V entry points in the
<<spirvenv-module-validation,Validation Rules within a Module>>
section (internal SPIR-V issue 37).
Other Commits:
* Use standard Python ElementTree package instead of lxml.etree in
header / validation layer / include autogeneration from XML,
reducing platform dependencies.
2016-06-10 22:49:54 +00:00
|
|
|
Instance-Level Object::
|
|
|
|
High-level Vulkan objects, which are not logical devices, nor children
|
|
|
|
of logical devices. For example, sname:VkInstance and
|
|
|
|
sname:VkPhysicalDevice objects are instance-level objects.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Internal Synchronization::
|
|
|
|
A type of synchronization required of the implementation, where
|
|
|
|
parameters not defined to be externally synchronized may: require
|
|
|
|
internal mutexing to avoid multithreaded race conditions.
|
|
|
|
|
|
|
|
Invocation (Shader)::
|
|
|
|
A single execution of an entry point in a SPIR-V module. For example, a
|
|
|
|
single vertex's execution of a vertex shader or a single fragment's
|
|
|
|
execution of a fragment shader.
|
|
|
|
|
Change log for March 10, 2016 Vulkan 1.0.6 spec update:
* Bump API patch number and header version number to 6 for this
update.
Github Issues:
* Define 'invocation group' for compute and graphics shaders. Cleanup
definition and use of 'workgroup', and add glossary entries (public
issue 1).
* Various minor editorial fixes (public issue 33).
* Clarify locations for block members in the
<<interfaces-iointerfaces-locations,Location Assignment>>
section (public issue 45).
* Editorial fixes for <<commandbuffer-allocation,Command Buffer
Allocation>> section (public issues 54, 59).
* Clarify behavior of depth test in the <<fragops-depth,Depth
Test>> section (public issues 80, 81).
* Remove discussion of return codes from
flink:vkGetPhysicalDeviceSparseImageFormatProperties and
flink:vkGetImageSparseMemoryRequirements, which don't return values
(public issue 82).
* Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
pname:drawCount of 0, as well as 1, when the multiDrawIndirect
feature is not supported (public issue 88).
* Remove confusing wording in the <<features-limits,Limits>>
section describing the slink:VkPhysicalDeviceLimits
pname:minTexelBufferOffsetAlignment,
pname:minUniformBufferOffsetAlignment, and
pname:minStorageBufferOffsetAlignment members as both minimums and
maximums (public issue 91).
* Clarified that only the RGB components should be affected in places
where sRGB is referred to in the spec, such as ASTC formats. Minor
re-wording to avoid "color space" when actively incorrect, now that
we refer to the Data Format Spec which actually makes a distinction
between color space and transfer function (public issue 94).
* Treat pname:pPropertyCount == 0 consistently in
flink:vkEnumerateInstanceLayerProperties and
flink:vkEnumerateDeviceLayerProperties (public issue 99)
* Cleanup minor editorial issues in chapters 14-17 (public issue 100).
* Clarify definition of flink:vkEnumerateInstanceExtensionProperties
and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
* Define the flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
parameter to be a pointer to a null-terminated UTF-8 string (public
issue 101).
* Rearrange "Missing information" references in mandatory format
tables (public issue 101).
* Clarify that the enumerated extensions returned by
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties will only include
extensions provided by the platform or extensions implemented in
implicitly enabled layers (public issue 101).
* Miscellaneous editorial fixes. Include the Vulkan spec patch number
in the PDF title. Fix label on <<fig-non-strict-lines,Non
strict lines>> diagram. Use more easily distinguished symbols in
tables in the <<features-required-format-support,Required
Format Support>> section. Don't require FQDNs used as layer names be
encoded in lower case if not possible, in the
<<extensions-naming-conventions, Extension and Layer Naming
Conventions>> section (public issues 101, 119, 121).
Internal Issues:
* Fixed excessive spacing in tables in XHTML (internal issue 18).
* Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
applies to secondary command buffers. Previously spec only referred
to the members of pname:pCommandBuffers being affected by this bit.
Added a separate slink:VkSubmitInfo Valid Usage restriction
specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
also applies to any secondary command buffers that are recorded into
the primary command buffers in pname:pCommandBuffers (internal issue
106).
* Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
NULL (internal issue 117).
* Remove "the value of" where it is redundant (e.g. speaking of an API
parameter, struct member, or SPIR-V variable, but not when speaking
of color components) (internal issue 175).
* Forced patch version to always be 0 in the header. Add a
"VK_API_VERSION_<major>_<minor>" macro for people to use to do the
right thing. Add a VK_HEADER_VERSION which captures the header
release number independent of the spec patch number (internal issue
176).
* Correct description of
slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
a null-terminated UTF-8 string" (internal issue #197).
Other Commits:
* Updated DataFormat spec reference to the new date for revision 5 of
that spec.
* Fixed KEEP option (to retain LaTeX intermediate files) in the
Makefile to be included when edited there, as well as set on the
command line.
* Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
script functionality to add and remove validity from existing
functions. Includes schema and readme changes.
* Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
sets.
2016-03-11 01:33:02 +00:00
|
|
|
Invocation Group::
|
|
|
|
A set of shader invocations that are executed in parallel and that must:
|
|
|
|
execute the same control flow path in order for control flow to be
|
|
|
|
considered dynamically uniform.
|
|
|
|
|
|
|
|
Local Workgroup::
|
|
|
|
A collection of compute shader invocations invoked by a single dispatch
|
|
|
|
command, which share shared memory and can synchronize with each other.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Logical Device::
|
|
|
|
An object that represents the application's interface to the physical
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
device. The logical device is the parent of most Vulkan objects.
|
2016-02-16 09:53:44 +00:00
|
|
|
Represented by a sname:VkDevice object.
|
|
|
|
|
|
|
|
Logical Operation::
|
|
|
|
Bitwise operations between a fragment color value and a value in a color
|
|
|
|
attachment, that produce a final color value to be written to the
|
|
|
|
attachment.
|
|
|
|
|
|
|
|
Lost Device::
|
|
|
|
A state that a logical device may: be in as a result of hardware errors
|
|
|
|
or other exceptional conditions.
|
|
|
|
|
|
|
|
Mappable::
|
|
|
|
See Host-Visible Memory.
|
|
|
|
|
|
|
|
Memory Dependency::
|
|
|
|
A sequence of operations that makes writes available, performs an
|
|
|
|
execution dependency between the writes and subsequent accesses, and
|
|
|
|
makes available writes visible to later accesses. In order for the
|
|
|
|
effects of a write to be coherent with later accesses, it must be made
|
|
|
|
available from the old access type and then made visible to the new
|
|
|
|
access type.
|
|
|
|
|
|
|
|
Memory Heap::
|
|
|
|
A region of memory from which device memory allocations can: be made.
|
|
|
|
|
|
|
|
Memory Type::
|
|
|
|
An index used to select a set of memory properties (e.g. mappable,
|
|
|
|
cached) for a device memory allocation.
|
|
|
|
|
|
|
|
Mip Tail Region::
|
|
|
|
The set of mipmap levels of a sparse residency texture that are too
|
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.
2016-03-25 09:25:04 +00:00
|
|
|
small to fill a sparse block, and that must all be bound to memory
|
|
|
|
collectively and opaquely.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
Non-Dispatchable Handle::
|
Change log for March 4, 2016 Vulkan 1.0.5 spec update:
* Bump API patch number to 5 for this update.
Github Issues:
* Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName
member as a string, not a pointer to a string. Also one typo fix for
"hetereogeneous" (public issue 4).
* Replace maynot: macro with may: not, and "may: or maynot:" with
"may:" (public issue 4).
* Clarify that redundantly setting the state of a fence or event has
no effect (public issue 4).
* Minor fixes to ref pages to track descriptions of memory bits that
changed in the core spec. Fix name of a member in the description of
sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8,
13).
* Remove redundant validity statement for
sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue
14).
* Fix typos in chapters 7-9 (public issue 14).
* Clarify the example demonstrating the behavior of
code:OpMemoryBarrier in the
<<shaders-execution-memory-ordering,shader memory acces
ordering>> section (public issue 16).
* Specify that freeing mapped memory implicitly unmaps the memory in
the description of flink:vkFreeMemory (public issue 17).
* Forbid allocation callbacks from calling into the API in the
<<memory-allocation,memory allocation>> section (public issue
20).
* Add missing validity rules about size being greater than 0 and
offset being less than size of object. Fix
flink:VkMappedMemoryRange's misinterpretation of offset (public
issues 27, 31).
* Add validity rule disallowing overlapping source/destination
descriptors in flink:VkCopyDescriptorSet (public issue 32).
* Clarify that array and matrix stride has to be a multiple of the
base alignment of the array or matrix in the
<<interfaces-resources-layout,Offset and Stride Assignment>>
section (public issue 38).
* Correct parenthesis floor nesting error in equation for
<<textures-RGB-sexp,RGB to shared exponent conversion>>.
Clarify case of when exp' is forced to 0, avoiding log2(0) undefined
problem (public issue 40).
* Remove redundant statement from the code:FragDepth description in
the <<interfaces-builtin-variables,Built-In Variables>>
section (public issue 47).
* Define the clamping of the
<<textures-level-of-detail-operation,bias added to the scale
factor>> by linking to the slink:VkPhysicalDevice feature
pname:maxSamplerLodBias (public issue 64).
* Fix typo "optimal linear resources" and clarify the set of resources
<<features-limits-bufferImageGranularity,the
pname:bufferImageGranularity resource>> applies to (public issue
67).
* Replace 'descriptor accessed by a pipeline' language for
sname:VkDescriptorSetAllocateInfo with more precise phrasing about
binding a descriptor set before a command that invokes work using
that set (public issue 69).
* tstripadj.svg contained an Inkscape tag which caused Firefox and IE
11 to fail to render it, and was illegal SVG. Generating Plain SVG
from the Inkscape SVG source fixes this (public issue 70).
* Fix validity for sname:VkVertexInputBindingDescription and
sname:VkVertexInputAttributeDescription numbers (public issue 72).
Internal Issues:
* Clarify the meaning of
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in
elink:VkFormatFeatureFlagBits with respect to depth compare
(internal issue 107).
* Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may
not be reported for a queue family that already supports
ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the
former is a strict subset of the latter ones (internal issue 116).
* Add validity language for sname:VkDescriptorSetAllocateInfo about
exceeding the descriptor pool capacity (internal issue 140).
* Add ename:VK_INCOMPLETE success code for
flink:vkEnumeratePhysicalDevices query (internal issue 163).
Other Commits:
* Add the VK_NV_glsl_shader extension definitions to the API.
* Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2)
specialization array constant semantics.
* Corrected/updated Data Format Specification date.
2016-03-03 13:06:18 +00:00
|
|
|
A handle of an integer handle type. Handle values may: not be unique,
|
2016-02-16 09:53:44 +00:00
|
|
|
even for two objects of the same type.
|
|
|
|
|
|
|
|
Normalized::
|
|
|
|
A value that is interpreted as being in the range latexmath:[$[0,1\]$]
|
|
|
|
as a result of being implicitly divided by some other value.
|
|
|
|
|
|
|
|
Normalized Device Coordinates::
|
|
|
|
A coordinate space after perspective division is applied to clip
|
|
|
|
coordinates, and before the viewport transformation converts to
|
|
|
|
framebuffer coordinates.
|
|
|
|
|
|
|
|
Overlapped Range (Aliased Range)::
|
|
|
|
The aliased range of a device memory allocation that intersects a given
|
Change log for April 15, 2016 Vulkan 1.0.10 spec update:
* Bump API patch number and header version number to 10 for this
update.
Github Issues:
* Slightly tweak the <<memory-allocation,Host Memory>> allocator language
so that an application wrapping the standard C alloc/free/realloc
functions is still correct - the previous language was too strong with
regards to freeing memory. Also made certain scenarios clearer - an
implementation may now continue without error if an allocation failed
and it is able to continue correctly (public issue 21).
* Require that etext:VK_*_CREATE_SPARSE_BINDING_BIT is set when the
corresponding etext:VK_*_CREATE_SPARSE_RESIDENCY_BIT is used, in the
<<sparsememory-miptail,Mip Tail Regions>> section and related commands
flink:vkCreateBuffer and flink:vkCreateImage (public issue 84).
* Update the <<features,Features, Limits, and Formats>> chapter to clarify
interactions between optional features and dynamic state for the
pname:depthBiasClamp and pname:wideLines features (public issue 89).
* Describe the code:WorkgroupSize builtin in the
<<interfaces-builtin-variables,Built-In Variables>> section, and update
the <<compute-shaders,Compute Shaders>> section to further clarify how
to set the number of workgroups to execute in a compute shader (public
issue 145).
* Use the term *image subresource* everywhere instead of *subresource*,
except for the special case of *host-accessible subresource*, which may
be either an image subresource or buffer range (public issue 120)
* Add a note to the <<features,Features, Limits, and Formats>> section
about extensibility of structures (Public issue 165).
* Fix return code flink:vkAcquireNextImageKHR when the timeout parameter
is 0 to ename:VK_NOT_READY instead of ename:VK_TIMEOUT (public issue
170).
* Fix typo in slink:VkLayerProperties::pname:apiVersion field (public
issue 172).
Internal Issues:
* Fix a few minor internally-detected typos.
* Minor formatting tweaks to pseudocode in the <<resources,Resource
Creation>> chapter (internal issue 179).
* Fix typo in the definition of point sampling for
elink:VkCullModeFlagBits (internal issue 268).
2016-04-14 08:58:49 +00:00
|
|
|
image subresource of an image or range of a buffer.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
Packed Format::
|
|
|
|
A format whose components are stored as a single data element in memory,
|
|
|
|
with their relative locations defined within that element.
|
|
|
|
|
|
|
|
Physical Device::
|
|
|
|
An object that represents a single device in the system. Represented by
|
|
|
|
a sname:VkPhysicalDevice object.
|
|
|
|
|
|
|
|
Pipeline::
|
|
|
|
An object that controls how graphics or compute work is executed on the
|
|
|
|
device. A pipeline includes one or more shaders, as well as state
|
|
|
|
controlling any non-programmable stages of the pipeline. Represented by
|
|
|
|
a sname:VkPipeline object.
|
|
|
|
|
|
|
|
Pipeline Barrier::
|
|
|
|
An execution and/or memory dependency recorded as an explicit command in
|
|
|
|
a command buffer, that forms a dependency between the previous and
|
|
|
|
subsequent commands.
|
|
|
|
|
|
|
|
Pipeline Cache::
|
|
|
|
An object that can: be used to collect and retrieve information from
|
|
|
|
pipelines as they are created, and can: be populated with previously
|
|
|
|
retrieved information in order to accelerate pipeline creation.
|
|
|
|
Represented by a sname:VkPipelineCache object.
|
|
|
|
|
|
|
|
Pipeline Layout::
|
|
|
|
An object that defines the set of resources (via a collection of
|
|
|
|
descriptor set layouts) and push constants used by pipelines that are
|
|
|
|
created using the layout. Used when creating a pipeline and when binding
|
|
|
|
descriptor sets and setting push constant values. Represented by a
|
|
|
|
sname:VkPipelineLayout object.
|
|
|
|
|
|
|
|
Point Sampling (Rasterization)::
|
|
|
|
A rule that determines whether a fragment sample location is covered by
|
|
|
|
a polygon primitive by testing whether the sample location is in the
|
|
|
|
interior of the polygon in framebuffer-space, or on the boundary of the
|
|
|
|
polygon according to the tie-breaking rules.
|
|
|
|
|
|
|
|
Preserve Attachment::
|
|
|
|
One of a list of attachments in a subpass description that is not read
|
|
|
|
or written by the subpass, but that is read or written on earlier and
|
|
|
|
later subpasses and whose contents must be preserved through this
|
|
|
|
subpass.
|
|
|
|
|
|
|
|
Primary Command Buffer::
|
|
|
|
A command buffer that can: execute secondary command buffers, and can:
|
|
|
|
be submitted directly to a queue.
|
|
|
|
|
|
|
|
Primitive Topology::
|
|
|
|
State that controls how vertices are assembled into primitives, e.g. as
|
|
|
|
lists of triangles, strips of lines, etc..
|
|
|
|
|
|
|
|
Provoking Vertex::
|
|
|
|
The vertex in a primitive from which flatshaded attribute values are
|
|
|
|
taken. This is generally the ``first'' vertex in the primitive, and
|
|
|
|
depends on the primitive topology.
|
|
|
|
|
|
|
|
Push Constants::
|
|
|
|
A small bank of values writable via the API and accessible in shaders.
|
|
|
|
Push constants allow the application to set values used in shaders
|
|
|
|
without creating buffers or modifying and binding descriptor sets for
|
|
|
|
each update.
|
|
|
|
|
|
|
|
Push Constant Interface::
|
|
|
|
The set of variables with code:PushConstant storage class that are
|
|
|
|
statically used by a shader entry point, and which receive values
|
|
|
|
from push constant commands.
|
|
|
|
|
|
|
|
Query Pool::
|
|
|
|
An object that contains a number of query entries and their associated
|
|
|
|
state and results. Represented by a sname:VkQueryPool object.
|
|
|
|
|
|
|
|
Queue::
|
|
|
|
An object that executes command buffers and sparse binding operations on
|
|
|
|
a device. Represented by a sname:VkQueue object.
|
|
|
|
|
|
|
|
Queue Family::
|
|
|
|
A set of queues that have common properties and support the same
|
|
|
|
functionality, as advertised in slink:VkQueueFamilyProperties.
|
|
|
|
|
Change log for June 24, 2016 Vulkan 1.0.18 spec update:
* Bump API patch number and header version number to 18 for this
update.
Github Issues:
* Added "queue operation" terminology, and modified spec to actually
use this terminology (public issue 155). The act of submitting a
piece of work to a queue now generates "operations" for the queue to
execute, including operations to wait on/signal semaphores and
fences. Synchronization waits on these operations, making execution
dependency chains more obvious for semaphores and fences (though
additional work is still needed here). These changes include:
** Overview of "queue submission" commands in chapter
<<devsandqueues-submission>>.
** Updated descriptions for fence and semaphore waits and signals in
the synchronization chapter <<synchronization-semaphores-waiting>>,
<<synchronization-semaphores-signaling>> and
<<synchronization-fences-waiting>>.
** Clarifications to semaphore and fence operation within queue
submission functions.
** New glossary terms.
** Moved device idle and queue wait idle to synchronization chapter in
order to describe them in terms of other synchronization
primitives.
** Clarifications to semaphore and fence operation allowed removal of
the "implicit ordering guarantees" section, as this information is
now wholly covered where these primitives are described.
*** The "host writes" section of this is still there for now - in its
own section. This could probably be merged into other sections
later.
*** Modified fundamentals chapter on queue ordering to make sense in
context of the new changes, and avoid duplication.
<<fundamentals-queueoperation>>
* Added "aspect" and "component" definitions to the glossary, and made
sure these terms are referenced correctly (public issue 163).
* Update valid usage for ftext:vkGet*ProcAddr to only include
conditions that must be met to get a valid result. In particular,
it's okay to call flink:vkGetDeviceProcAddr with any string and will
get a code:NULL if that string is not a core Vulkan function or an
enabled extension function (addresses but does not fully close
public issue 214).
* Change the WSI extension dependencies to refer to version 1.0 of the
Vulkan API, instead of the pre-1.0-release internal revisions
numbers (public issue 238).
* Specified that <<interfaces-fragmentoutput,undeclared fragment
shader outputs>> result in undefined values input to the blending
unit or color attachment (public issue 240).
Internal Issues:
* Better documented that the registry XML "optional" tag for values
only applies when that value is the size of an array (internal issue
335).
* Add a stronger definition for the valid usages of
VkSpecializationMapEntry.size in the
<<pipelines-specialization-constants,Specialization Constants>>
section (internal issue 345).
* Change code:OpName to code:OpDecorate (along with appropriate
syntax) for vertex shader built-ins (internal issue 368).
* Add missing ref pages (those which are not currently stubs) to
apispec.txt for the single-page version of the ref pages (internal
issue 378).
Other Commits:
* Fix example in the <<descriptorsets,Descriptor Sets>> section to use
M, N, and I, describing set, binding, and index, consistently
throughout the example code.
2016-06-23 10:18:00 +00:00
|
|
|
Queue Operation::
|
|
|
|
A unit of work to be executed by a specific queue on a device, submitted
|
|
|
|
via a <<devsandqueues-submission, queue submission command>>. Each queue
|
|
|
|
submission command details the specific queue operations that occur as a
|
|
|
|
result of calling that command. Queue operations typically include work
|
|
|
|
that is specific to each command, and synchronization tasks.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Queue Submission::
|
Change log for June 24, 2016 Vulkan 1.0.18 spec update:
* Bump API patch number and header version number to 18 for this
update.
Github Issues:
* Added "queue operation" terminology, and modified spec to actually
use this terminology (public issue 155). The act of submitting a
piece of work to a queue now generates "operations" for the queue to
execute, including operations to wait on/signal semaphores and
fences. Synchronization waits on these operations, making execution
dependency chains more obvious for semaphores and fences (though
additional work is still needed here). These changes include:
** Overview of "queue submission" commands in chapter
<<devsandqueues-submission>>.
** Updated descriptions for fence and semaphore waits and signals in
the synchronization chapter <<synchronization-semaphores-waiting>>,
<<synchronization-semaphores-signaling>> and
<<synchronization-fences-waiting>>.
** Clarifications to semaphore and fence operation within queue
submission functions.
** New glossary terms.
** Moved device idle and queue wait idle to synchronization chapter in
order to describe them in terms of other synchronization
primitives.
** Clarifications to semaphore and fence operation allowed removal of
the "implicit ordering guarantees" section, as this information is
now wholly covered where these primitives are described.
*** The "host writes" section of this is still there for now - in its
own section. This could probably be merged into other sections
later.
*** Modified fundamentals chapter on queue ordering to make sense in
context of the new changes, and avoid duplication.
<<fundamentals-queueoperation>>
* Added "aspect" and "component" definitions to the glossary, and made
sure these terms are referenced correctly (public issue 163).
* Update valid usage for ftext:vkGet*ProcAddr to only include
conditions that must be met to get a valid result. In particular,
it's okay to call flink:vkGetDeviceProcAddr with any string and will
get a code:NULL if that string is not a core Vulkan function or an
enabled extension function (addresses but does not fully close
public issue 214).
* Change the WSI extension dependencies to refer to version 1.0 of the
Vulkan API, instead of the pre-1.0-release internal revisions
numbers (public issue 238).
* Specified that <<interfaces-fragmentoutput,undeclared fragment
shader outputs>> result in undefined values input to the blending
unit or color attachment (public issue 240).
Internal Issues:
* Better documented that the registry XML "optional" tag for values
only applies when that value is the size of an array (internal issue
335).
* Add a stronger definition for the valid usages of
VkSpecializationMapEntry.size in the
<<pipelines-specialization-constants,Specialization Constants>>
section (internal issue 345).
* Change code:OpName to code:OpDecorate (along with appropriate
syntax) for vertex shader built-ins (internal issue 368).
* Add missing ref pages (those which are not currently stubs) to
apispec.txt for the single-page version of the ref pages (internal
issue 378).
Other Commits:
* Fix example in the <<descriptorsets,Descriptor Sets>> section to use
M, N, and I, describing set, binding, and index, consistently
throughout the example code.
2016-06-23 10:18:00 +00:00
|
|
|
Zero or more batches and an optional fence to be signaled, passed to a
|
|
|
|
command for execution on a queue.
|
|
|
|
See the <<devsandqueues-submission, Devices and Queues chapter>> for
|
|
|
|
more information.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Recording State (Command Buffer)::
|
|
|
|
A command buffer that is ready to record commands. See also Initial
|
|
|
|
State and Executable State.
|
|
|
|
|
|
|
|
Render Pass::
|
|
|
|
An object that represents a set of framebuffer attachments and phases of
|
|
|
|
rendering using those attachments. Represented by a sname:VkRenderPass
|
|
|
|
object.
|
|
|
|
|
|
|
|
Render Pass Instance::
|
|
|
|
A use of a render pass in a command buffer.
|
|
|
|
|
|
|
|
Reset (Command Buffer)::
|
|
|
|
Resetting a command buffer discards any previously recorded commands
|
|
|
|
and puts a command buffer in the initial state.
|
|
|
|
|
|
|
|
Residency Code::
|
|
|
|
An integer value returned by sparse image instructions, indicating
|
|
|
|
whether any sparse unbound texels were accessed.
|
|
|
|
|
|
|
|
Resolve Attachment::
|
|
|
|
A subpass attachment point, or image view, that is the target of a
|
|
|
|
multisample resolve operation from the corresponding color attachment at
|
|
|
|
the end of the subpass.
|
|
|
|
|
|
|
|
Sampled Image::
|
|
|
|
A descriptor type that represents an image view, and supports filtered
|
|
|
|
(sampled) and unfiltered read-only acccess in a shader.
|
|
|
|
|
|
|
|
Sampler::
|
|
|
|
An object that contains state that controls how sampled image data is
|
|
|
|
sampled (or filtered) when accessed in a shader. Also a descriptor type
|
|
|
|
describing the object. Represented by a sname:VkSampler object.
|
|
|
|
|
|
|
|
Secondary Command Buffer::
|
|
|
|
A command buffer that can: be executed by a primary command buffer, and
|
|
|
|
mustnot: be submitted directly to a queue.
|
|
|
|
|
|
|
|
Self-Dependency::
|
|
|
|
A subpass dependency from a subpass to itself, i.e. with
|
|
|
|
pname:srcSubpass equal to pname:dstSubpass. A self-dependency is not
|
|
|
|
automatically performed during a render pass instance, rather a subset
|
|
|
|
of it can: be performed via flink:vkCmdPipelineBarrier during the
|
|
|
|
subpass.
|
|
|
|
|
|
|
|
Semaphore::
|
|
|
|
A synchronization primitive that supports signal and wait operations,
|
|
|
|
and can: be used to synchronize operations within a queue or across
|
|
|
|
queues. Represented by a sname:VkSemaphore object.
|
|
|
|
|
|
|
|
Shader::
|
|
|
|
Instructions selected (via an entry point) from a shader module, which
|
|
|
|
are executed in a shader stage.
|
|
|
|
|
|
|
|
Shader Code::
|
|
|
|
A stream of instructions used to describe the operation of a shader.
|
|
|
|
|
|
|
|
Shader Module::
|
|
|
|
A collection of shader code, potentially including several functions and
|
|
|
|
entry points, that is used to create shaders in pipelines. Represented
|
|
|
|
by a sname:VkShaderModule object.
|
|
|
|
|
|
|
|
Shader Stage::
|
|
|
|
A stage of the graphics or compute pipeline that executes shader code.
|
|
|
|
|
|
|
|
Side Effect::
|
|
|
|
A store to memory or atomic operation on memory from a shader invocation.
|
|
|
|
|
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.
2016-03-25 09:25:04 +00:00
|
|
|
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.
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
Sparse Unbound Texel::
|
|
|
|
A texel read from a region of a sparse texture that does not have
|
|
|
|
memory bound to it.
|
|
|
|
|
|
|
|
Static Use::
|
|
|
|
An object in a shader is statically used by a shader entry point if any
|
|
|
|
function in the entry point's call tree contains an instruction using
|
|
|
|
the object. Static use is used to constrain the set of descriptors used
|
|
|
|
by a shader entry point.
|
|
|
|
|
|
|
|
Storage Buffer::
|
|
|
|
A descriptor type that represents a buffer, and supports reads, writes,
|
|
|
|
and atomics in a shader.
|
|
|
|
|
|
|
|
Storage Image::
|
|
|
|
A descriptor type that represents an image view, and supports unfiltered
|
|
|
|
loads, stores, and atomics in a shader.
|
|
|
|
|
|
|
|
Storage Texel Buffer::
|
|
|
|
A descriptor type that represents a buffer view, and supports
|
|
|
|
unfiltered, formatted reads, writes, and atomics in a shader.
|
|
|
|
|
|
|
|
Subpass::
|
|
|
|
A phase of rendering within a render pass, that reads and writes a
|
|
|
|
subset of the attachments.
|
|
|
|
|
|
|
|
Subpass Dependency::
|
|
|
|
An execution and/or memory dependency between two subpasses described as
|
|
|
|
part of render pass creation, and automatically performed between
|
|
|
|
subpasses in a render pass instance. A subpass dependency limits the
|
|
|
|
overlap of execution of the pair of subpasses, and can: provide
|
|
|
|
guarantees of memory coherence between accesses in the subpasses.
|
|
|
|
|
|
|
|
Subpass Description::
|
|
|
|
Lists of attachment indices for input attachments, color attachments,
|
|
|
|
depth/stencil attachment, resolve attachments, and preserve attachments
|
|
|
|
used by the subpass in a render pass.
|
|
|
|
|
|
|
|
Subset (Self-Dependency)::
|
|
|
|
A subset of a self-dependency is a pipeline barrier performed during the
|
|
|
|
subpass of the self-dependency, and whose stage masks and access masks
|
|
|
|
each contain a subset of the bits set in the identically named mask in
|
|
|
|
the self-dependency.
|
|
|
|
|
|
|
|
Texel Coordinate System::
|
|
|
|
One of three coordinate systems (normalized, unnormalized, integer) that
|
|
|
|
define how texel coordinates are interpreted in an image or a specific
|
|
|
|
mipmap level of an image.
|
|
|
|
|
|
|
|
Uniform Texel Buffer::
|
|
|
|
A descriptor type that represents a buffer view, and supports
|
|
|
|
unfiltered, formatted, read-only access in a shader.
|
|
|
|
|
|
|
|
Uniform Buffer::
|
|
|
|
A descriptor type that represents a buffer, and supports read-only
|
|
|
|
access in a shader.
|
|
|
|
|
|
|
|
Unnormalized::
|
|
|
|
A value that is interpreted according to its conventional
|
|
|
|
interpretation, and is not normalized.
|
|
|
|
|
|
|
|
User-Defined Variable Interface::
|
|
|
|
A shader entry point's variables with code:Input or code:Output storage
|
|
|
|
class that are not built-in variables.
|
|
|
|
|
|
|
|
Vertex Input Attribute::
|
|
|
|
A graphics pipeline resource that produces input values for the vertex
|
|
|
|
shader by reading data from a vertex input binding and converting it to
|
|
|
|
the attribute's format.
|
|
|
|
|
|
|
|
Vertex Input Binding::
|
|
|
|
A graphics pipeline resource that is bound to a buffer and includes
|
|
|
|
state that affects addressing calculations within that buffer.
|
|
|
|
|
|
|
|
Vertex Input Interface::
|
|
|
|
A vertex shader entry point's variables with code:Input storage class,
|
|
|
|
which receive values from vertex input attributes.
|
|
|
|
|
|
|
|
Vertex Processing Stages::
|
|
|
|
A set of shader stages that comprises the vertex shader, tessellation
|
|
|
|
control shader, tessellation evaluation shader, and geometry shader
|
|
|
|
stages.
|
|
|
|
|
|
|
|
View Volume::
|
|
|
|
A subspace in homogeneous coordinates, corresponding to post-projection
|
|
|
|
x and y values between -1 and +1, and z values between 0 and +1.
|
|
|
|
|
|
|
|
Viewport Transformation::
|
|
|
|
A transformation from normalized device coordinates to framebuffer
|
|
|
|
coordinates, based on a viewport rectangle and depth range.
|
|
|
|
|
|
|
|
Visible::
|
|
|
|
See Memory Dependency.
|
|
|
|
|
|
|
|
// To be added per issue 18:
|
|
|
|
// Current State <<fundamentals-queueoperation>>
|
|
|
|
// Barycentric Coordinates <<primsrast-polygons-basic>>
|
|
|
|
// Internal Allocations <<memory-host-allocation-scope>>
|
|
|
|
// Unavailable, Available <<queries-operation>>
|
|
|
|
// Signaled, Unsignaled <<synchronization-semaphores>> <<synchronization-fences>>
|
|
|
|
// Interior Vertices <<tessellation-tessellator-spacing>>
|
|
|
|
// Inner Vertices <<tessellation-triangle-tessellation>> <<tessellation-quad-tessellation>>
|
|
|
|
// Isolines <<tessellation-isoline-tessellation>>
|
|
|
|
// Binding Range <<sparsemem-memory-binding>>
|
|
|
|
|
|
|
|
|
|
|
|
[glossary]
|
|
|
|
= Common Abbreviations
|
|
|
|
|
|
|
|
Abbreviations and acronyms are sometimes used in the Specification and the
|
|
|
|
API where they are considered clear and commonplace, and are defined here:
|
|
|
|
|
|
|
|
Src::
|
|
|
|
Source
|
|
|
|
|
|
|
|
Dst::
|
|
|
|
Destination
|
|
|
|
|
|
|
|
Min::
|
|
|
|
Minimum
|
|
|
|
|
|
|
|
Max::
|
|
|
|
Maximum
|
|
|
|
|
|
|
|
Rect::
|
|
|
|
Rectangle
|
|
|
|
|
|
|
|
Info::
|
|
|
|
Information
|
|
|
|
|
|
|
|
LOD::
|
|
|
|
Level of Detail
|
|
|
|
|
|
|
|
ID::
|
|
|
|
Identifier
|
|
|
|
|
|
|
|
UUID::
|
|
|
|
Universally Unique Identifier
|
|
|
|
|
|
|
|
Op::
|
|
|
|
Operation
|
|
|
|
|
|
|
|
R::
|
|
|
|
Red color component
|
|
|
|
|
|
|
|
G::
|
|
|
|
Green color component
|
|
|
|
|
|
|
|
B::
|
|
|
|
Blue color component
|
|
|
|
|
|
|
|
A::
|
|
|
|
Alpha color component
|
|
|
|
|
|
|
|
|
|
|
|
[glossary]
|
|
|
|
= Prefixes
|
|
|
|
|
|
|
|
Prefixes are used in the API to denote specific semantic meaning of
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
Vulkan names, or as a label to avoid name clashes, and are explained
|
2016-02-16 09:53:44 +00:00
|
|
|
here:
|
|
|
|
|
|
|
|
VK/Vk/vk::
|
|
|
|
Vulkan namespace +
|
|
|
|
All types, commands, enumerants and defines in this specification are
|
|
|
|
prefixed with these two characters.
|
|
|
|
|
|
|
|
PFN/pfn::
|
|
|
|
Function Pointer +
|
|
|
|
Denotes that a type is a function pointer, or that a variable is of a
|
|
|
|
pointer type.
|
|
|
|
|
|
|
|
p::
|
|
|
|
Pointer +
|
|
|
|
Variable is a pointer.
|
|
|
|
|
|
|
|
vkCmd::
|
|
|
|
Commands that record commands in command buffers +
|
|
|
|
These API commands do not result in immediate processing on the device.
|
|
|
|
Instead, they record the requested action in a command buffer for
|
|
|
|
execution when the command buffer is submitted to a queue.
|
|
|
|
|
|
|
|
s::
|
|
|
|
Structure +
|
|
|
|
Used to denote the etext:VK_STRUCTURE_TYPE* member of each structure in
|
|
|
|
pname:sType
|