1e5c31af7Sopenharmony_ci// Copyright 2015-2021 The Khronos Group, Inc.
2e5c31af7Sopenharmony_ci//
3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0
4e5c31af7Sopenharmony_ci
5e5c31af7Sopenharmony_ci// The asciidoc [glossary] template cannot contain subsections.
6e5c31af7Sopenharmony_ci// The abbreviations and prefixes probably belong in the upcoming
7e5c31af7Sopenharmony_ci// API/extension-writing-guidelines appendix, anyway.
8e5c31af7Sopenharmony_ci
9e5c31af7Sopenharmony_ci[appendix]
10e5c31af7Sopenharmony_ci[[lexicon]]
11e5c31af7Sopenharmony_ci= Lexicon
12e5c31af7Sopenharmony_ci
13e5c31af7Sopenharmony_ciThis appendix defines terms, abbreviations, and API prefixes used in the
14e5c31af7Sopenharmony_ciSpecification.
15e5c31af7Sopenharmony_ci
16e5c31af7Sopenharmony_ci
17e5c31af7Sopenharmony_ci[[glossary]]
18e5c31af7Sopenharmony_ci== Glossary
19e5c31af7Sopenharmony_ci
20e5c31af7Sopenharmony_ciThe terms defined in this section are used consistently throughout the
21e5c31af7Sopenharmony_ciSpecification and may be used with or without capitalization.
22e5c31af7Sopenharmony_ci
23e5c31af7Sopenharmony_ciAccessible (Descriptor Binding)::
24e5c31af7Sopenharmony_ci    A descriptor binding is accessible to a shader stage if that stage is
25e5c31af7Sopenharmony_ci    included in the pname:stageFlags of the descriptor binding.
26e5c31af7Sopenharmony_ci    Descriptors using that binding can: only be used by stages in which they
27e5c31af7Sopenharmony_ci    are accessible.
28e5c31af7Sopenharmony_ci
29e5c31af7Sopenharmony_ciAcquire Operation (Resource)::
30e5c31af7Sopenharmony_ci    An operation that acquires ownership of an image subresource or buffer
31e5c31af7Sopenharmony_ci    range.
32e5c31af7Sopenharmony_ci
33e5c31af7Sopenharmony_ciifdef::VK_VALVE_mutable_descriptor_type[]
34e5c31af7Sopenharmony_ciActive (Descriptor Type)::
35e5c31af7Sopenharmony_ci    When a descriptor with _mutable_ type is updated with
36e5c31af7Sopenharmony_ci    flink:vkUpdateDescriptorSets, the active descriptor type changes.
37e5c31af7Sopenharmony_ci    When the descriptor is consumed by shaders, it is the active descriptor
38e5c31af7Sopenharmony_ci    type which determines validity, i.e.
39e5c31af7Sopenharmony_ci    sname:VkDescriptorSetLayoutBinding::pname:descriptorType is replaced
40e5c31af7Sopenharmony_ci    with the active descriptor type.
41e5c31af7Sopenharmony_ci    A mismatch in active descriptor type and consumption by shader is
42e5c31af7Sopenharmony_ci    considered an undefined: descriptor.
43e5c31af7Sopenharmony_ciendif::VK_VALVE_mutable_descriptor_type[]
44e5c31af7Sopenharmony_ci
45e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
46e5c31af7Sopenharmony_ciActive (Transform Feedback)::
47e5c31af7Sopenharmony_ci    Transform feedback is made active after
48e5c31af7Sopenharmony_ci    flink:vkCmdBeginTransformFeedbackEXT executes and remains active until
49e5c31af7Sopenharmony_ci    flink:vkCmdEndTransformFeedbackEXT executes.
50e5c31af7Sopenharmony_ci    While transform feedback is active, data written to variables in the
51e5c31af7Sopenharmony_ci    output interface of the last
52e5c31af7Sopenharmony_ci    <<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
53e5c31af7Sopenharmony_ci    stage>> of the graphics pipeline are captured to the bound transform
54e5c31af7Sopenharmony_ci    feedback buffers if those variables are decorated for transform
55e5c31af7Sopenharmony_ci    feedback.
56e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
57e5c31af7Sopenharmony_ci
58e5c31af7Sopenharmony_ciAdjacent Vertex::
59e5c31af7Sopenharmony_ci    A vertex in an adjacency primitive topology that is not part of a given
60e5c31af7Sopenharmony_ci    primitive, but is accessible in geometry shaders.
61e5c31af7Sopenharmony_ci
62e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
63e5c31af7Sopenharmony_ciActive Object (Ray Tracing)::
64e5c31af7Sopenharmony_ci    A primitive or instance in a ray tracing acceleration structure which
65e5c31af7Sopenharmony_ci    has a corresponding ID, and is not _inactive_ (meaning that it is
66e5c31af7Sopenharmony_ci    visible to rays).
67e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
68e5c31af7Sopenharmony_ci
69e5c31af7Sopenharmony_ciifdef::VK_EXT_blend_operation_advanced[]
70e5c31af7Sopenharmony_ciAdvanced Blend Operation::
71e5c31af7Sopenharmony_ci    Blending performed using one of the blend operation enums introduced by
72e5c31af7Sopenharmony_ci    the `apiext:VK_EXT_blend_operation_advanced` extension.
73e5c31af7Sopenharmony_ci    See <<framebuffer-blend-advanced, Advanced Blending Operations>>.
74e5c31af7Sopenharmony_ciendif::VK_EXT_blend_operation_advanced[]
75e5c31af7Sopenharmony_ci
76e5c31af7Sopenharmony_ciAlias (API type/command)::
77e5c31af7Sopenharmony_ci    An identical definition of another API type/command with the same
78e5c31af7Sopenharmony_ci    behavior but a different name.
79e5c31af7Sopenharmony_ci
80e5c31af7Sopenharmony_ciAliased Range (Memory)::
81e5c31af7Sopenharmony_ci    A range of a device memory allocation that is bound to multiple
82e5c31af7Sopenharmony_ci    resources simultaneously.
83e5c31af7Sopenharmony_ci
84e5c31af7Sopenharmony_ciAllocation Scope::
85e5c31af7Sopenharmony_ci    An association of a host memory allocation to a parent object or
86e5c31af7Sopenharmony_ci    command, where the allocation's lifetime ends before or at the same time
87e5c31af7Sopenharmony_ci    as the parent object is freed or destroyed, or during the parent
88e5c31af7Sopenharmony_ci    command.
89e5c31af7Sopenharmony_ci
90e5c31af7Sopenharmony_ciAspect (Image)::
91e5c31af7Sopenharmony_ci    An image may: contain multiple kinds, or aspects, of data for each
92e5c31af7Sopenharmony_ci    pixel, where each aspect is used in a particular way by the pipeline and
93e5c31af7Sopenharmony_ci    may: be stored differently or separately from other aspects.
94e5c31af7Sopenharmony_ci    For example, the color components of an image format make up the color
95e5c31af7Sopenharmony_ci    aspect of the image, and may: be used as a framebuffer color attachment.
96e5c31af7Sopenharmony_ci    Some operations, like depth testing, operate only on specific aspects of
97e5c31af7Sopenharmony_ci    an image.
98e5c31af7Sopenharmony_ci
99e5c31af7Sopenharmony_ciAttachment (Render Pass)::
100e5c31af7Sopenharmony_ci    A zero-based integer index name used in render pass creation to refer to
101e5c31af7Sopenharmony_ci    a framebuffer attachment that is accessed by one or more subpasses.
102e5c31af7Sopenharmony_ci    The index also refers to an attachment description which includes
103e5c31af7Sopenharmony_ci    information about the properties of the image view that will later be
104e5c31af7Sopenharmony_ci    attached.
105e5c31af7Sopenharmony_ci
106e5c31af7Sopenharmony_ciAvailability Operation::
107e5c31af7Sopenharmony_ci    An operation that causes the values generated by specified memory write
108e5c31af7Sopenharmony_ci    accesses to become available for future access.
109e5c31af7Sopenharmony_ci
110e5c31af7Sopenharmony_ciAvailable::
111e5c31af7Sopenharmony_ci    A state of values written to memory that allows them to be made visible.
112e5c31af7Sopenharmony_ci
113e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
114e5c31af7Sopenharmony_ciAxis-aligned Bounding Box::
115e5c31af7Sopenharmony_ci    A box bounding a region in space defined by extents along each axis and
116e5c31af7Sopenharmony_ci    thus representing a box where each edge is aligned to one of the major
117e5c31af7Sopenharmony_ci    axes.
118e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
119e5c31af7Sopenharmony_ci
120e5c31af7Sopenharmony_ciBack-Facing::
121e5c31af7Sopenharmony_ci    See Facingness.
122e5c31af7Sopenharmony_ci
123e5c31af7Sopenharmony_ciBatch::
124e5c31af7Sopenharmony_ci    A single structure submitted to a queue as part of a
125e5c31af7Sopenharmony_ci    <<devsandqueues-submission, queue submission command>>, describing a set
126e5c31af7Sopenharmony_ci    of queue operations to execute.
127e5c31af7Sopenharmony_ci
128e5c31af7Sopenharmony_ciBackwards Compatibility::
129e5c31af7Sopenharmony_ci    A given version of the API is backwards compatible with an earlier
130e5c31af7Sopenharmony_ci    version if an application, relying only on valid behavior and
131e5c31af7Sopenharmony_ci    functionality defined by the earlier specification, is able to correctly
132e5c31af7Sopenharmony_ci    run against each version without any modification.
133e5c31af7Sopenharmony_ci    This assumes no active attempt by that application to not run when it
134e5c31af7Sopenharmony_ci    detects a different version.
135e5c31af7Sopenharmony_ci
136e5c31af7Sopenharmony_ciBinary Semaphore::
137e5c31af7Sopenharmony_ci    A semaphore with a boolean payload indicating whether the semaphore is
138e5c31af7Sopenharmony_ci    signaled or unsignaled.
139e5c31af7Sopenharmony_ci    Represented by a slink:VkSemaphore object
140e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
141e5c31af7Sopenharmony_ci    created with a semaphore type of ename:VK_SEMAPHORE_TYPE_BINARY
142e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
143e5c31af7Sopenharmony_ci    .
144e5c31af7Sopenharmony_ci
145e5c31af7Sopenharmony_ciBinding (Memory)::
146e5c31af7Sopenharmony_ci    An association established between a range of a resource object and a
147e5c31af7Sopenharmony_ci    range of a memory object.
148e5c31af7Sopenharmony_ci    These associations determine the memory locations affected by operations
149e5c31af7Sopenharmony_ci    performed on elements of a resource object.
150e5c31af7Sopenharmony_ci    Memory bindings are established using the flink:vkBindBufferMemory
151e5c31af7Sopenharmony_ci    command for non-sparse buffer objects, using the flink:vkBindImageMemory
152e5c31af7Sopenharmony_ci    command for non-sparse image objects, and using the
153e5c31af7Sopenharmony_ci    flink:vkQueueBindSparse command for sparse resources.
154e5c31af7Sopenharmony_ci
155e5c31af7Sopenharmony_ciBlend Constant::
156e5c31af7Sopenharmony_ci    Four floating point (RGBA) values used as an input to blending.
157e5c31af7Sopenharmony_ci
158e5c31af7Sopenharmony_ciBlending::
159e5c31af7Sopenharmony_ci    Arithmetic operations between a fragment color value and a value in a
160e5c31af7Sopenharmony_ci    color attachment that produce a final color value to be written to the
161e5c31af7Sopenharmony_ci    attachment.
162e5c31af7Sopenharmony_ci
163e5c31af7Sopenharmony_ciBuffer::
164e5c31af7Sopenharmony_ci    A resource that represents a linear array of data in device memory.
165e5c31af7Sopenharmony_ci    Represented by a slink:VkBuffer object.
166e5c31af7Sopenharmony_ci
167e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
168e5c31af7Sopenharmony_ciBuffer Device Address::
169e5c31af7Sopenharmony_ci    A 64-bit value used in a shader to access buffer memory through the
170e5c31af7Sopenharmony_ci    code:PhysicalStorageBuffer storage class.
171e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
172e5c31af7Sopenharmony_ci
173e5c31af7Sopenharmony_ciBuffer View::
174e5c31af7Sopenharmony_ci    An object that represents a range of a specific buffer, and state
175e5c31af7Sopenharmony_ci    controlling how the contents are interpreted.
176e5c31af7Sopenharmony_ci    Represented by a slink:VkBufferView object.
177e5c31af7Sopenharmony_ci
178e5c31af7Sopenharmony_ciBuilt-In Variable::
179e5c31af7Sopenharmony_ci    A variable decorated in a shader, where the decoration makes the
180e5c31af7Sopenharmony_ci    variable take values provided by the execution environment or values
181e5c31af7Sopenharmony_ci    that are generated by fixed-function pipeline stages.
182e5c31af7Sopenharmony_ci
183e5c31af7Sopenharmony_ciBuilt-In Interface Block::
184e5c31af7Sopenharmony_ci    A block defined in a shader containing only variables decorated with
185e5c31af7Sopenharmony_ci    built-in decorations, and is used to match against other shader stages.
186e5c31af7Sopenharmony_ci
187e5c31af7Sopenharmony_ciClip Coordinates::
188e5c31af7Sopenharmony_ci    The homogeneous coordinate space that vertex positions (code:Position
189e5c31af7Sopenharmony_ci    decoration) are written in by
190e5c31af7Sopenharmony_ci    <<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
191e5c31af7Sopenharmony_ci    stages>>.
192e5c31af7Sopenharmony_ci
193e5c31af7Sopenharmony_ciClip Distance::
194e5c31af7Sopenharmony_ci    A built-in output from
195e5c31af7Sopenharmony_ci    <<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
196e5c31af7Sopenharmony_ci    stages>> defining a clip half-space against which the primitive is
197e5c31af7Sopenharmony_ci    clipped.
198e5c31af7Sopenharmony_ci
199e5c31af7Sopenharmony_ciClip Volume::
200e5c31af7Sopenharmony_ci    The intersection of the view volume with all clip half-spaces.
201e5c31af7Sopenharmony_ci
202e5c31af7Sopenharmony_ciColor Attachment::
203e5c31af7Sopenharmony_ci    A subpass attachment point, or image view, that is the target of
204e5c31af7Sopenharmony_ci    fragment color outputs and blending.
205e5c31af7Sopenharmony_ci
206e5c31af7Sopenharmony_ciifdef::VK_AMD_shader_fragment_mask[]
207e5c31af7Sopenharmony_ciColor Fragment::
208e5c31af7Sopenharmony_ci    A unique color value within a pixel of a multisampled color image.
209e5c31af7Sopenharmony_ci    The _fragment mask_ will contain indices to the _color fragment_.
210e5c31af7Sopenharmony_ciendif::VK_AMD_shader_fragment_mask[]
211e5c31af7Sopenharmony_ci
212e5c31af7Sopenharmony_ciColor Renderable Format::
213e5c31af7Sopenharmony_ci    A elink:VkFormat where ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT is
214e5c31af7Sopenharmony_ci    set in one of the following, depending on the image's tiling:
215e5c31af7Sopenharmony_ci    * slink:VkFormatProperties::pname:linearTilingFeatures
216e5c31af7Sopenharmony_ci    * slink:VkFormatProperties::pname:optimalTilingFeatures
217e5c31af7Sopenharmony_ciifdef::VK_EXT_image_drm_format_modifier[]
218e5c31af7Sopenharmony_ci    * slink:VkDrmFormatModifierPropertiesEXT::pname:drmFormatModifierTilingFeatures
219e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[]
220e5c31af7Sopenharmony_ci
221e5c31af7Sopenharmony_ciCombined Image Sampler::
222e5c31af7Sopenharmony_ci    A descriptor type that includes both a sampled image and a sampler.
223e5c31af7Sopenharmony_ci
224e5c31af7Sopenharmony_ciCommand Buffer::
225e5c31af7Sopenharmony_ci    An object that records commands to be submitted to a queue.
226e5c31af7Sopenharmony_ci    Represented by a slink:VkCommandBuffer object.
227e5c31af7Sopenharmony_ci
228e5c31af7Sopenharmony_ciCommand Pool::
229e5c31af7Sopenharmony_ci    An object that command buffer memory is allocated from, and that owns
230e5c31af7Sopenharmony_ci    that memory.
231e5c31af7Sopenharmony_ci    Command pools aid multithreaded performance by enabling different
232e5c31af7Sopenharmony_ci    threads to use different allocators, without internal synchronization on
233e5c31af7Sopenharmony_ci    each use.
234e5c31af7Sopenharmony_ci    Represented by a slink:VkCommandPool object.
235e5c31af7Sopenharmony_ci
236e5c31af7Sopenharmony_ciCompatible Allocator::
237e5c31af7Sopenharmony_ci    When allocators are compatible, allocations from each allocator can: be
238e5c31af7Sopenharmony_ci    freed by the other allocator.
239e5c31af7Sopenharmony_ci
240e5c31af7Sopenharmony_ciCompatible Image Formats::
241e5c31af7Sopenharmony_ci    When formats are compatible, images created with one of the formats can:
242e5c31af7Sopenharmony_ci    have image views created from it using any of the compatible formats.
243e5c31af7Sopenharmony_ci    Also see _Size-Compatible Image Formats_.
244e5c31af7Sopenharmony_ci
245e5c31af7Sopenharmony_ciCompatible Queues::
246e5c31af7Sopenharmony_ci    Queues within a queue family.
247e5c31af7Sopenharmony_ci    Compatible queues have identical properties.
248e5c31af7Sopenharmony_ci
249e5c31af7Sopenharmony_ciComplete Mipmap Chain::
250e5c31af7Sopenharmony_ci    The entire set of miplevels that can be provided for an image, from the
251e5c31af7Sopenharmony_ci    largest application specified miplevel size down to the _minimum
252e5c31af7Sopenharmony_ci    miplevel size_.
253e5c31af7Sopenharmony_ci    See <<resources-image-miplevel-sizing, Image Miplevel Sizing>>.
254e5c31af7Sopenharmony_ci
255e5c31af7Sopenharmony_ciifdef::VK_KHR_deferred_host_operations[]
256e5c31af7Sopenharmony_ciCompleted Operation::
257e5c31af7Sopenharmony_ci    A deferred operation whose corresponding command has been executed to
258e5c31af7Sopenharmony_ci    completion.
259e5c31af7Sopenharmony_ci    See <<deferred-host-operations, Deferred Host Operations>>
260e5c31af7Sopenharmony_ciendif::VK_KHR_deferred_host_operations[]
261e5c31af7Sopenharmony_ci
262e5c31af7Sopenharmony_ciComponent (Format)::
263e5c31af7Sopenharmony_ci    A distinct part of a format.
264e5c31af7Sopenharmony_ci    Color components are represented with `R`, `G`, `B`, and `A`.
265e5c31af7Sopenharmony_ci    Depth and stencil components are represented with `D` and `S`.
266e5c31af7Sopenharmony_ci    Formats can: have multiple instances of the same component.
267e5c31af7Sopenharmony_ci    Some formats have other notations such as `E` or `X` which are not
268e5c31af7Sopenharmony_ci    considered a component of the format.
269e5c31af7Sopenharmony_ci
270e5c31af7Sopenharmony_ciCompressed Texel Block::
271e5c31af7Sopenharmony_ci    An element of an image having a block-compressed format, comprising a
272e5c31af7Sopenharmony_ci    rectangular block of texel values that are encoded as a single value in
273e5c31af7Sopenharmony_ci    memory.
274e5c31af7Sopenharmony_ci    Compressed texel blocks of a particular block-compressed format have a
275e5c31af7Sopenharmony_ci    corresponding width, height, and depth defining the dimensions of these
276e5c31af7Sopenharmony_ci    elements in units of texels, and a size in bytes of the encoding in
277e5c31af7Sopenharmony_ci    memory.
278e5c31af7Sopenharmony_ci
279e5c31af7Sopenharmony_ciConstant Integral Expressions::
280e5c31af7Sopenharmony_ci    A SPIR-V constant instruction whose type is code:OpTypeInt.
281e5c31af7Sopenharmony_ci    See _Constant Instruction_ in section 2.2.1 "`Instructions`" of the
282e5c31af7Sopenharmony_ci    <<spirv-spec,Khronos SPIR-V Specification>>.
283e5c31af7Sopenharmony_ci
284e5c31af7Sopenharmony_ciifdef::VK_NV_cooperative_matrix[]
285e5c31af7Sopenharmony_ciCooperative Matrix::
286e5c31af7Sopenharmony_ci    A SPIR-V type where the storage for and computations performed on the
287e5c31af7Sopenharmony_ci    matrix are spread across a set of invocations such as a subgroup.
288e5c31af7Sopenharmony_ciendif::VK_NV_cooperative_matrix[]
289e5c31af7Sopenharmony_ci
290e5c31af7Sopenharmony_ciifdef::VK_NV_corner_sampled_image[]
291e5c31af7Sopenharmony_ciCorner-Sampled Image::
292e5c31af7Sopenharmony_ci    A slink:VkImage where unnormalized texel coordinates are centered on
293e5c31af7Sopenharmony_ci    integer values instead of half-integer values.
294e5c31af7Sopenharmony_ci    Specified by setting the ename:VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV bit
295e5c31af7Sopenharmony_ci    on slink:VkImageCreateInfo::pname:flags at image creation.
296e5c31af7Sopenharmony_ciendif::VK_NV_corner_sampled_image[]
297e5c31af7Sopenharmony_ci
298e5c31af7Sopenharmony_ciCoverage Index::
299e5c31af7Sopenharmony_ci    The index of a sample in the coverage mask.
300e5c31af7Sopenharmony_ci
301e5c31af7Sopenharmony_ciCoverage Mask::
302e5c31af7Sopenharmony_ci    A bitfield associated with a fragment representing the samples that were
303e5c31af7Sopenharmony_ci    determined to be covered based on the result of rasterization, and then
304e5c31af7Sopenharmony_ci    subsequently modified by fragment operations or the fragment shader.
305e5c31af7Sopenharmony_ci
306e5c31af7Sopenharmony_ciCull Distance::
307e5c31af7Sopenharmony_ci    A built-in output from
308e5c31af7Sopenharmony_ci    <<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
309e5c31af7Sopenharmony_ci    stages>> defining a cull half-space where the primitive is rejected if
310e5c31af7Sopenharmony_ci    all vertices have a negative value for the same cull distance.
311e5c31af7Sopenharmony_ci
312e5c31af7Sopenharmony_ciCull Volume::
313e5c31af7Sopenharmony_ci    The intersection of the view volume with all cull half-spaces.
314e5c31af7Sopenharmony_ci
315e5c31af7Sopenharmony_ciDecoration (SPIR-V)::
316e5c31af7Sopenharmony_ci    Auxiliary information such as built-in variables, stream numbers,
317e5c31af7Sopenharmony_ci    invariance, interpolation type, relaxed precision, etc., added to
318e5c31af7Sopenharmony_ci    variables or structure-type members through decorations.
319e5c31af7Sopenharmony_ci
320e5c31af7Sopenharmony_ciifdef::VK_KHR_deferred_host_operations[]
321e5c31af7Sopenharmony_ciDeferrable Command::
322e5c31af7Sopenharmony_ci    A command which allows deferred execution of host-side work.
323e5c31af7Sopenharmony_ci    See <<deferred-host-operations,Deferred Host Operations>>.
324e5c31af7Sopenharmony_ci
325e5c31af7Sopenharmony_ciDeferrable Operation::
326e5c31af7Sopenharmony_ci    A single logical item of host-side work which can be deferred.
327e5c31af7Sopenharmony_ci    Represented by the slink:VkDeferredOperationKHR object.
328e5c31af7Sopenharmony_ci    See <<deferred-host-operations,Deferred Host Operations>>.
329e5c31af7Sopenharmony_ciendif::VK_KHR_deferred_host_operations[]
330e5c31af7Sopenharmony_ci
331e5c31af7Sopenharmony_ciDeprecated (feature)::
332e5c31af7Sopenharmony_ci    A feature is deprecated if it is no longer recommended as the correct or
333e5c31af7Sopenharmony_ci    best way to achieve its intended purpose.
334e5c31af7Sopenharmony_ci
335e5c31af7Sopenharmony_ciDepth/Stencil Attachment::
336e5c31af7Sopenharmony_ci    A subpass attachment point, or image view, that is the target of depth
337e5c31af7Sopenharmony_ci    and/or stencil test operations and writes.
338e5c31af7Sopenharmony_ci
339e5c31af7Sopenharmony_ciDepth/Stencil Format::
340e5c31af7Sopenharmony_ci    A elink:VkFormat that includes depth and/or stencil components.
341e5c31af7Sopenharmony_ci
342e5c31af7Sopenharmony_ciDepth/Stencil Image (or ImageView)::
343e5c31af7Sopenharmony_ci    A slink:VkImage (or slink:VkImageView) with a depth/stencil format.
344e5c31af7Sopenharmony_ci
345e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
346e5c31af7Sopenharmony_ciDepth/Stencil Resolve Attachment::
347e5c31af7Sopenharmony_ci    A subpass attachment point, or image view, that is the target of a
348e5c31af7Sopenharmony_ci    multisample resolve operation from the corresponding depth/stencil
349e5c31af7Sopenharmony_ci    attachment at the end of the subpass.
350e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
351e5c31af7Sopenharmony_ci
352e5c31af7Sopenharmony_ciDerivative Group::
353e5c31af7Sopenharmony_ci    A set of fragment
354e5c31af7Sopenharmony_ciifdef::VK_NV_compute_shader_derivatives[]
355e5c31af7Sopenharmony_ci    or compute
356e5c31af7Sopenharmony_ciendif::VK_NV_compute_shader_derivatives[]
357e5c31af7Sopenharmony_ci    shader invocations that cooperate to compute derivatives, including
358e5c31af7Sopenharmony_ci    implicit derivatives for sampled image operations.
359e5c31af7Sopenharmony_ci
360e5c31af7Sopenharmony_ciDescriptor::
361e5c31af7Sopenharmony_ci    Information about a resource or resource view written into a descriptor
362e5c31af7Sopenharmony_ci    set that is used to access the resource or view from a shader.
363e5c31af7Sopenharmony_ci
364e5c31af7Sopenharmony_ciDescriptor Binding::
365e5c31af7Sopenharmony_ci    An entry in a descriptor set layout corresponding to zero or more
366e5c31af7Sopenharmony_ci    descriptors of a single descriptor type in a set.
367e5c31af7Sopenharmony_ci    Defined by a slink:VkDescriptorSetLayoutBinding structure.
368e5c31af7Sopenharmony_ci
369e5c31af7Sopenharmony_ciDescriptor Pool::
370e5c31af7Sopenharmony_ci    An object that descriptor sets are allocated from, and that owns the
371e5c31af7Sopenharmony_ci    storage of those descriptor sets.
372e5c31af7Sopenharmony_ci    Descriptor pools aid multithreaded performance by enabling different
373e5c31af7Sopenharmony_ci    threads to use different allocators, without internal synchronization on
374e5c31af7Sopenharmony_ci    each use.
375e5c31af7Sopenharmony_ci    Represented by a slink:VkDescriptorPool object.
376e5c31af7Sopenharmony_ci
377e5c31af7Sopenharmony_ciDescriptor Set::
378e5c31af7Sopenharmony_ci    An object that resource descriptors are written into via the API, and
379e5c31af7Sopenharmony_ci    that can: be bound to a command buffer such that the descriptors
380e5c31af7Sopenharmony_ci    contained within it can: be accessed from shaders.
381e5c31af7Sopenharmony_ci    Represented by a slink:VkDescriptorSet object.
382e5c31af7Sopenharmony_ci
383e5c31af7Sopenharmony_ciDescriptor Set Layout::
384e5c31af7Sopenharmony_ci    An object defining the set of resources (types and counts) and their
385e5c31af7Sopenharmony_ci    relative arrangement (in the binding namespace) within a descriptor set.
386e5c31af7Sopenharmony_ci    Used when allocating descriptor sets and when creating pipeline layouts.
387e5c31af7Sopenharmony_ci    Represented by a slink:VkDescriptorSetLayout object.
388e5c31af7Sopenharmony_ci
389e5c31af7Sopenharmony_ciDevice::
390e5c31af7Sopenharmony_ci    The processor(s) and execution environment that perform tasks requested
391e5c31af7Sopenharmony_ci    by the application via the Vulkan API.
392e5c31af7Sopenharmony_ci
393e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_device_group_creation[]
394e5c31af7Sopenharmony_ciDevice Group::
395e5c31af7Sopenharmony_ci    A set of physical devices that support accessing each other's memory and
396e5c31af7Sopenharmony_ci    recording a single command buffer that can: be executed on all the
397e5c31af7Sopenharmony_ci    physical devices.
398e5c31af7Sopenharmony_ci
399e5c31af7Sopenharmony_ciDevice Index::
400e5c31af7Sopenharmony_ci    A zero-based integer that identifies one physical device from a logical
401e5c31af7Sopenharmony_ci    device.
402e5c31af7Sopenharmony_ci    A device index is valid if it is less than the number of physical
403e5c31af7Sopenharmony_ci    devices in the logical device.
404e5c31af7Sopenharmony_ci
405e5c31af7Sopenharmony_ciDevice Mask::
406e5c31af7Sopenharmony_ci    A bitmask where each bit represents one device index.
407e5c31af7Sopenharmony_ci    A device mask value is valid if every bit that is set in the mask is at
408e5c31af7Sopenharmony_ci    a bit position that is less than the number of physical devices in the
409e5c31af7Sopenharmony_ci    logical device.
410e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_device_group_creation[]
411e5c31af7Sopenharmony_ci
412e5c31af7Sopenharmony_ciDevice Memory::
413e5c31af7Sopenharmony_ci    Memory accessible to the device.
414e5c31af7Sopenharmony_ci    Represented by a slink:VkDeviceMemory object.
415e5c31af7Sopenharmony_ci
416e5c31af7Sopenharmony_ciDevice-Level Command::
417e5c31af7Sopenharmony_ci    Any command that is dispatched from a logical device, or from a child
418e5c31af7Sopenharmony_ci    object of a logical device.
419e5c31af7Sopenharmony_ci
420e5c31af7Sopenharmony_ciDevice-Level Functionality::
421e5c31af7Sopenharmony_ci    All device-level commands and objects, and their structures, enumerated
422e5c31af7Sopenharmony_ci    types, and enumerants.
423e5c31af7Sopenharmony_ci
424e5c31af7Sopenharmony_ciDevice-Level Object::
425e5c31af7Sopenharmony_ci    Logical device objects and their child objects.
426e5c31af7Sopenharmony_ci    For example, slink:VkDevice, slink:VkQueue, and slink:VkCommandBuffer
427e5c31af7Sopenharmony_ci    objects are device-level objects.
428e5c31af7Sopenharmony_ci
429e5c31af7Sopenharmony_ciDevice-Local Memory::
430e5c31af7Sopenharmony_ci    Memory that is connected to the device, and may: be more performant for
431e5c31af7Sopenharmony_ci    device access than host-local memory.
432e5c31af7Sopenharmony_ci
433e5c31af7Sopenharmony_ciDirect Drawing Commands::
434e5c31af7Sopenharmony_ci    _Drawing commands_ that take all their parameters as direct arguments to
435e5c31af7Sopenharmony_ci    the command (and not sourced via structures in buffer memory as the
436e5c31af7Sopenharmony_ci    _indirect drawing commands_).
437e5c31af7Sopenharmony_ci    Includes
438e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
439e5c31af7Sopenharmony_ci    flink:vkCmdDrawMultiIndexedEXT, flink:vkCmdDrawMultiEXT,
440e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
441e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
442e5c31af7Sopenharmony_ci    flink:vkCmdDrawMeshTasksNV,
443e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
444e5c31af7Sopenharmony_ci    flink:vkCmdDraw, and flink:vkCmdDrawIndexed.
445e5c31af7Sopenharmony_ci
446e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
447e5c31af7Sopenharmony_ciDisjoint::
448e5c31af7Sopenharmony_ci    _Disjoint planes_ are _image planes_ to which memory is bound
449e5c31af7Sopenharmony_ci    independently. +
450e5c31af7Sopenharmony_ci    A _disjoint image_ consists of multiple _disjoint planes_, and is
451e5c31af7Sopenharmony_ci    created with the ename:VK_IMAGE_CREATE_DISJOINT_BIT bit set.
452e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
453e5c31af7Sopenharmony_ci
454e5c31af7Sopenharmony_ciDispatchable Command::
455e5c31af7Sopenharmony_ci    A non-global command.
456e5c31af7Sopenharmony_ci    The first argument to each dispatchable command is a dispatchable handle
457e5c31af7Sopenharmony_ci    type.
458e5c31af7Sopenharmony_ci
459e5c31af7Sopenharmony_ciDispatchable Handle::
460e5c31af7Sopenharmony_ci    A handle of a pointer handle type which may: be used by layers as part
461e5c31af7Sopenharmony_ci    of intercepting API commands.
462e5c31af7Sopenharmony_ci
463e5c31af7Sopenharmony_ciDispatching Commands::
464e5c31af7Sopenharmony_ci    Commands that provoke work using a compute pipeline.
465e5c31af7Sopenharmony_ci    Includes flink:vkCmdDispatch and flink:vkCmdDispatchIndirect.
466e5c31af7Sopenharmony_ci
467e5c31af7Sopenharmony_ciDrawing Commands::
468e5c31af7Sopenharmony_ci    Commands that provoke work using a graphics pipeline.
469e5c31af7Sopenharmony_ci    Includes flink:vkCmdDraw, flink:vkCmdDrawIndexed,
470e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
471e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCount, flink:vkCmdDrawIndexedIndirectCount,
472e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
473e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[]
474e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCountKHR, flink:vkCmdDrawIndexedIndirectCountKHR,
475e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[]
476e5c31af7Sopenharmony_ciifdef::VK_AMD_draw_indirect_count[]
477e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCountAMD, flink:vkCmdDrawIndexedIndirectCountAMD,
478e5c31af7Sopenharmony_ciendif::VK_AMD_draw_indirect_count[]
479e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
480e5c31af7Sopenharmony_ci    flink:vkCmdDrawMultiIndexedEXT, flink:vkCmdDrawMultiEXT,
481e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
482e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
483e5c31af7Sopenharmony_ci    flink:vkCmdDrawMeshTasksNV, flink:vkCmdDrawMeshTasksIndirectNV,
484e5c31af7Sopenharmony_ci    flink:vkCmdDrawMeshTasksIndirectCountNV,
485e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
486e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirect, and flink:vkCmdDrawIndexedIndirect.
487e5c31af7Sopenharmony_ci
488e5c31af7Sopenharmony_ciDuration (Command)::
489e5c31af7Sopenharmony_ci    The _duration_ of a Vulkan command refers to the interval between
490e5c31af7Sopenharmony_ci    calling the command and its return to the caller.
491e5c31af7Sopenharmony_ci
492e5c31af7Sopenharmony_ciDynamic Storage Buffer::
493e5c31af7Sopenharmony_ci    A storage buffer whose offset is specified each time the storage buffer
494e5c31af7Sopenharmony_ci    is bound to a command buffer via a descriptor set.
495e5c31af7Sopenharmony_ci
496e5c31af7Sopenharmony_ciDynamic Uniform Buffer::
497e5c31af7Sopenharmony_ci    A uniform buffer whose offset is specified each time the uniform buffer
498e5c31af7Sopenharmony_ci    is bound to a command buffer via a descriptor set.
499e5c31af7Sopenharmony_ci
500e5c31af7Sopenharmony_ciDynamically Uniform::
501e5c31af7Sopenharmony_ci    See _Dynamically Uniform_ in section 2.2 "`Terms`" of the
502e5c31af7Sopenharmony_ci    <<spirv-spec,Khronos SPIR-V Specification>>.
503e5c31af7Sopenharmony_ci
504e5c31af7Sopenharmony_ciElement::
505e5c31af7Sopenharmony_ci    Arrays are composed of multiple elements, where each element exists at a
506e5c31af7Sopenharmony_ci    unique index within that array.
507e5c31af7Sopenharmony_ci    Used primarily to describe data passed to or returned from the Vulkan
508e5c31af7Sopenharmony_ci    API.
509e5c31af7Sopenharmony_ci
510e5c31af7Sopenharmony_ciExplicitly-Enabled Layer::
511e5c31af7Sopenharmony_ci    A layer enabled by the application by adding it to the enabled layer
512e5c31af7Sopenharmony_ci    list in flink:vkCreateInstance or flink:vkCreateDevice.
513e5c31af7Sopenharmony_ci
514e5c31af7Sopenharmony_ciEvent::
515e5c31af7Sopenharmony_ci    A synchronization primitive that is signaled when execution of previous
516e5c31af7Sopenharmony_ci    commands completes through a specified set of pipeline stages.
517e5c31af7Sopenharmony_ci    Events can be waited on by the device and polled by the host.
518e5c31af7Sopenharmony_ci    Represented by a slink:VkEvent object.
519e5c31af7Sopenharmony_ci
520e5c31af7Sopenharmony_ciExecutable State (Command Buffer)::
521e5c31af7Sopenharmony_ci    A command buffer that has ended recording commands and can: be executed.
522e5c31af7Sopenharmony_ci    See also Initial State and Recording State.
523e5c31af7Sopenharmony_ci
524e5c31af7Sopenharmony_ciExecution Dependency::
525e5c31af7Sopenharmony_ci    A dependency that guarantees that certain pipeline stages`' work for a
526e5c31af7Sopenharmony_ci    first set of commands has completed execution before certain pipeline
527e5c31af7Sopenharmony_ci    stages`' work for a second set of commands begins execution.
528e5c31af7Sopenharmony_ci    This is accomplished via pipeline barriers, subpass dependencies,
529e5c31af7Sopenharmony_ci    events, or implicit ordering operations.
530e5c31af7Sopenharmony_ci
531e5c31af7Sopenharmony_ciExecution Dependency Chain::
532e5c31af7Sopenharmony_ci    A sequence of execution dependencies that transitively act as a single
533e5c31af7Sopenharmony_ci    execution dependency.
534e5c31af7Sopenharmony_ci
535e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
536e5c31af7Sopenharmony_ciExplicit chroma reconstruction::
537e5c31af7Sopenharmony_ci    An implementation of sampler {YCbCr} conversion which reconstructs
538e5c31af7Sopenharmony_ci    reduced-resolution chroma samples to luma resolution and then separately
539e5c31af7Sopenharmony_ci    performs texture sample interpolation.
540e5c31af7Sopenharmony_ci    This is distinct from an implicit implementation, which incorporates
541e5c31af7Sopenharmony_ci    chroma sample reconstruction into texture sample interpolation.
542e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
543e5c31af7Sopenharmony_ci
544e5c31af7Sopenharmony_ciExtension Scope::
545e5c31af7Sopenharmony_ci    The set of objects and commands that can: be affected by an extension.
546e5c31af7Sopenharmony_ci    Extensions are either device scope or instance scope.
547e5c31af7Sopenharmony_ci
548e5c31af7Sopenharmony_ciExtending Structure::
549e5c31af7Sopenharmony_ci    A structure type which may appear in the _pname:pNext chain_ of another
550e5c31af7Sopenharmony_ci    structure, extending the functionality of the other structure.
551e5c31af7Sopenharmony_ci    Extending structures may be defined by either core API versions or
552e5c31af7Sopenharmony_ci    extensions.
553e5c31af7Sopenharmony_ci
554e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_external_memory_capabilities,VK_KHR_external_semaphore_capabilities,VK_KHR_external_fence_capabilities[]
555e5c31af7Sopenharmony_ciExternal Handle::
556e5c31af7Sopenharmony_ci    A resource handle which has meaning outside of a specific Vulkan device
557e5c31af7Sopenharmony_ci    or its parent instance.
558e5c31af7Sopenharmony_ci    External handles may: be used to share resources between multiple Vulkan
559e5c31af7Sopenharmony_ci    devices in different instances, or between Vulkan and other APIs.
560e5c31af7Sopenharmony_ci    Some external handle types correspond to platform-defined handles, in
561e5c31af7Sopenharmony_ci    which case the resource may: outlive any particular Vulkan device or
562e5c31af7Sopenharmony_ci    instance and may: be transferred between processes, or otherwise
563e5c31af7Sopenharmony_ci    manipulated via functionality defined by the platform for that handle
564e5c31af7Sopenharmony_ci    type.
565e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_external_memory_capabilities,VK_KHR_external_semaphore_capabilities,VK_KHR_external_fence_capabilities[]
566e5c31af7Sopenharmony_ci
567e5c31af7Sopenharmony_ciExternal synchronization::
568e5c31af7Sopenharmony_ci    A type of synchronization required: of the application, where parameters
569e5c31af7Sopenharmony_ci    defined to be externally synchronized must: not be used simultaneously
570e5c31af7Sopenharmony_ci    in multiple threads.
571e5c31af7Sopenharmony_ci
572e5c31af7Sopenharmony_ciFacingness (Polygon)::
573e5c31af7Sopenharmony_ci    A classification of a polygon as either front-facing or back-facing,
574e5c31af7Sopenharmony_ci    depending on the orientation (winding order) of its vertices.
575e5c31af7Sopenharmony_ci
576e5c31af7Sopenharmony_ciFacingness (Fragment)::
577e5c31af7Sopenharmony_ci    A fragment is either front-facing or back-facing, depending on the
578e5c31af7Sopenharmony_ci    primitive it was generated from.
579e5c31af7Sopenharmony_ci    If the primitive was a polygon (regardless of polygon mode), the
580e5c31af7Sopenharmony_ci    fragment inherits the facingness of the polygon.
581e5c31af7Sopenharmony_ci    All other fragments are front-facing.
582e5c31af7Sopenharmony_ci
583e5c31af7Sopenharmony_ciFence::
584e5c31af7Sopenharmony_ci    A synchronization primitive that is signaled when a set of batches or
585e5c31af7Sopenharmony_ci    sparse binding operations complete execution on a queue.
586e5c31af7Sopenharmony_ci    Fences can: be waited on by the host.
587e5c31af7Sopenharmony_ci    Represented by a slink:VkFence object.
588e5c31af7Sopenharmony_ci
589e5c31af7Sopenharmony_ciFlat Shading::
590e5c31af7Sopenharmony_ci    A property of a vertex attribute that causes the value from a single
591e5c31af7Sopenharmony_ci    vertex (the provoking vertex) to be used for all vertices in a
592e5c31af7Sopenharmony_ci    primitive, and for interpolation of that attribute to return that single
593e5c31af7Sopenharmony_ci    value unaltered.
594e5c31af7Sopenharmony_ci
595e5c31af7Sopenharmony_ciFormat Features::
596e5c31af7Sopenharmony_ci    A set of features from elink:VkFormatFeatureFlagBits that a
597e5c31af7Sopenharmony_ci    elink:VkFormat is capable of using for various commands.
598e5c31af7Sopenharmony_ci    The list is determined by factors such as elink:VkImageTiling.
599e5c31af7Sopenharmony_ci
600e5c31af7Sopenharmony_ciFragment::
601e5c31af7Sopenharmony_ci    A rectangular framebuffer region with associated data produced by
602e5c31af7Sopenharmony_ci    <<primsrast,rasterization>> and processed by <<fragops,fragment
603e5c31af7Sopenharmony_ci    operations>> including the fragment shader.
604e5c31af7Sopenharmony_ci
605e5c31af7Sopenharmony_ci[[glossary-fragment-area]]
606e5c31af7Sopenharmony_ciFragment Area::
607e5c31af7Sopenharmony_ci    The width and height, in pixels, of a fragment.
608e5c31af7Sopenharmony_ci
609e5c31af7Sopenharmony_ciifdef::VK_EXT_fragment_density_map[]
610e5c31af7Sopenharmony_ci[[glossary-fragment-density]]
611e5c31af7Sopenharmony_ciFragment Density::
612e5c31af7Sopenharmony_ci    The ratio of fragments per framebuffer area in the x and y direction.
613e5c31af7Sopenharmony_ci
614e5c31af7Sopenharmony_ci[[glossary-fragment-density-texel-size]]
615e5c31af7Sopenharmony_ciFragment Density Texel Size::
616e5c31af7Sopenharmony_ci    The [eq]#(w,h)# framebuffer region in pixels that each texel in a
617e5c31af7Sopenharmony_ci    fragment density map applies to.
618e5c31af7Sopenharmony_ciendif::VK_EXT_fragment_density_map[]
619e5c31af7Sopenharmony_ci
620e5c31af7Sopenharmony_ciFragment Input Attachment Interface::
621e5c31af7Sopenharmony_ci    Variables with code:UniformConstant storage class and a decoration of
622e5c31af7Sopenharmony_ci    code:InputAttachmentIndex that are statically used by a fragment
623e5c31af7Sopenharmony_ci    shader's entry point, which receive values from input attachments.
624e5c31af7Sopenharmony_ci
625e5c31af7Sopenharmony_ciifdef::VK_AMD_shader_fragment_mask[]
626e5c31af7Sopenharmony_ciFragment Mask::
627e5c31af7Sopenharmony_ci    A lookup table that associates color samples with color fragment values.
628e5c31af7Sopenharmony_ciendif::VK_AMD_shader_fragment_mask[]
629e5c31af7Sopenharmony_ci
630e5c31af7Sopenharmony_ciFragment Output Interface::
631e5c31af7Sopenharmony_ci    A fragment shader entry point's variables with code:Output storage
632e5c31af7Sopenharmony_ci    class, which output to color and/or depth/stencil attachments.
633e5c31af7Sopenharmony_ci
634e5c31af7Sopenharmony_ciFramebuffer::
635e5c31af7Sopenharmony_ci    A collection of image views and a set of dimensions that, in conjunction
636e5c31af7Sopenharmony_ci    with a render pass, define the inputs and outputs used by drawing
637e5c31af7Sopenharmony_ci    commands.
638e5c31af7Sopenharmony_ci    Represented by a slink:VkFramebuffer object.
639e5c31af7Sopenharmony_ci
640e5c31af7Sopenharmony_ciFramebuffer Attachment::
641e5c31af7Sopenharmony_ci    One of the image views used in a framebuffer.
642e5c31af7Sopenharmony_ci
643e5c31af7Sopenharmony_ciFramebuffer Coordinates::
644e5c31af7Sopenharmony_ci    A coordinate system in which adjacent pixels`' coordinates differ by 1
645e5c31af7Sopenharmony_ci    in x and/or y, with [eq]#(0,0)# in the upper left corner and pixel
646e5c31af7Sopenharmony_ci    centers at half-integers.
647e5c31af7Sopenharmony_ci
648e5c31af7Sopenharmony_ciFramebuffer-Space::
649e5c31af7Sopenharmony_ci    Operating with respect to framebuffer coordinates.
650e5c31af7Sopenharmony_ci
651e5c31af7Sopenharmony_ciFramebuffer-Local::
652e5c31af7Sopenharmony_ci    A framebuffer-local dependency guarantees that only for a single
653e5c31af7Sopenharmony_ci    framebuffer region, the first set of operations happens-before the
654e5c31af7Sopenharmony_ci    second set of operations.
655e5c31af7Sopenharmony_ci
656e5c31af7Sopenharmony_ciFramebuffer-Global::
657e5c31af7Sopenharmony_ci    A framebuffer-global dependency guarantees that for all framebuffer
658e5c31af7Sopenharmony_ci    regions, the first set of operations happens-before the second set of
659e5c31af7Sopenharmony_ci    operations.
660e5c31af7Sopenharmony_ci
661e5c31af7Sopenharmony_ciFramebuffer Region::
662e5c31af7Sopenharmony_ci    A framebuffer region is a set of sample (x, y, layer, sample)
663e5c31af7Sopenharmony_ci    coordinates that is a subset of the entire framebuffer.
664e5c31af7Sopenharmony_ci
665e5c31af7Sopenharmony_ciFront-Facing::
666e5c31af7Sopenharmony_ci    See Facingness.
667e5c31af7Sopenharmony_ci
668e5c31af7Sopenharmony_ciFull Compatibility::
669e5c31af7Sopenharmony_ci    A given version of the API is fully compatible with another version if
670e5c31af7Sopenharmony_ci    an application, relying only on valid behavior and functionality defined
671e5c31af7Sopenharmony_ci    by either of those specifications, is able to correctly run against each
672e5c31af7Sopenharmony_ci    version without any modification.
673e5c31af7Sopenharmony_ci    This assumes no active attempt by that application to not run when it
674e5c31af7Sopenharmony_ci    detects a different version.
675e5c31af7Sopenharmony_ci
676e5c31af7Sopenharmony_ciGlobal Command::
677e5c31af7Sopenharmony_ci    A Vulkan command for which the first argument is not a dispatchable
678e5c31af7Sopenharmony_ci    handle type.
679e5c31af7Sopenharmony_ci
680e5c31af7Sopenharmony_ciGlobal Workgroup::
681e5c31af7Sopenharmony_ci    A collection of local workgroups dispatched by a single dispatching
682e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[or single mesh task drawing]
683e5c31af7Sopenharmony_ci    command.
684e5c31af7Sopenharmony_ci
685e5c31af7Sopenharmony_ciHandle::
686e5c31af7Sopenharmony_ci    An opaque integer or pointer value used to refer to a Vulkan object.
687e5c31af7Sopenharmony_ci    Each object type has a unique handle type.
688e5c31af7Sopenharmony_ci
689e5c31af7Sopenharmony_ciHappen-after, happens-after::
690e5c31af7Sopenharmony_ci    A transitive, irreflexive and antisymmetric ordering relation between
691e5c31af7Sopenharmony_ci    operations.
692e5c31af7Sopenharmony_ci    An execution dependency with a source of *A* and a destination of *B*
693e5c31af7Sopenharmony_ci    enforces that *B* happens-after *A*.
694e5c31af7Sopenharmony_ci    The inverse relation of happens-before.
695e5c31af7Sopenharmony_ci
696e5c31af7Sopenharmony_ciHappen-before, happens-before::
697e5c31af7Sopenharmony_ci    A transitive, irreflexive and antisymmetric ordering relation between
698e5c31af7Sopenharmony_ci    operations.
699e5c31af7Sopenharmony_ci    An execution dependency with a source of *A* and a destination of *B*
700e5c31af7Sopenharmony_ci    enforces that *A* happens-before *B*.
701e5c31af7Sopenharmony_ci    The inverse relation of happens-after.
702e5c31af7Sopenharmony_ci
703e5c31af7Sopenharmony_ciHelper Invocation::
704e5c31af7Sopenharmony_ci    A fragment shader invocation that is created solely for the purposes of
705e5c31af7Sopenharmony_ci    evaluating derivatives for use in non-helper fragment shader
706e5c31af7Sopenharmony_ci    invocations, and which does not have side effects.
707e5c31af7Sopenharmony_ci
708e5c31af7Sopenharmony_ciHost::
709e5c31af7Sopenharmony_ci    The processor(s) and execution environment that the application runs on,
710e5c31af7Sopenharmony_ci    and that the Vulkan API is exposed on.
711e5c31af7Sopenharmony_ci
712e5c31af7Sopenharmony_ciHost Mapped Device Memory::
713e5c31af7Sopenharmony_ci    Device memory that is mapped for host access using flink:vkMapMemory.
714e5c31af7Sopenharmony_ci
715e5c31af7Sopenharmony_ciifdef::VK_EXT_external_memory_host[]
716e5c31af7Sopenharmony_ciHost Mapped Foreign Memory::
717e5c31af7Sopenharmony_ci    Memory owned by a foreign device that is mapped for host access.
718e5c31af7Sopenharmony_ciendif::VK_EXT_external_memory_host[]
719e5c31af7Sopenharmony_ci
720e5c31af7Sopenharmony_ciHost Memory::
721e5c31af7Sopenharmony_ci    Memory not accessible to the device, used to store implementation data
722e5c31af7Sopenharmony_ci    structures.
723e5c31af7Sopenharmony_ci
724e5c31af7Sopenharmony_ciHost-Accessible Subresource::
725e5c31af7Sopenharmony_ci    A buffer, or a linear image subresource in either the
726e5c31af7Sopenharmony_ci    ename:VK_IMAGE_LAYOUT_PREINITIALIZED or ename:VK_IMAGE_LAYOUT_GENERAL
727e5c31af7Sopenharmony_ci    layout.
728e5c31af7Sopenharmony_ci    Host-accessible subresources have a well-defined addressing scheme which
729e5c31af7Sopenharmony_ci    can be used by the host.
730e5c31af7Sopenharmony_ci
731e5c31af7Sopenharmony_ciHost-Local Memory::
732e5c31af7Sopenharmony_ci    Memory that is not local to the device, and may: be less performant for
733e5c31af7Sopenharmony_ci    device access than device-local memory.
734e5c31af7Sopenharmony_ci
735e5c31af7Sopenharmony_ciHost-Visible Memory::
736e5c31af7Sopenharmony_ci    Device memory that can: be mapped on the host and can: be read and
737e5c31af7Sopenharmony_ci    written by the host.
738e5c31af7Sopenharmony_ci
739e5c31af7Sopenharmony_ciIdentically Defined Objects::
740e5c31af7Sopenharmony_ci    Objects of the same type where all arguments to their creation or
741e5c31af7Sopenharmony_ci    allocation functions, with the exception of pname:pAllocator, are +
742e5c31af7Sopenharmony_ci    . Vulkan handles which refer to the same object or
743e5c31af7Sopenharmony_ci    . identical scalar or enumeration values or
744e5c31af7Sopenharmony_ci    . Host pointers which point to an array of values or structures which
745e5c31af7Sopenharmony_ci      also satisfy these three constraints.
746e5c31af7Sopenharmony_ci
747e5c31af7Sopenharmony_ciImage::
748e5c31af7Sopenharmony_ci    A resource that represents a multi-dimensional formatted interpretation
749e5c31af7Sopenharmony_ci    of device memory.
750e5c31af7Sopenharmony_ci    Represented by a slink:VkImage object.
751e5c31af7Sopenharmony_ci
752e5c31af7Sopenharmony_ciImage Subresource::
753e5c31af7Sopenharmony_ci    A specific mipmap level and layer of an image.
754e5c31af7Sopenharmony_ci
755e5c31af7Sopenharmony_ciImage Subresource Range::
756e5c31af7Sopenharmony_ci    A set of image subresources that are contiguous mipmap levels and
757e5c31af7Sopenharmony_ci    layers.
758e5c31af7Sopenharmony_ci
759e5c31af7Sopenharmony_ciImage View::
760e5c31af7Sopenharmony_ci    An object that represents an image subresource range of a specific
761e5c31af7Sopenharmony_ci    image, and state controlling how the contents are interpreted.
762e5c31af7Sopenharmony_ci    Represented by a slink:VkImageView object.
763e5c31af7Sopenharmony_ci
764e5c31af7Sopenharmony_ciImmutable Sampler::
765e5c31af7Sopenharmony_ci    A sampler descriptor provided at descriptor set layout creation time,
766e5c31af7Sopenharmony_ci    and that is used for that binding in all descriptor sets allocated from
767e5c31af7Sopenharmony_ci    the layout, and cannot be changed.
768e5c31af7Sopenharmony_ci
769e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
770e5c31af7Sopenharmony_ciImplicit chroma reconstruction::
771e5c31af7Sopenharmony_ci    An implementation of sampler {YCbCr} conversion which reconstructs the
772e5c31af7Sopenharmony_ci    reduced-resolution chroma samples directly at the sample point, as part
773e5c31af7Sopenharmony_ci    of the normal texture sampling operation.
774e5c31af7Sopenharmony_ci    This is distinct from an _explicit chroma reconstruction_
775e5c31af7Sopenharmony_ci    implementation, which reconstructs the reduced-resolution chroma samples
776e5c31af7Sopenharmony_ci    to the resolution of the luma samples, then filters the result as part
777e5c31af7Sopenharmony_ci    of texture sample interpolation.
778e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
779e5c31af7Sopenharmony_ci
780e5c31af7Sopenharmony_ciImplicitly-Enabled Layer::
781e5c31af7Sopenharmony_ci    A layer enabled by a loader-defined mechanism outside the Vulkan API,
782e5c31af7Sopenharmony_ci    rather than explicitly by the application during instance or device
783e5c31af7Sopenharmony_ci    creation.
784e5c31af7Sopenharmony_ci
785e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
786e5c31af7Sopenharmony_ciInactive Object (Ray Tracing)::
787e5c31af7Sopenharmony_ci    A primitive or instance in a ray tracing acceleration structure which
788e5c31af7Sopenharmony_ci    has a corresponding ID, but which will never report an intersection with
789e5c31af7Sopenharmony_ci    any ray.
790e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing,VK_KHR_acceleration_structure[]
791e5c31af7Sopenharmony_ci
792e5c31af7Sopenharmony_ciIndex Buffer::
793e5c31af7Sopenharmony_ci    A buffer bound via flink:vkCmdBindIndexBuffer which is the source of
794e5c31af7Sopenharmony_ci    index values used to fetch vertex attributes for a
795e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndexed or flink:vkCmdDrawIndexedIndirect command.
796e5c31af7Sopenharmony_ci
797e5c31af7Sopenharmony_ciIndexed Drawing Commands::
798e5c31af7Sopenharmony_ci    _Drawing commands_ which use an _index buffer_ as the source of index
799e5c31af7Sopenharmony_ci    values used to fetch vertex attributes for a drawing command.
800e5c31af7Sopenharmony_ci    Includes flink:vkCmdDrawIndexed,
801e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
802e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndexedIndirectCount,
803e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
804e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[]
805e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndexedIndirectCountKHR,
806e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[]
807e5c31af7Sopenharmony_ciifdef::VK_AMD_draw_indirect_count[]
808e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndexedIndirectCountAMD,
809e5c31af7Sopenharmony_ciendif::VK_AMD_draw_indirect_count[]
810e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
811e5c31af7Sopenharmony_ci    flink:vkCmdDrawMultiIndexedEXT,
812e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
813e5c31af7Sopenharmony_ci    and flink:vkCmdDrawIndexedIndirect.
814e5c31af7Sopenharmony_ci
815e5c31af7Sopenharmony_ciIndirect Commands::
816e5c31af7Sopenharmony_ci    Drawing or dispatching commands that source some of their parameters
817e5c31af7Sopenharmony_ci    from structures in buffer memory.
818e5c31af7Sopenharmony_ci    Includes flink:vkCmdDrawIndirect, flink:vkCmdDrawIndexedIndirect,
819e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
820e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCount, flink:vkCmdDrawIndexedIndirectCount,
821e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
822e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[]
823e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCountKHR, flink:vkCmdDrawIndexedIndirectCountKHR,
824e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[]
825e5c31af7Sopenharmony_ciifdef::VK_AMD_draw_indirect_count[]
826e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCountAMD, flink:vkCmdDrawIndexedIndirectCountAMD,
827e5c31af7Sopenharmony_ciendif::VK_AMD_draw_indirect_count[]
828e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
829e5c31af7Sopenharmony_ci    flink:vkCmdDrawMeshTasksIndirectNV,
830e5c31af7Sopenharmony_ci    flink:vkCmdDrawMeshTasksIndirectCountNV,
831e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
832e5c31af7Sopenharmony_ci    and flink:vkCmdDispatchIndirect.
833e5c31af7Sopenharmony_ci
834e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands[]
835e5c31af7Sopenharmony_ciIndirect Commands Layout::
836e5c31af7Sopenharmony_ci    A definition of a sequence of commands, that are generated on the device
837e5c31af7Sopenharmony_ci    via flink:vkCmdPreprocessGeneratedCommandsNV and
838e5c31af7Sopenharmony_ci    flink:vkCmdExecuteGeneratedCommandsNV.
839e5c31af7Sopenharmony_ci    Each sequence is comprised of multiple
840e5c31af7Sopenharmony_ci    elink:VkIndirectCommandsTokenTypeNV, which represent a subset of
841e5c31af7Sopenharmony_ci    traditional command buffer commands.
842e5c31af7Sopenharmony_ci    Represented as slink:VkIndirectCommandsLayoutNV.
843e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands[]
844e5c31af7Sopenharmony_ci
845e5c31af7Sopenharmony_ciIndirect Drawing Commands::
846e5c31af7Sopenharmony_ci    _Drawing commands_ that source some of their parameters from structures
847e5c31af7Sopenharmony_ci    in buffer memory.
848e5c31af7Sopenharmony_ci    Includes flink:vkCmdDrawIndirect,
849e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
850e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCount, flink:vkCmdDrawIndexedIndirectCount,
851e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
852e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[]
853e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCountKHR, flink:vkCmdDrawIndexedIndirectCountKHR,
854e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[]
855e5c31af7Sopenharmony_ciifdef::VK_AMD_draw_indirect_count[]
856e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCountAMD, flink:vkCmdDrawIndexedIndirectCountAMD,
857e5c31af7Sopenharmony_ciendif::VK_AMD_draw_indirect_count[]
858e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
859e5c31af7Sopenharmony_ci    flink:vkCmdDrawMeshTasksIndirectNV,
860e5c31af7Sopenharmony_ci    flink:vkCmdDrawMeshTasksIndirectCountNV,
861e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
862e5c31af7Sopenharmony_ci    and flink:vkCmdDrawIndexedIndirect.
863e5c31af7Sopenharmony_ci
864e5c31af7Sopenharmony_ciInitial State (Command Buffer)::
865e5c31af7Sopenharmony_ci    A command buffer that has not begun recording commands.
866e5c31af7Sopenharmony_ci    See also Recording State and Executable State.
867e5c31af7Sopenharmony_ci
868e5c31af7Sopenharmony_ciifdef::VK_EXT_inline_uniform_block[]
869e5c31af7Sopenharmony_ciInline Uniform Block::
870e5c31af7Sopenharmony_ci    A descriptor type that represents uniform data stored directly in
871e5c31af7Sopenharmony_ci    descriptor sets, and supports read-only access in a shader.
872e5c31af7Sopenharmony_ciendif::VK_EXT_inline_uniform_block[]
873e5c31af7Sopenharmony_ci
874e5c31af7Sopenharmony_ciInput Attachment::
875e5c31af7Sopenharmony_ci    A descriptor type that represents an image view, and supports unfiltered
876e5c31af7Sopenharmony_ci    read-only access in a shader, only at the fragment's location in the
877e5c31af7Sopenharmony_ci    view.
878e5c31af7Sopenharmony_ci
879e5c31af7Sopenharmony_ciInstance::
880e5c31af7Sopenharmony_ci    The top-level Vulkan object, which represents the application's
881e5c31af7Sopenharmony_ci    connection to the implementation.
882e5c31af7Sopenharmony_ci    Represented by a slink:VkInstance object.
883e5c31af7Sopenharmony_ci
884e5c31af7Sopenharmony_ciInstance-Level Command::
885e5c31af7Sopenharmony_ci    Any command that is dispatched from an instance, or from a child object
886e5c31af7Sopenharmony_ci    of an instance, except for physical devices and their children.
887e5c31af7Sopenharmony_ci
888e5c31af7Sopenharmony_ciInstance-Level Functionality::
889e5c31af7Sopenharmony_ci    All instance-level commands and objects, and their structures,
890e5c31af7Sopenharmony_ci    enumerated types, and enumerants.
891e5c31af7Sopenharmony_ci
892e5c31af7Sopenharmony_ciInstance-Level Object::
893e5c31af7Sopenharmony_ci    High-level Vulkan objects, which are not physical devices, nor children
894e5c31af7Sopenharmony_ci    of physical devices.
895e5c31af7Sopenharmony_ci    For example, slink:VkInstance is an instance-level object.
896e5c31af7Sopenharmony_ci
897e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_device_group[]
898e5c31af7Sopenharmony_ciInstance (Memory)::
899e5c31af7Sopenharmony_ci    In a logical device representing more than one physical device, some
900e5c31af7Sopenharmony_ci    device memory allocations have the requested amount of memory allocated
901e5c31af7Sopenharmony_ci    multiple times, once for each physical device in a device mask.
902e5c31af7Sopenharmony_ci    Each such replicated allocation is an instance of the device memory.
903e5c31af7Sopenharmony_ci
904e5c31af7Sopenharmony_ciInstance (Resource)::
905e5c31af7Sopenharmony_ci    In a logical device representing more than one physical device, buffer
906e5c31af7Sopenharmony_ci    and image resources exist on all physical devices but can: be bound to
907e5c31af7Sopenharmony_ci    memory differently on each.
908e5c31af7Sopenharmony_ci    Each such replicated resource is an instance of the resource.
909e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_device_group[]
910e5c31af7Sopenharmony_ci
911e5c31af7Sopenharmony_ciInternal Synchronization::
912e5c31af7Sopenharmony_ci    A type of synchronization required: of the implementation, where
913e5c31af7Sopenharmony_ci    parameters not defined to be externally synchronized may: require
914e5c31af7Sopenharmony_ci    internal mutexing to avoid multithreaded race conditions.
915e5c31af7Sopenharmony_ci
916e5c31af7Sopenharmony_ciInvocation (Shader)::
917e5c31af7Sopenharmony_ci    A single execution of an entry point in a SPIR-V module.
918e5c31af7Sopenharmony_ci    For example, a single vertex's execution of a vertex shader or a single
919e5c31af7Sopenharmony_ci    fragment's execution of a fragment shader.
920e5c31af7Sopenharmony_ci
921e5c31af7Sopenharmony_ciInvocation Group::
922e5c31af7Sopenharmony_ci    A set of shader invocations that are executed in parallel and that must:
923e5c31af7Sopenharmony_ci    execute the same control flow path in order for control flow to be
924e5c31af7Sopenharmony_ci    considered dynamically uniform.
925e5c31af7Sopenharmony_ci
926e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
927e5c31af7Sopenharmony_ciInvocation Repack Instruction::
928e5c31af7Sopenharmony_ci    A ray tracing shader call <<ray-tracing-repack,instruction>> where the
929e5c31af7Sopenharmony_ci    implementation may: change the set of invocations that are executing.
930e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
931e5c31af7Sopenharmony_ci
932e5c31af7Sopenharmony_ciifdef::VK_KHR_deferred_host_operations[]
933e5c31af7Sopenharmony_ciJoin (Deferred Host Operations)::
934e5c31af7Sopenharmony_ci    The act of instructing a thread to participate in the execution of a
935e5c31af7Sopenharmony_ci    deferred operation.
936e5c31af7Sopenharmony_ci    See <<deferred-host-operations, Deferred Host Operations>>.
937e5c31af7Sopenharmony_ciendif::VK_KHR_deferred_host_operations[]
938e5c31af7Sopenharmony_ci
939e5c31af7Sopenharmony_ci[[glossary-linear-resource]]
940e5c31af7Sopenharmony_ciLinear Resource::
941e5c31af7Sopenharmony_ci+
942e5c31af7Sopenharmony_ci--
943e5c31af7Sopenharmony_ciA resource is _linear_ if it is one of the following:
944e5c31af7Sopenharmony_ci
945e5c31af7Sopenharmony_ci  * a slink:VkBuffer
946e5c31af7Sopenharmony_ci  * a slink:VkImage created with ename:VK_IMAGE_TILING_LINEAR
947e5c31af7Sopenharmony_ciifdef::VK_EXT_image_drm_format_modifier[]
948e5c31af7Sopenharmony_ci  * a slink:VkImage created with
949e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose
950e5c31af7Sopenharmony_ci    <<glossary-drm-format-modifier,Linux DRM format modifier>> is
951e5c31af7Sopenharmony_ci    code:DRM_FORMAT_MOD_LINEAR
952e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[]
953e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[]
954e5c31af7Sopenharmony_ci  * a slink:VkAccelerationStructureNV
955e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing[]
956e5c31af7Sopenharmony_ciifdef::VK_KHR_acceleration_structure[]
957e5c31af7Sopenharmony_ci
958e5c31af7Sopenharmony_ciBecause a slink:VkAccelerationStructureKHR resource does not have memory
959e5c31af7Sopenharmony_cibound to it directly, it is considered neither linear nor non-linear.
960e5c31af7Sopenharmony_ciHowever, the slink:VkBuffer on which a slink:VkAccelerationStructureKHR
961e5c31af7Sopenharmony_ciresource is placed is a linear resource.
962e5c31af7Sopenharmony_ciendif::VK_KHR_acceleration_structure[]
963e5c31af7Sopenharmony_ci
964e5c31af7Sopenharmony_ciA resource is _non-linear_ if it is one of the following:
965e5c31af7Sopenharmony_ci
966e5c31af7Sopenharmony_ci  * a slink:VkImage created with ename:VK_IMAGE_TILING_OPTIMAL
967e5c31af7Sopenharmony_ciifdef::VK_EXT_image_drm_format_modifier[]
968e5c31af7Sopenharmony_ci  * a slink:VkImage created with
969e5c31af7Sopenharmony_ci    ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and whose
970e5c31af7Sopenharmony_ci    <<glossary-drm-format-modifier,Linux DRM format modifier>> is not
971e5c31af7Sopenharmony_ci    code:DRM_FORMAT_MOD_LINEAR
972e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[]
973e5c31af7Sopenharmony_ci--
974e5c31af7Sopenharmony_ci
975e5c31af7Sopenharmony_ciifdef::VK_EXT_image_drm_format_modifier[]
976e5c31af7Sopenharmony_ci[[glossary-drm-format-modifier,Linux DRM format modifier]]
977e5c31af7Sopenharmony_ciLinux DRM Format Modifier::
978e5c31af7Sopenharmony_ci    A 64-bit, vendor-prefixed, semi-opaque unsigned integer describing
979e5c31af7Sopenharmony_ci    vendor-specific details of an image's memory layout.
980e5c31af7Sopenharmony_ci    In Linux graphics APIs, _modifiers_ are commonly used to specify the
981e5c31af7Sopenharmony_ci    memory layout of externally shared images.
982e5c31af7Sopenharmony_ci    An image has a _modifier_ if and only if it is created with pname:tiling
983e5c31af7Sopenharmony_ci    equal to ename:VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT.
984e5c31af7Sopenharmony_ci    For more details, refer to the appendix for extension
985e5c31af7Sopenharmony_ci    `apiext:VK_EXT_image_drm_format_modifier`.
986e5c31af7Sopenharmony_ciendif::VK_EXT_image_drm_format_modifier[]
987e5c31af7Sopenharmony_ci
988e5c31af7Sopenharmony_ciLocal Workgroup::
989e5c31af7Sopenharmony_ci    A collection of compute shader invocations invoked by a single
990e5c31af7Sopenharmony_ci    dispatching command, which share data via code:WorkgroupLocal variables
991e5c31af7Sopenharmony_ci    and can synchronize with each other.
992e5c31af7Sopenharmony_ci
993e5c31af7Sopenharmony_ciLogical Device::
994e5c31af7Sopenharmony_ci    An object that represents the application's interface to the physical
995e5c31af7Sopenharmony_ci    device.
996e5c31af7Sopenharmony_ci    The logical device is the parent of most Vulkan objects.
997e5c31af7Sopenharmony_ci    Represented by a slink:VkDevice object.
998e5c31af7Sopenharmony_ci
999e5c31af7Sopenharmony_ciLogical Operation::
1000e5c31af7Sopenharmony_ci    Bitwise operations between a fragment color value and a value in a color
1001e5c31af7Sopenharmony_ci    attachment, that produce a final color value to be written to the
1002e5c31af7Sopenharmony_ci    attachment.
1003e5c31af7Sopenharmony_ci
1004e5c31af7Sopenharmony_ciLost Device::
1005e5c31af7Sopenharmony_ci    A state that a logical device may: be in as a result of unrecoverable
1006e5c31af7Sopenharmony_ci    implementation errors, or other exceptional conditions.
1007e5c31af7Sopenharmony_ci
1008e5c31af7Sopenharmony_ciMappable::
1009e5c31af7Sopenharmony_ci    See Host-Visible Memory.
1010e5c31af7Sopenharmony_ci
1011e5c31af7Sopenharmony_ciMemory Dependency::
1012e5c31af7Sopenharmony_ci    A memory dependency is an execution dependency which includes
1013e5c31af7Sopenharmony_ci    availability and visibility operations such that:
1014e5c31af7Sopenharmony_ci
1015e5c31af7Sopenharmony_ci  * The first set of operations happens-before the availability operation
1016e5c31af7Sopenharmony_ci  * The availability operation happens-before the visibility operation
1017e5c31af7Sopenharmony_ci  * The visibility operation happens-before the second set of operations
1018e5c31af7Sopenharmony_ci
1019e5c31af7Sopenharmony_ciMemory Domain::
1020e5c31af7Sopenharmony_ci    A memory domain is an abstract place to which memory writes are made
1021e5c31af7Sopenharmony_ci    available by availability operations and memory domain operations.
1022e5c31af7Sopenharmony_ci    The memory domains correspond to the set of agents that the write can:
1023e5c31af7Sopenharmony_ci    then be made visible to.
1024e5c31af7Sopenharmony_ci    The memory domains are _host_, _device_, _shader_, _workgroup instance_
1025e5c31af7Sopenharmony_ci    (for workgroup instance there is a unique domain for each compute
1026e5c31af7Sopenharmony_ci    workgroup) and _subgroup instance_ (for subgroup instance there is a
1027e5c31af7Sopenharmony_ci    unique domain for each subgroup).
1028e5c31af7Sopenharmony_ci
1029e5c31af7Sopenharmony_ciMemory Domain Operation::
1030e5c31af7Sopenharmony_ci    An operation that makes the writes that are available to one memory
1031e5c31af7Sopenharmony_ci    domain available to another memory domain.
1032e5c31af7Sopenharmony_ci
1033e5c31af7Sopenharmony_ciMemory Heap::
1034e5c31af7Sopenharmony_ci    A region of memory from which device memory allocations can: be made.
1035e5c31af7Sopenharmony_ci
1036e5c31af7Sopenharmony_ciMemory Type::
1037e5c31af7Sopenharmony_ci    An index used to select a set of memory properties (e.g. mappable,
1038e5c31af7Sopenharmony_ci    cached) for a device memory allocation.
1039e5c31af7Sopenharmony_ci
1040e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
1041e5c31af7Sopenharmony_ciMesh Shading Pipeline::
1042e5c31af7Sopenharmony_ci    A graphics pipeline where the primitives are assembled explicitly in the
1043e5c31af7Sopenharmony_ci    shader stages.
1044e5c31af7Sopenharmony_ci    In contrast to the primitive shading pipeline where input primitives are
1045e5c31af7Sopenharmony_ci    assembled by fixed function processing.
1046e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
1047e5c31af7Sopenharmony_ci
1048e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
1049e5c31af7Sopenharmony_ciMesh Tasks Drawing Commands::
1050e5c31af7Sopenharmony_ci    _Drawing commands_ which create shader invocations organized in
1051e5c31af7Sopenharmony_ci    workgroups for drawing mesh tasks.
1052e5c31af7Sopenharmony_ci    Includes flink:vkCmdDrawMeshTasksNV, flink:vkCmdDrawMeshTasksIndirectNV,
1053e5c31af7Sopenharmony_ci    and flink:vkCmdDrawMeshTasksIndirectCountNV.
1054e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
1055e5c31af7Sopenharmony_ci
1056e5c31af7Sopenharmony_ciMinimum Miplevel Size::
1057e5c31af7Sopenharmony_ci    The smallest size that is permitted for a miplevel.
1058e5c31af7Sopenharmony_ci    For conventional images this is 1x1x1.
1059e5c31af7Sopenharmony_ciifdef::VK_NV_corner_sampled_image[]
1060e5c31af7Sopenharmony_ci    For corner-sampled images, this is 2x2x2.
1061e5c31af7Sopenharmony_ciendif::VK_NV_corner_sampled_image[]
1062e5c31af7Sopenharmony_ci    See <<resources-image-miplevel-sizing, Image Miplevel Sizing>>.
1063e5c31af7Sopenharmony_ci
1064e5c31af7Sopenharmony_ciMip Tail Region::
1065e5c31af7Sopenharmony_ci    The set of mipmap levels of a sparse residency texture that are too
1066e5c31af7Sopenharmony_ci    small to fill a sparse block, and that must: all be bound to memory
1067e5c31af7Sopenharmony_ci    collectively and opaquely.
1068e5c31af7Sopenharmony_ci
1069e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1070e5c31af7Sopenharmony_ciMulti-planar::
1071e5c31af7Sopenharmony_ci    A _multi-planar format_ (or "`planar format`") is an image format
1072e5c31af7Sopenharmony_ci    consisting of more than one _plane_, identifiable with a etext:_2PLANE
1073e5c31af7Sopenharmony_ci    or etext:_3PLANE component to the format name and listed in
1074e5c31af7Sopenharmony_ci    <<formats-requiring-sampler-ycbcr-conversion>>.
1075e5c31af7Sopenharmony_ci    A _multi-planar image_ (or "`planar image`") is an image of a
1076e5c31af7Sopenharmony_ci    multi-planar format.
1077e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1078e5c31af7Sopenharmony_ci
1079e5c31af7Sopenharmony_ciNon-Dispatchable Handle::
1080e5c31af7Sopenharmony_ci    A handle of an integer handle type.
1081e5c31af7Sopenharmony_ci    Handle values may: not be unique, even for two objects of the same type.
1082e5c31af7Sopenharmony_ci
1083e5c31af7Sopenharmony_ciNon-Indexed Drawing Commands::
1084e5c31af7Sopenharmony_ci    _Drawing commands_ for which the vertex attributes are sourced in linear
1085e5c31af7Sopenharmony_ci    order from the vertex input attributes for a drawing command (i.e. they
1086e5c31af7Sopenharmony_ci    do not use an _index buffer_).
1087e5c31af7Sopenharmony_ci    Includes flink:vkCmdDraw,
1088e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2[]
1089e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCount,
1090e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2[]
1091e5c31af7Sopenharmony_ciifdef::VK_KHR_draw_indirect_count[]
1092e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCountKHR,
1093e5c31af7Sopenharmony_ciendif::VK_KHR_draw_indirect_count[]
1094e5c31af7Sopenharmony_ciifdef::VK_AMD_draw_indirect_count[]
1095e5c31af7Sopenharmony_ci    flink:vkCmdDrawIndirectCountAMD,
1096e5c31af7Sopenharmony_ciendif::VK_AMD_draw_indirect_count[]
1097e5c31af7Sopenharmony_ciifdef::VK_EXT_multi_draw[]
1098e5c31af7Sopenharmony_ci    flink:vkCmdDrawMultiEXT,
1099e5c31af7Sopenharmony_ciendif::VK_EXT_multi_draw[]
1100e5c31af7Sopenharmony_ci    and flink:vkCmdDrawIndirect.
1101e5c31af7Sopenharmony_ci
1102e5c31af7Sopenharmony_ciNormalized::
1103e5c31af7Sopenharmony_ci    A value that is interpreted as being in the range [eq]#[0,1]# as a
1104e5c31af7Sopenharmony_ci    result of being implicitly divided by some other value.
1105e5c31af7Sopenharmony_ci
1106e5c31af7Sopenharmony_ciNormalized Device Coordinates::
1107e5c31af7Sopenharmony_ci    A coordinate space after perspective division is applied to clip
1108e5c31af7Sopenharmony_ci    coordinates, and before the viewport transformation converts to
1109e5c31af7Sopenharmony_ci    framebuffer coordinates.
1110e5c31af7Sopenharmony_ci
1111e5c31af7Sopenharmony_ciObsoleted (feature)::
1112e5c31af7Sopenharmony_ci    A feature is obsolete if it can no longer be used.
1113e5c31af7Sopenharmony_ci
1114e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
1115e5c31af7Sopenharmony_ciOpaque Capture Address::
1116e5c31af7Sopenharmony_ci    A 64-bit value representing the device address of a buffer or memory
1117e5c31af7Sopenharmony_ci    object that is expected to be used by trace capture/replay tools in
1118e5c31af7Sopenharmony_ci    combination with the
1119e5c31af7Sopenharmony_ci    <<features-bufferDeviceAddress,bufferDeviceAddress>> feature.
1120e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_buffer_device_address[]
1121e5c31af7Sopenharmony_ci
1122e5c31af7Sopenharmony_ciOverlapped Range (Aliased Range)::
1123e5c31af7Sopenharmony_ci    The aliased range of a device memory allocation that intersects a given
1124e5c31af7Sopenharmony_ci    image subresource of an image or range of a buffer.
1125e5c31af7Sopenharmony_ci
1126e5c31af7Sopenharmony_ciOwnership (Resource)::
1127e5c31af7Sopenharmony_ci    If an entity (e.g. a queue family) has ownership of a resource, access
1128e5c31af7Sopenharmony_ci    to that resource is well-defined for access by that entity.
1129e5c31af7Sopenharmony_ci
1130e5c31af7Sopenharmony_ciPacked Format::
1131e5c31af7Sopenharmony_ci    A format whose components are stored as a single texel block in memory,
1132e5c31af7Sopenharmony_ci    with their relative locations defined within that element.
1133e5c31af7Sopenharmony_ci
1134e5c31af7Sopenharmony_ciifdef::VK_NV_geometry_shader_passthrough[]
1135e5c31af7Sopenharmony_ciPassthrough Geometry Shader::
1136e5c31af7Sopenharmony_ci    A geometry shader which uses the code:PassthroughNV decoration on a
1137e5c31af7Sopenharmony_ci    variable in its input interface.
1138e5c31af7Sopenharmony_ci    Output primitives in a passthrough geometry shader always have the same
1139e5c31af7Sopenharmony_ci    topology as the input primitive and are not produced by emitting
1140e5c31af7Sopenharmony_ci    vertices.
1141e5c31af7Sopenharmony_ciendif::VK_NV_geometry_shader_passthrough[]
1142e5c31af7Sopenharmony_ci
1143e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_external_semaphore,VK_KHR_external_fence[]
1144e5c31af7Sopenharmony_ciPayload::
1145e5c31af7Sopenharmony_ci    Importable or exportable reference to the internal data of an object in
1146e5c31af7Sopenharmony_ci    Vulkan.
1147e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_external_semaphore,VK_KHR_external_fence[]
1148e5c31af7Sopenharmony_ci
1149e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
1150e5c31af7Sopenharmony_ciPer-View::
1151e5c31af7Sopenharmony_ci    A variable that has an array of values which are output, one for each
1152e5c31af7Sopenharmony_ci    view that is being generated.
1153e5c31af7Sopenharmony_ci    A mesh shader which uses the code:PerViewNV decoration on a variable in
1154e5c31af7Sopenharmony_ci    its output interface.
1155e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
1156e5c31af7Sopenharmony_ci
1157e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_device_group[]
1158e5c31af7Sopenharmony_ciPeer Memory::
1159e5c31af7Sopenharmony_ci    An instance of memory corresponding to a different physical device than
1160e5c31af7Sopenharmony_ci    the physical device performing the memory access, in a logical device
1161e5c31af7Sopenharmony_ci    that represents multiple physical devices.
1162e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_device_group[]
1163e5c31af7Sopenharmony_ci
1164e5c31af7Sopenharmony_ciPhysical Device::
1165e5c31af7Sopenharmony_ci    An object that represents a single device in the system.
1166e5c31af7Sopenharmony_ci    Represented by a slink:VkPhysicalDevice object.
1167e5c31af7Sopenharmony_ci
1168e5c31af7Sopenharmony_ciPhysical-Device-Level Command::
1169e5c31af7Sopenharmony_ci    Any command that is dispatched from a physical device.
1170e5c31af7Sopenharmony_ci
1171e5c31af7Sopenharmony_ciPhysical-Device-Level Functionality::
1172e5c31af7Sopenharmony_ci    All physical-device-level commands and objects, and their structures,
1173e5c31af7Sopenharmony_ci    enumerated types, and enumerants.
1174e5c31af7Sopenharmony_ci
1175e5c31af7Sopenharmony_ciPhysical-Device-Level Object::
1176e5c31af7Sopenharmony_ci    Physical device objects.
1177e5c31af7Sopenharmony_ci    For example, slink:VkPhysicalDevice is a physical-device-level object.
1178e5c31af7Sopenharmony_ci
1179e5c31af7Sopenharmony_ciPipeline::
1180e5c31af7Sopenharmony_ci    An object controlling how graphics or compute work is executed on the
1181e5c31af7Sopenharmony_ci    device.
1182e5c31af7Sopenharmony_ci    A pipeline includes one or more shaders, as well as state controlling
1183e5c31af7Sopenharmony_ci    any non-programmable stages of the pipeline.
1184e5c31af7Sopenharmony_ci    Represented by a slink:VkPipeline object.
1185e5c31af7Sopenharmony_ci
1186e5c31af7Sopenharmony_ciPipeline Barrier::
1187e5c31af7Sopenharmony_ci    An execution and/or memory dependency recorded as an explicit command in
1188e5c31af7Sopenharmony_ci    a command buffer, that forms a dependency between the previous and
1189e5c31af7Sopenharmony_ci    subsequent commands.
1190e5c31af7Sopenharmony_ci
1191e5c31af7Sopenharmony_ciPipeline Cache::
1192e5c31af7Sopenharmony_ci    An object that can: be used to collect and retrieve information from
1193e5c31af7Sopenharmony_ci    pipelines as they are created, and can: be populated with previously
1194e5c31af7Sopenharmony_ci    retrieved information in order to accelerate pipeline creation.
1195e5c31af7Sopenharmony_ci    Represented by a slink:VkPipelineCache object.
1196e5c31af7Sopenharmony_ci
1197e5c31af7Sopenharmony_ciPipeline Layout::
1198e5c31af7Sopenharmony_ci    An object defining the set of resources (via a collection of descriptor
1199e5c31af7Sopenharmony_ci    set layouts) and push constants used by pipelines that are created using
1200e5c31af7Sopenharmony_ci    the layout.
1201e5c31af7Sopenharmony_ci    Used when creating a pipeline and when binding descriptor sets and
1202e5c31af7Sopenharmony_ci    setting push constant values.
1203e5c31af7Sopenharmony_ci    Represented by a slink:VkPipelineLayout object.
1204e5c31af7Sopenharmony_ci
1205e5c31af7Sopenharmony_ciifdef::VK_KHR_pipeline_library[]
1206e5c31af7Sopenharmony_ciPipeline Library::
1207e5c31af7Sopenharmony_ci    A pipeline that cannot be directly used, instead defining a set of
1208e5c31af7Sopenharmony_ci    shaders and shader groups which will be <<pipeline-library,linked into
1209e5c31af7Sopenharmony_ci    other pipelines>>.
1210e5c31af7Sopenharmony_ciendif::VK_KHR_pipeline_library[]
1211e5c31af7Sopenharmony_ci
1212e5c31af7Sopenharmony_ciPipeline Stage::
1213e5c31af7Sopenharmony_ci    A logically independent execution unit that performs some of the
1214e5c31af7Sopenharmony_ci    operations defined by an action command.
1215e5c31af7Sopenharmony_ci
1216e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
1217e5c31af7Sopenharmony_ciPipeline Trace Ray Instruction::
1218e5c31af7Sopenharmony_ci    A ray tracing instruction which traces a ray into an acceleration
1219e5c31af7Sopenharmony_ci    structure when using ray tracing pipelines.
1220e5c31af7Sopenharmony_ci    One of
1221e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[code:OpTraceNV,]
1222e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_motion_blur[code:OpTraceRayMotionNV, code:OpTraceMotionNV,]
1223e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[code:OpTraceRayKHR]
1224e5c31af7Sopenharmony_ci    .
1225e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
1226e5c31af7Sopenharmony_ci
1227e5c31af7Sopenharmony_cipname:pNext Chain::
1228e5c31af7Sopenharmony_ci    A set of structures <<fundamentals-validusage-pNext,chained together>>
1229e5c31af7Sopenharmony_ci    through their ptext:pNext members.
1230e5c31af7Sopenharmony_ci
1231e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1232e5c31af7Sopenharmony_ciPlanar::
1233e5c31af7Sopenharmony_ci    See _multi-planar_.
1234e5c31af7Sopenharmony_ci
1235e5c31af7Sopenharmony_ciPlane::
1236e5c31af7Sopenharmony_ci    An _image plane_ is part of the representation of an image, containing a
1237e5c31af7Sopenharmony_ci    subset of the color components required to represent the texels in the
1238e5c31af7Sopenharmony_ci    image and with a contiguous mapping of coordinates to bound memory.
1239e5c31af7Sopenharmony_ci    Most images consist only of a single plane, but some formats spread the
1240e5c31af7Sopenharmony_ci    components across multiple image planes.
1241e5c31af7Sopenharmony_ci    The host-accessible properties of each image plane are accessed in a
1242e5c31af7Sopenharmony_ci    linear layout using flink:vkGetImageSubresourceLayout.
1243e5c31af7Sopenharmony_ci    If a multi-planar image is created with the
1244e5c31af7Sopenharmony_ci    ename:VK_IMAGE_CREATE_DISJOINT_BIT bit set, the image is described as
1245e5c31af7Sopenharmony_ci    _disjoint_, and its planes are therefore bound to memory independently.
1246e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1247e5c31af7Sopenharmony_ci
1248e5c31af7Sopenharmony_ciPoint Sampling (Rasterization)::
1249e5c31af7Sopenharmony_ci    A rule that determines whether a fragment sample location is covered by
1250e5c31af7Sopenharmony_ci    a polygon primitive by testing whether the sample location is in the
1251e5c31af7Sopenharmony_ci    interior of the polygon in framebuffer-space, or on the boundary of the
1252e5c31af7Sopenharmony_ci    polygon according to the tie-breaking rules.
1253e5c31af7Sopenharmony_ci
1254e5c31af7Sopenharmony_ciPotential Format Features::
1255e5c31af7Sopenharmony_ci    The union of all elink:VkFormatFeatureFlagBits that the implementation
1256e5c31af7Sopenharmony_ci    supports for a specified elink:VkFormat, over all supported image
1257e5c31af7Sopenharmony_ci    tilings.
1258e5c31af7Sopenharmony_ciifdef::VK_ANDROID_external_memory_android_hardware_buffer[]
1259e5c31af7Sopenharmony_ci    For <<memory-external-android-hardware-buffer-external-formats,external
1260e5c31af7Sopenharmony_ci    formats>> the elink:VkFormatFeatureFlagBits is provided by the
1261e5c31af7Sopenharmony_ci    implementation.
1262e5c31af7Sopenharmony_ciendif::VK_ANDROID_external_memory_android_hardware_buffer[]
1263e5c31af7Sopenharmony_ci
1264e5c31af7Sopenharmony_ciPre-rasterization::
1265e5c31af7Sopenharmony_ci    Operations that execute before <<primsrast,rasterization>>, and any
1266e5c31af7Sopenharmony_ci    state associated with those operations.
1267e5c31af7Sopenharmony_ci
1268e5c31af7Sopenharmony_ciifdef::VK_KHR_swapchain[]
1269e5c31af7Sopenharmony_ciPresentable image::
1270e5c31af7Sopenharmony_ci    A sname:VkImage object obtained from a sname:VkSwapchainKHR used to
1271e5c31af7Sopenharmony_ci    present to a sname:VkSurfaceKHR object.
1272e5c31af7Sopenharmony_ciendif::VK_KHR_swapchain[]
1273e5c31af7Sopenharmony_ci
1274e5c31af7Sopenharmony_ciPreserve Attachment::
1275e5c31af7Sopenharmony_ci    One of a list of attachments in a subpass description that is not read
1276e5c31af7Sopenharmony_ci    or written by the subpass, but that is read or written on earlier and
1277e5c31af7Sopenharmony_ci    later subpasses and whose contents must: be preserved through this
1278e5c31af7Sopenharmony_ci    subpass.
1279e5c31af7Sopenharmony_ci
1280e5c31af7Sopenharmony_ciPrimary Command Buffer::
1281e5c31af7Sopenharmony_ci    A command buffer that can: execute secondary command buffers, and can:
1282e5c31af7Sopenharmony_ci    be submitted directly to a queue.
1283e5c31af7Sopenharmony_ci
1284e5c31af7Sopenharmony_ciifdef::VK_NV_mesh_shader[]
1285e5c31af7Sopenharmony_ciPrimitive Shading Pipeline::
1286e5c31af7Sopenharmony_ci    A graphics pipeline where input primitives are assembled by fixed
1287e5c31af7Sopenharmony_ci    function processing.
1288e5c31af7Sopenharmony_ci    It is the counterpart to mesh shading.
1289e5c31af7Sopenharmony_ciendif::VK_NV_mesh_shader[]
1290e5c31af7Sopenharmony_ci
1291e5c31af7Sopenharmony_ciPrimitive Topology::
1292e5c31af7Sopenharmony_ci    State controlling how vertices are assembled into primitives, e.g. as
1293e5c31af7Sopenharmony_ci    lists of triangles, strips of lines, etc..
1294e5c31af7Sopenharmony_ci
1295e5c31af7Sopenharmony_ciPromoted (feature)::
1296e5c31af7Sopenharmony_ci    A feature from an older extension is considered promoted if it is made
1297e5c31af7Sopenharmony_ci    available as part of a new core version or newer extension with wider
1298e5c31af7Sopenharmony_ci    support.
1299e5c31af7Sopenharmony_ci
1300e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1301e5c31af7Sopenharmony_ciProtected Buffer::
1302e5c31af7Sopenharmony_ci    A buffer to which protected device memory can: be bound.
1303e5c31af7Sopenharmony_ci
1304e5c31af7Sopenharmony_ciProtected-capable Device Queue::
1305e5c31af7Sopenharmony_ci    A device queue to which protected command buffers can: be submitted.
1306e5c31af7Sopenharmony_ci
1307e5c31af7Sopenharmony_ciProtected Command Buffer::
1308e5c31af7Sopenharmony_ci    A command buffer which can: be submitted to a protected-capable device
1309e5c31af7Sopenharmony_ci    queue.
1310e5c31af7Sopenharmony_ci
1311e5c31af7Sopenharmony_ciProtected Device Memory::
1312e5c31af7Sopenharmony_ci    Device memory which can: be visible to the device but must: not be
1313e5c31af7Sopenharmony_ci    visible to the host.
1314e5c31af7Sopenharmony_ci
1315e5c31af7Sopenharmony_ciProtected Image::
1316e5c31af7Sopenharmony_ci    An image to which protected device memory can: be bound.
1317e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1318e5c31af7Sopenharmony_ci
1319e5c31af7Sopenharmony_ciProvisional::
1320e5c31af7Sopenharmony_ci    A feature is released provisionally in order to get wider feedback on
1321e5c31af7Sopenharmony_ci    the functionality before it is finalized.
1322e5c31af7Sopenharmony_ci    Provisional features may change in ways that break backwards
1323e5c31af7Sopenharmony_ci    compatibility, and thus are not recommended for use in production
1324e5c31af7Sopenharmony_ci    applications.
1325e5c31af7Sopenharmony_ci
1326e5c31af7Sopenharmony_ciProvoking Vertex::
1327e5c31af7Sopenharmony_ci    The vertex in a primitive from which flat shaded attribute values are
1328e5c31af7Sopenharmony_ci    taken.
1329e5c31af7Sopenharmony_ci    This is generally the "`first`" vertex in the primitive, and depends on
1330e5c31af7Sopenharmony_ci    the primitive topology.
1331e5c31af7Sopenharmony_ci
1332e5c31af7Sopenharmony_ciPush Constants::
1333e5c31af7Sopenharmony_ci    A small bank of values writable via the API and accessible in shaders.
1334e5c31af7Sopenharmony_ci    Push constants allow the application to set values used in shaders
1335e5c31af7Sopenharmony_ci    without creating buffers or modifying and binding descriptor sets for
1336e5c31af7Sopenharmony_ci    each update.
1337e5c31af7Sopenharmony_ci
1338e5c31af7Sopenharmony_ciPush Constant Interface::
1339e5c31af7Sopenharmony_ci    The set of variables with code:PushConstant storage class that are
1340e5c31af7Sopenharmony_ci    statically used by a shader entry point, and which receive values from
1341e5c31af7Sopenharmony_ci    push constant commands.
1342e5c31af7Sopenharmony_ci
1343e5c31af7Sopenharmony_ciifdef::VK_KHR_push_descriptor[]
1344e5c31af7Sopenharmony_ciPush Descriptors::
1345e5c31af7Sopenharmony_ci    Descriptors that are written directly into a command buffer rather than
1346e5c31af7Sopenharmony_ci    into a descriptor set.
1347e5c31af7Sopenharmony_ci    Push descriptors allow the application to set descriptors used in
1348e5c31af7Sopenharmony_ci    shaders without allocating or modifying descriptor sets for each update.
1349e5c31af7Sopenharmony_ciendif::VK_KHR_push_descriptor[]
1350e5c31af7Sopenharmony_ci
1351e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_descriptor_update_template[]
1352e5c31af7Sopenharmony_ciDescriptor Update Template::
1353e5c31af7Sopenharmony_ci    An object specifying a mapping from descriptor update information in
1354e5c31af7Sopenharmony_ci    host memory to elements in a descriptor set, which helps enable more
1355e5c31af7Sopenharmony_ci    efficient descriptor set updates.
1356e5c31af7Sopenharmony_ci
1357e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_descriptor_update_template[]
1358e5c31af7Sopenharmony_ci
1359e5c31af7Sopenharmony_ciQuery Pool::
1360e5c31af7Sopenharmony_ci    An object containing a number of query entries and their associated
1361e5c31af7Sopenharmony_ci    state and results.
1362e5c31af7Sopenharmony_ci    Represented by a slink:VkQueryPool object.
1363e5c31af7Sopenharmony_ci
1364e5c31af7Sopenharmony_ciQueue::
1365e5c31af7Sopenharmony_ci    An object that executes command buffers and sparse binding operations on
1366e5c31af7Sopenharmony_ci    a device.
1367e5c31af7Sopenharmony_ci    Represented by a slink:VkQueue object.
1368e5c31af7Sopenharmony_ci
1369e5c31af7Sopenharmony_ciQueue Family::
1370e5c31af7Sopenharmony_ci    A set of queues that have common properties and support the same
1371e5c31af7Sopenharmony_ci    functionality, as advertised in slink:VkQueueFamilyProperties.
1372e5c31af7Sopenharmony_ci
1373e5c31af7Sopenharmony_ciQueue Operation::
1374e5c31af7Sopenharmony_ci    A unit of work to be executed by a specific queue on a device, submitted
1375e5c31af7Sopenharmony_ci    via a <<devsandqueues-submission, queue submission command>>.
1376e5c31af7Sopenharmony_ci    Each queue submission command details the specific queue operations that
1377e5c31af7Sopenharmony_ci    occur as a result of calling that command.
1378e5c31af7Sopenharmony_ci    Queue operations typically include work that is specific to each
1379e5c31af7Sopenharmony_ci    command, and synchronization tasks.
1380e5c31af7Sopenharmony_ci
1381e5c31af7Sopenharmony_ciQueue Submission::
1382e5c31af7Sopenharmony_ci    Zero or more batches and an optional fence to be signaled, passed to a
1383e5c31af7Sopenharmony_ci    command for execution on a queue.
1384e5c31af7Sopenharmony_ci    See the <<devsandqueues-submission, Devices and Queues chapter>> for
1385e5c31af7Sopenharmony_ci    more information.
1386e5c31af7Sopenharmony_ci
1387e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
1388e5c31af7Sopenharmony_ciRay Tracing Command::
1389e5c31af7Sopenharmony_ci    Commands that provoke work using a ray tracing pipeline.
1390e5c31af7Sopenharmony_ci    Includes
1391e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing[flink:vkCmdTraceRaysNV,]
1392e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline[flink:vkCmdTraceRaysKHR, and flink:vkCmdTraceRaysIndirectKHR]
1393e5c31af7Sopenharmony_ci    .
1394e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
1395e5c31af7Sopenharmony_ci
1396e5c31af7Sopenharmony_ciRecording State (Command Buffer)::
1397e5c31af7Sopenharmony_ci    A command buffer that is ready to record commands.
1398e5c31af7Sopenharmony_ci    See also Initial State and Executable State.
1399e5c31af7Sopenharmony_ci
1400e5c31af7Sopenharmony_ciRelease Operation (Resource)::
1401e5c31af7Sopenharmony_ci    An operation that releases ownership of an image subresource or buffer
1402e5c31af7Sopenharmony_ci    range.
1403e5c31af7Sopenharmony_ci
1404e5c31af7Sopenharmony_ciRender Pass::
1405e5c31af7Sopenharmony_ci    An object that represents a set of framebuffer attachments and phases of
1406e5c31af7Sopenharmony_ci    rendering using those attachments.
1407e5c31af7Sopenharmony_ci    Represented by a slink:VkRenderPass object.
1408e5c31af7Sopenharmony_ci
1409e5c31af7Sopenharmony_ciRender Pass Instance::
1410e5c31af7Sopenharmony_ci    A use of a render pass in a command buffer.
1411e5c31af7Sopenharmony_ci
1412e5c31af7Sopenharmony_ciRequired Extensions::
1413e5c31af7Sopenharmony_ci    Extensions that must: be enabled alongside extensions dependent on them
1414e5c31af7Sopenharmony_ci    (see <<extendingvulkan-extensions-extensiondependencies, Extension
1415e5c31af7Sopenharmony_ci    Dependencies>>).
1416e5c31af7Sopenharmony_ci
1417e5c31af7Sopenharmony_ciReset (Command Buffer)::
1418e5c31af7Sopenharmony_ci    Resetting a command buffer discards any previously recorded commands and
1419e5c31af7Sopenharmony_ci    puts a command buffer in the initial state.
1420e5c31af7Sopenharmony_ci
1421e5c31af7Sopenharmony_ciResidency Code::
1422e5c31af7Sopenharmony_ci    An integer value returned by sparse image instructions, indicating
1423e5c31af7Sopenharmony_ci    whether any sparse unbound texels were accessed.
1424e5c31af7Sopenharmony_ci
1425e5c31af7Sopenharmony_ciResolve Attachment::
1426e5c31af7Sopenharmony_ci    A subpass attachment point, or image view, that is the target of a
1427e5c31af7Sopenharmony_ci    multisample resolve operation from the corresponding color attachment at
1428e5c31af7Sopenharmony_ci    the end of the subpass.
1429e5c31af7Sopenharmony_ci
1430e5c31af7Sopenharmony_ciifdef::VK_KHR_swapchain[]
1431e5c31af7Sopenharmony_ciRetired Swapchain::
1432e5c31af7Sopenharmony_ci    A swapchain that has been used as the pname:oldSwapchain parameter to
1433e5c31af7Sopenharmony_ci    flink:vkCreateSwapchainKHR.
1434e5c31af7Sopenharmony_ci    Images cannot be acquired from a retired swapchain, however images that
1435e5c31af7Sopenharmony_ci    were acquired (but not presented) before the swapchain was retired can:
1436e5c31af7Sopenharmony_ci    be presented.
1437e5c31af7Sopenharmony_ciendif::VK_KHR_swapchain[]
1438e5c31af7Sopenharmony_ci
1439e5c31af7Sopenharmony_ciSample Index::
1440e5c31af7Sopenharmony_ci    The index of a sample within a <<primsrast-multisampling-coverage-mask,
1441e5c31af7Sopenharmony_ci    single set of samples>>.
1442e5c31af7Sopenharmony_ci
1443e5c31af7Sopenharmony_ciSample Shading::
1444e5c31af7Sopenharmony_ci    Invoking the fragment shader multiple times per fragment, with the
1445e5c31af7Sopenharmony_ci    covered samples partitioned among the invocations.
1446e5c31af7Sopenharmony_ci
1447e5c31af7Sopenharmony_ciSampled Image::
1448e5c31af7Sopenharmony_ci    A descriptor type that represents an image view, and supports filtered
1449e5c31af7Sopenharmony_ci    (sampled) and unfiltered read-only access in a shader.
1450e5c31af7Sopenharmony_ci
1451e5c31af7Sopenharmony_ciSampler::
1452e5c31af7Sopenharmony_ci    An object containing state controlling how sampled image data is sampled
1453e5c31af7Sopenharmony_ci    (or filtered) when accessed in a shader.
1454e5c31af7Sopenharmony_ci    Also a descriptor type describing the object.
1455e5c31af7Sopenharmony_ci    Represented by a slink:VkSampler object.
1456e5c31af7Sopenharmony_ci
1457e5c31af7Sopenharmony_ciSecondary Command Buffer::
1458e5c31af7Sopenharmony_ci    A command buffer that can: be executed by a primary command buffer, and
1459e5c31af7Sopenharmony_ci    must: not be submitted directly to a queue.
1460e5c31af7Sopenharmony_ci
1461e5c31af7Sopenharmony_ciSelf-Dependency::
1462e5c31af7Sopenharmony_ci    A subpass dependency from a subpass to itself, i.e. with
1463e5c31af7Sopenharmony_ci    pname:srcSubpass equal to pname:dstSubpass.
1464e5c31af7Sopenharmony_ci    A self-dependency is not automatically performed during a render pass
1465e5c31af7Sopenharmony_ci    instance, rather a subset of it can: be performed via
1466e5c31af7Sopenharmony_ci    flink:vkCmdPipelineBarrier during the subpass.
1467e5c31af7Sopenharmony_ci
1468e5c31af7Sopenharmony_ciSemaphore::
1469e5c31af7Sopenharmony_ci    A synchronization primitive that supports signal and wait operations,
1470e5c31af7Sopenharmony_ci    and can: be used to synchronize operations within a queue or across
1471e5c31af7Sopenharmony_ci    queues.
1472e5c31af7Sopenharmony_ci    Represented by a slink:VkSemaphore object.
1473e5c31af7Sopenharmony_ci
1474e5c31af7Sopenharmony_ciShader::
1475e5c31af7Sopenharmony_ci    Instructions selected (via an entry point) from a shader module, which
1476e5c31af7Sopenharmony_ci    are executed in a shader stage.
1477e5c31af7Sopenharmony_ci
1478e5c31af7Sopenharmony_ciifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
1479e5c31af7Sopenharmony_ciShader Call::
1480e5c31af7Sopenharmony_ci    An <<ray-tracing-shader-call,instruction>> which may: cause execution to
1481e5c31af7Sopenharmony_ci    continue in a different shader stage.
1482e5c31af7Sopenharmony_ciendif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[]
1483e5c31af7Sopenharmony_ci
1484e5c31af7Sopenharmony_ciShader Code::
1485e5c31af7Sopenharmony_ci    A stream of instructions used to describe the operation of a shader.
1486e5c31af7Sopenharmony_ci
1487e5c31af7Sopenharmony_ciifdef::VK_NV_device_generated_commands,VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[]
1488e5c31af7Sopenharmony_ciShader Group::
1489e5c31af7Sopenharmony_ci    A set of Shader Stages that are part of a slink:VkPipeline containing
1490e5c31af7Sopenharmony_ci    multiple of such sets.
1491e5c31af7Sopenharmony_ci    This allows the device to make use of all the shader groups from the
1492e5c31af7Sopenharmony_ci    bound pipeline independently.
1493e5c31af7Sopenharmony_ciendif::VK_NV_device_generated_commands,VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline[]
1494e5c31af7Sopenharmony_ci
1495e5c31af7Sopenharmony_ciShader Module::
1496e5c31af7Sopenharmony_ci    A collection of shader code, potentially including several functions and
1497e5c31af7Sopenharmony_ci    entry points, that is used to create shaders in pipelines.
1498e5c31af7Sopenharmony_ci    Represented by a slink:VkShaderModule object.
1499e5c31af7Sopenharmony_ci
1500e5c31af7Sopenharmony_ciShader Stage::
1501e5c31af7Sopenharmony_ci    A stage of the graphics or compute pipeline that executes shader code.
1502e5c31af7Sopenharmony_ci
1503e5c31af7Sopenharmony_ciifdef::VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image[]
1504e5c31af7Sopenharmony_ci[[glossary-shading-rate]]
1505e5c31af7Sopenharmony_ciShading Rate::
1506e5c31af7Sopenharmony_ci    The ratio of the number of fragment shader invocations generated in a
1507e5c31af7Sopenharmony_ci    fully covered framebuffer region to the size (in pixels) of that region.
1508e5c31af7Sopenharmony_ciendif::VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image[]
1509e5c31af7Sopenharmony_ci
1510e5c31af7Sopenharmony_ciifdef::VK_NV_shading_rate_image[]
1511e5c31af7Sopenharmony_ci[[glossary-shading-rate-image]]
1512e5c31af7Sopenharmony_ciShading Rate Image::
1513e5c31af7Sopenharmony_ci    An image used to establish the shading rate for a framebuffer region,
1514e5c31af7Sopenharmony_ci    where each pixel controls the shading rate for a corresponding
1515e5c31af7Sopenharmony_ci    framebuffer region.
1516e5c31af7Sopenharmony_ciendif::VK_NV_shading_rate_image[]
1517e5c31af7Sopenharmony_ci
1518e5c31af7Sopenharmony_ciifdef::VK_KHR_shared_presentable_image[]
1519e5c31af7Sopenharmony_ciShared presentable image::
1520e5c31af7Sopenharmony_ci    A presentable image created from a swapchain with elink:VkPresentModeKHR
1521e5c31af7Sopenharmony_ci    set to either ename:VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or
1522e5c31af7Sopenharmony_ci    ename:VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR.
1523e5c31af7Sopenharmony_ciendif::VK_KHR_shared_presentable_image[]
1524e5c31af7Sopenharmony_ci
1525e5c31af7Sopenharmony_ciSide Effect::
1526e5c31af7Sopenharmony_ci    A store to memory or atomic operation on memory from a shader
1527e5c31af7Sopenharmony_ci    invocation.
1528e5c31af7Sopenharmony_ci
1529e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1530e5c31af7Sopenharmony_ciSingle-plane format::
1531e5c31af7Sopenharmony_ci    A format that is not _multi-planar_.
1532e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
1533e5c31af7Sopenharmony_ci
1534e5c31af7Sopenharmony_ciSize-Compatible Image Formats::
1535e5c31af7Sopenharmony_ci    When a compressed image format and an uncompressed image format are
1536e5c31af7Sopenharmony_ci    size-compatible, it means that the texel block size of the uncompressed
1537e5c31af7Sopenharmony_ci    format must: equal the texel block size of the compressed format.
1538e5c31af7Sopenharmony_ci
1539e5c31af7Sopenharmony_ciSparse Block::
1540e5c31af7Sopenharmony_ci    An element of a sparse resource that can be independently bound to
1541e5c31af7Sopenharmony_ci    memory.
1542e5c31af7Sopenharmony_ci    Sparse blocks of a particular sparse resource have a corresponding size
1543e5c31af7Sopenharmony_ci    in bytes that they use in the bound memory.
1544e5c31af7Sopenharmony_ci
1545e5c31af7Sopenharmony_ciSparse Image Block::
1546e5c31af7Sopenharmony_ci    A sparse block in a sparse partially-resident image.
1547e5c31af7Sopenharmony_ci    In addition to the sparse block size in bytes, sparse image blocks have
1548e5c31af7Sopenharmony_ci    a corresponding width, height, and depth defining the dimensions of
1549e5c31af7Sopenharmony_ci    these elements in units of texels or compressed texel blocks, the latter
1550e5c31af7Sopenharmony_ci    being used in case of sparse images having a block-compressed format.
1551e5c31af7Sopenharmony_ci
1552e5c31af7Sopenharmony_ciSparse Unbound Texel::
1553e5c31af7Sopenharmony_ci    A texel read from a region of a sparse texture that does not have memory
1554e5c31af7Sopenharmony_ci    bound to it.
1555e5c31af7Sopenharmony_ci
1556e5c31af7Sopenharmony_ciifdef::VK_NV_ray_tracing_motion_blur[]
1557e5c31af7Sopenharmony_ciSRT::
1558e5c31af7Sopenharmony_ci   A decomposition of a spatial transform separating out scale, rotation,
1559e5c31af7Sopenharmony_ci   and translation which has better linear interpolation properties for
1560e5c31af7Sopenharmony_ci   representing motion.
1561e5c31af7Sopenharmony_ciendif::VK_NV_ray_tracing_motion_blur[]
1562e5c31af7Sopenharmony_ci
1563e5c31af7Sopenharmony_ciStatic Use::
1564e5c31af7Sopenharmony_ci    An object in a shader is statically used by a shader entry point if any
1565e5c31af7Sopenharmony_ci    function in the entry point's call tree contains an instruction using
1566e5c31af7Sopenharmony_ci    the object.
1567e5c31af7Sopenharmony_ci    Static use is used to constrain the set of descriptors used by a shader
1568e5c31af7Sopenharmony_ci    entry point.
1569e5c31af7Sopenharmony_ci
1570e5c31af7Sopenharmony_ciStorage Buffer::
1571e5c31af7Sopenharmony_ci    A descriptor type that represents a buffer, and supports reads, writes,
1572e5c31af7Sopenharmony_ci    and atomics in a shader.
1573e5c31af7Sopenharmony_ci
1574e5c31af7Sopenharmony_ciStorage Image::
1575e5c31af7Sopenharmony_ci    A descriptor type that represents an image view, and supports unfiltered
1576e5c31af7Sopenharmony_ci    loads, stores, and atomics in a shader.
1577e5c31af7Sopenharmony_ci
1578e5c31af7Sopenharmony_ciStorage Texel Buffer::
1579e5c31af7Sopenharmony_ci    A descriptor type that represents a buffer view, and supports
1580e5c31af7Sopenharmony_ci    unfiltered, formatted reads, writes, and atomics in a shader.
1581e5c31af7Sopenharmony_ci
1582e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_EXT_shader_subgroup_vote[]
1583e5c31af7Sopenharmony_ciSubgroup::
1584e5c31af7Sopenharmony_ci    A set of shader invocations that can: synchronize and share data with
1585e5c31af7Sopenharmony_ci    each other efficiently.
1586e5c31af7Sopenharmony_ci    In compute shaders, the _local workgroup_ is a superset of the subgroup.
1587e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_EXT_shader_subgroup_vote[]
1588e5c31af7Sopenharmony_ci
1589e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot[]
1590e5c31af7Sopenharmony_ciSubgroup Mask::
1591e5c31af7Sopenharmony_ci    A bitmask for all invocations in the current subgroup with one bit per
1592e5c31af7Sopenharmony_ci    invocation, starting with the least significant bit in the first vector
1593e5c31af7Sopenharmony_ci    component, continuing to the last bit (less than code:SubgroupSize) in
1594e5c31af7Sopenharmony_ci    the last required vector component.
1595e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot[]
1596e5c31af7Sopenharmony_ci
1597e5c31af7Sopenharmony_ciSubpass::
1598e5c31af7Sopenharmony_ci    A phase of rendering within a render pass, that reads and writes a
1599e5c31af7Sopenharmony_ci    subset of the attachments.
1600e5c31af7Sopenharmony_ci
1601e5c31af7Sopenharmony_ciSubpass Dependency::
1602e5c31af7Sopenharmony_ci    An execution and/or memory dependency between two subpasses described as
1603e5c31af7Sopenharmony_ci    part of render pass creation, and automatically performed between
1604e5c31af7Sopenharmony_ci    subpasses in a render pass instance.
1605e5c31af7Sopenharmony_ci    A subpass dependency limits the overlap of execution of the pair of
1606e5c31af7Sopenharmony_ci    subpasses, and can: provide guarantees of memory coherence between
1607e5c31af7Sopenharmony_ci    accesses in the subpasses.
1608e5c31af7Sopenharmony_ci
1609e5c31af7Sopenharmony_ciSubpass Description::
1610e5c31af7Sopenharmony_ci    Lists of attachment indices for input attachments, color attachments,
1611e5c31af7Sopenharmony_ci    depth/stencil attachment, resolve attachments,
1612e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
1613e5c31af7Sopenharmony_ci    depth/stencil resolve,
1614e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
1615e5c31af7Sopenharmony_ci    and preserve attachments used by the subpass in a render pass.
1616e5c31af7Sopenharmony_ci
1617e5c31af7Sopenharmony_ciSubset (Self-Dependency)::
1618e5c31af7Sopenharmony_ci    A subset of a self-dependency is a pipeline barrier performed during the
1619e5c31af7Sopenharmony_ci    subpass of the self-dependency, and whose stage masks and access masks
1620e5c31af7Sopenharmony_ci    each contain a subset of the bits set in the identically named mask in
1621e5c31af7Sopenharmony_ci    the self-dependency.
1622e5c31af7Sopenharmony_ci
1623e5c31af7Sopenharmony_ciTexel Block::
1624e5c31af7Sopenharmony_ci    A single addressable element of an image with an uncompressed
1625e5c31af7Sopenharmony_ci    elink:VkFormat, or a single compressed block of an image with a
1626e5c31af7Sopenharmony_ci    compressed elink:VkFormat.
1627e5c31af7Sopenharmony_ci
1628e5c31af7Sopenharmony_ciTexel Block Size::
1629e5c31af7Sopenharmony_ci    The size (in bytes) used to store a texel block of a compressed or
1630e5c31af7Sopenharmony_ci    uncompressed image.
1631e5c31af7Sopenharmony_ci
1632e5c31af7Sopenharmony_ciTexel Coordinate System::
1633e5c31af7Sopenharmony_ci    One of three coordinate systems (normalized, unnormalized, integer)
1634e5c31af7Sopenharmony_ci    defining how texel coordinates are interpreted in an image or a specific
1635e5c31af7Sopenharmony_ci    mipmap level of an image.
1636e5c31af7Sopenharmony_ci
1637e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
1638e5c31af7Sopenharmony_ciTimeline Semaphore::
1639e5c31af7Sopenharmony_ci    A semaphore with a strictly increasing 64-bit unsigned integer payload
1640e5c31af7Sopenharmony_ci    indicating whether the semaphore is signaled with respect to a
1641e5c31af7Sopenharmony_ci    particular reference value.
1642e5c31af7Sopenharmony_ci    Represented by a slink:VkSemaphore object created with a semaphore type
1643e5c31af7Sopenharmony_ci    of ename:VK_SEMAPHORE_TYPE_TIMELINE.
1644e5c31af7Sopenharmony_ciendif::VK_VERSION_1_2,VK_KHR_timeline_semaphore[]
1645e5c31af7Sopenharmony_ci
1646e5c31af7Sopenharmony_ciUniform Texel Buffer::
1647e5c31af7Sopenharmony_ci    A descriptor type that represents a buffer view, and supports
1648e5c31af7Sopenharmony_ci    unfiltered, formatted, read-only access in a shader.
1649e5c31af7Sopenharmony_ci
1650e5c31af7Sopenharmony_ciUniform Buffer::
1651e5c31af7Sopenharmony_ci    A descriptor type that represents a buffer, and supports read-only
1652e5c31af7Sopenharmony_ci    access in a shader.
1653e5c31af7Sopenharmony_ci
1654e5c31af7Sopenharmony_ciUnits in the Last Place (ULP)::
1655e5c31af7Sopenharmony_ci    A measure of floating-point error loosely defined as the smallest
1656e5c31af7Sopenharmony_ci    representable step in a floating-point format near a given value.
1657e5c31af7Sopenharmony_ci    For the precise definition see <<spirvenv-precision-operation, Precision
1658e5c31af7Sopenharmony_ci    and Operation of SPIR-V instructions>> or Jean-Michel Muller, "`On the
1659e5c31af7Sopenharmony_ci    definition of ulp(x)`", RR-5504, INRIA.
1660e5c31af7Sopenharmony_ci    Other sources may also use the term "`unit of least precision`".
1661e5c31af7Sopenharmony_ci
1662e5c31af7Sopenharmony_ciUnnormalized::
1663e5c31af7Sopenharmony_ci    A value that is interpreted according to its conventional
1664e5c31af7Sopenharmony_ci    interpretation, and is not normalized.
1665e5c31af7Sopenharmony_ci
1666e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1[]
1667e5c31af7Sopenharmony_ciUnprotected Buffer::
1668e5c31af7Sopenharmony_ci    A buffer to which unprotected device memory can: be bound.
1669e5c31af7Sopenharmony_ci
1670e5c31af7Sopenharmony_ciUnprotected Command Buffer::
1671e5c31af7Sopenharmony_ci    A command buffer which can: be submitted to an unprotected device queue
1672e5c31af7Sopenharmony_ci    or a protected-capable device queue.
1673e5c31af7Sopenharmony_ci
1674e5c31af7Sopenharmony_ciUnprotected Device Memory::
1675e5c31af7Sopenharmony_ci    Device memory which can: be visible to the device and can: be visible to
1676e5c31af7Sopenharmony_ci    the host.
1677e5c31af7Sopenharmony_ci
1678e5c31af7Sopenharmony_ciUnprotected Image::
1679e5c31af7Sopenharmony_ci    An image to which unprotected device memory can: be bound.
1680e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1[]
1681e5c31af7Sopenharmony_ci
1682e5c31af7Sopenharmony_ciUser-Defined Variable Interface::
1683e5c31af7Sopenharmony_ci    A shader entry point's variables with code:Input or code:Output storage
1684e5c31af7Sopenharmony_ci    class that are not built-in variables.
1685e5c31af7Sopenharmony_ci
1686e5c31af7Sopenharmony_ciVertex Input Attribute::
1687e5c31af7Sopenharmony_ci    A graphics pipeline resource that produces input values for the vertex
1688e5c31af7Sopenharmony_ci    shader by reading data from a vertex input binding and converting it to
1689e5c31af7Sopenharmony_ci    the attribute's format.
1690e5c31af7Sopenharmony_ci
1691e5c31af7Sopenharmony_ciifdef::VK_EXT_transform_feedback[]
1692e5c31af7Sopenharmony_ciVertex Stream::
1693e5c31af7Sopenharmony_ci    A vertex stream is where the last
1694e5c31af7Sopenharmony_ci    <<pipeline-graphics-subsets-pre-rasterization,pre-rasterization shader
1695e5c31af7Sopenharmony_ci    stages>> outputs vertex data, which then goes to the rasterizer, is
1696e5c31af7Sopenharmony_ci    captured to a transform feedback buffer, or both.
1697e5c31af7Sopenharmony_ci    Geometry shaders can: emit primitives to multiple independent vertex
1698e5c31af7Sopenharmony_ci    streams.
1699e5c31af7Sopenharmony_ci    Each vertex emitted by the geometry shader is directed at one of the
1700e5c31af7Sopenharmony_ci    vertex streams.
1701e5c31af7Sopenharmony_ciendif::VK_EXT_transform_feedback[]
1702e5c31af7Sopenharmony_ci
1703e5c31af7Sopenharmony_ciifdef::VK_EXT_validation_cache[]
1704e5c31af7Sopenharmony_ciValidation Cache::
1705e5c31af7Sopenharmony_ci    An object that can: be used to collect and retrieve validation results
1706e5c31af7Sopenharmony_ci    from the validation layers, and can: be populated with previously
1707e5c31af7Sopenharmony_ci    retrieved results in order to accelerate the validation process.
1708e5c31af7Sopenharmony_ci    Represented by a slink:VkValidationCacheEXT object.
1709e5c31af7Sopenharmony_ciendif::VK_EXT_validation_cache[]
1710e5c31af7Sopenharmony_ci
1711e5c31af7Sopenharmony_ciVertex Input Binding::
1712e5c31af7Sopenharmony_ci    A graphics pipeline resource that is bound to a buffer and includes
1713e5c31af7Sopenharmony_ci    state that affects addressing calculations within that buffer.
1714e5c31af7Sopenharmony_ci
1715e5c31af7Sopenharmony_ciVertex Input Interface::
1716e5c31af7Sopenharmony_ci    A vertex shader entry point's variables with code:Input storage class,
1717e5c31af7Sopenharmony_ci    which receive values from vertex input attributes.
1718e5c31af7Sopenharmony_ci
1719e5c31af7Sopenharmony_ciifdef::VK_VERSION_1_1,VK_KHR_multiview[]
1720e5c31af7Sopenharmony_ciView Mask::
1721e5c31af7Sopenharmony_ci    When multiview is enabled, a view mask is a property of a subpass
1722e5c31af7Sopenharmony_ci    controlling which views the rendering commands are broadcast to.
1723e5c31af7Sopenharmony_ciendif::VK_VERSION_1_1,VK_KHR_multiview[]
1724e5c31af7Sopenharmony_ci
1725e5c31af7Sopenharmony_ciView Volume::
1726e5c31af7Sopenharmony_ci    A subspace in homogeneous coordinates, corresponding to post-projection
1727e5c31af7Sopenharmony_ci    x and y values between -1 and +1, and z values between 0 and +1.
1728e5c31af7Sopenharmony_ci
1729e5c31af7Sopenharmony_ciViewport Transformation::
1730e5c31af7Sopenharmony_ci    A transformation from normalized device coordinates to framebuffer
1731e5c31af7Sopenharmony_ci    coordinates, based on a viewport rectangle and depth range.
1732e5c31af7Sopenharmony_ci
1733e5c31af7Sopenharmony_ciVisibility Operation::
1734e5c31af7Sopenharmony_ci    An operation that causes available values to become visible to specified
1735e5c31af7Sopenharmony_ci    memory accesses.
1736e5c31af7Sopenharmony_ci
1737e5c31af7Sopenharmony_ciVisible::
1738e5c31af7Sopenharmony_ci    A state of values written to memory that allows them to be accessed by a
1739e5c31af7Sopenharmony_ci    set of operations.
1740e5c31af7Sopenharmony_ci
1741e5c31af7Sopenharmony_ci// To be added per issue 18:
1742e5c31af7Sopenharmony_ci// Current State <<fundamentals-queueoperation>>
1743e5c31af7Sopenharmony_ci// Barycentric Coordinates <<primsrast-polygons-basic>>
1744e5c31af7Sopenharmony_ci// Internal Allocations <<memory-host-allocation-scope>>
1745e5c31af7Sopenharmony_ci// Unavailable, Available <<queries-operation>> - NB: this clashes with available/visible in terms of memory
1746e5c31af7Sopenharmony_ci// Signaled, Unsignaled <<synchronization-semaphores>> <<synchronization-fences>>
1747e5c31af7Sopenharmony_ci// Interior Vertices <<tessellation-tessellator-spacing>>
1748e5c31af7Sopenharmony_ci// Inner Vertices <<tessellation-triangle-tessellation>> <<tessellation-quad-tessellation>>
1749e5c31af7Sopenharmony_ci// Isolines <<tessellation-isoline-tessellation>>
1750e5c31af7Sopenharmony_ci// Binding Range <<sparsemem-memory-binding>>
1751e5c31af7Sopenharmony_ci
1752e5c31af7Sopenharmony_ci
1753e5c31af7Sopenharmony_ci[[lexicon-common-abbreviations]]
1754e5c31af7Sopenharmony_ci== Common Abbreviations
1755e5c31af7Sopenharmony_ci
1756e5c31af7Sopenharmony_ciThe abbreviations and acronyms defined in this section are sometimes used in
1757e5c31af7Sopenharmony_cithe Specification and the API where they are considered clear and
1758e5c31af7Sopenharmony_cicommonplace.
1759e5c31af7Sopenharmony_ci
1760e5c31af7Sopenharmony_ciSrc::
1761e5c31af7Sopenharmony_ci    Source
1762e5c31af7Sopenharmony_ci
1763e5c31af7Sopenharmony_ciDst::
1764e5c31af7Sopenharmony_ci    Destination
1765e5c31af7Sopenharmony_ci
1766e5c31af7Sopenharmony_ciMin::
1767e5c31af7Sopenharmony_ci    Minimum
1768e5c31af7Sopenharmony_ci
1769e5c31af7Sopenharmony_ciMax::
1770e5c31af7Sopenharmony_ci    Maximum
1771e5c31af7Sopenharmony_ci
1772e5c31af7Sopenharmony_ciRect::
1773e5c31af7Sopenharmony_ci    Rectangle
1774e5c31af7Sopenharmony_ci
1775e5c31af7Sopenharmony_ciInfo::
1776e5c31af7Sopenharmony_ci    Information
1777e5c31af7Sopenharmony_ci
1778e5c31af7Sopenharmony_ciLOD::
1779e5c31af7Sopenharmony_ci    Level of Detail
1780e5c31af7Sopenharmony_ci
1781e5c31af7Sopenharmony_ciID::
1782e5c31af7Sopenharmony_ci    Identifier
1783e5c31af7Sopenharmony_ci
1784e5c31af7Sopenharmony_ciUUID::
1785e5c31af7Sopenharmony_ci    Universally Unique Identifier
1786e5c31af7Sopenharmony_ci
1787e5c31af7Sopenharmony_ciOp::
1788e5c31af7Sopenharmony_ci    Operation
1789e5c31af7Sopenharmony_ci
1790e5c31af7Sopenharmony_ciR::
1791e5c31af7Sopenharmony_ci    Red color component
1792e5c31af7Sopenharmony_ci
1793e5c31af7Sopenharmony_ciG::
1794e5c31af7Sopenharmony_ci    Green color component
1795e5c31af7Sopenharmony_ci
1796e5c31af7Sopenharmony_ciB::
1797e5c31af7Sopenharmony_ci    Blue color component
1798e5c31af7Sopenharmony_ci
1799e5c31af7Sopenharmony_ciA::
1800e5c31af7Sopenharmony_ci    Alpha color component
1801e5c31af7Sopenharmony_ci
1802e5c31af7Sopenharmony_ciRTZ::
1803e5c31af7Sopenharmony_ci    Round towards zero
1804e5c31af7Sopenharmony_ci
1805e5c31af7Sopenharmony_ciRTE::
1806e5c31af7Sopenharmony_ci    Round to nearest even
1807e5c31af7Sopenharmony_ci
1808e5c31af7Sopenharmony_ci
1809e5c31af7Sopenharmony_ci[[lexicon-prefixes]]
1810e5c31af7Sopenharmony_ci== Prefixes
1811e5c31af7Sopenharmony_ci
1812e5c31af7Sopenharmony_ciPrefixes are used in the API to denote specific semantic meaning of Vulkan
1813e5c31af7Sopenharmony_cinames, or as a label to avoid name clashes, and are explained here:
1814e5c31af7Sopenharmony_ci
1815e5c31af7Sopenharmony_ciVK/Vk/vk::
1816e5c31af7Sopenharmony_ci    Vulkan namespace +
1817e5c31af7Sopenharmony_ci    All types, commands, enumerants and defines in this specification are
1818e5c31af7Sopenharmony_ci    prefixed with these two characters.
1819e5c31af7Sopenharmony_ci
1820e5c31af7Sopenharmony_ciPFN/pfn::
1821e5c31af7Sopenharmony_ci    Function Pointer +
1822e5c31af7Sopenharmony_ci    Denotes that a type is a function pointer, or that a variable is of a
1823e5c31af7Sopenharmony_ci    pointer type.
1824e5c31af7Sopenharmony_ci
1825e5c31af7Sopenharmony_cip::
1826e5c31af7Sopenharmony_ci    Pointer +
1827e5c31af7Sopenharmony_ci    Variable is a pointer.
1828e5c31af7Sopenharmony_ci
1829e5c31af7Sopenharmony_civkCmd::
1830e5c31af7Sopenharmony_ci    Commands that record commands in command buffers +
1831e5c31af7Sopenharmony_ci    These API commands do not result in immediate processing on the device.
1832e5c31af7Sopenharmony_ci    Instead, they record the requested action in a command buffer for
1833e5c31af7Sopenharmony_ci    execution when the command buffer is submitted to a queue.
1834e5c31af7Sopenharmony_ci
1835e5c31af7Sopenharmony_cis::
1836e5c31af7Sopenharmony_ci    Structure +
1837e5c31af7Sopenharmony_ci    Used to denote the etext:VK_STRUCTURE_TYPE* member of each structure in
1838e5c31af7Sopenharmony_ci    pname:sType
1839