mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-22 11:08:19 +00:00
Merge branch '1.0' into 1.0-VK_KHR_xlib_surface
Conflicts: doc/specs/vulkan/vkapi.py src/spec/genvk.py
This commit is contained in:
commit
301c08c9c7
@ -126,7 +126,7 @@ INCLUDES := $(wildcard protos/*.txt structs/*.txt flags/*.txt enums/*.txt funcpo
|
||||
COMMONDOCS := $(CHAPTERS) $(INCLUDES)
|
||||
# A generate included file with the spec version, date, and git commit
|
||||
SPECVERSION = specversion.txt
|
||||
SPECREVISION = 1.0
|
||||
SPECREVISION = 1.0.4
|
||||
SPECREMARK =
|
||||
|
||||
# Spec targets
|
||||
|
@ -0,0 +1,59 @@
|
||||
== VK_KHR_sampler_mirror_clamp_to_edge
|
||||
|
||||
*Name String*:: VK_KHR_sampler_mirror_clamp_to_edge
|
||||
*Extension Type*:: Device extension
|
||||
*Registered Extension Number*:: 15
|
||||
*Status*:: Final
|
||||
*Last Modified Date*:: 16/02/2016
|
||||
*Revision*:: 1
|
||||
*Dependencies*::
|
||||
- This extension is written against version 1.0. of the {apiname} API.
|
||||
*Contributors*::
|
||||
- Tobias Hector, Imagination Technologies
|
||||
*Contacts*::
|
||||
- Tobias Hector (tobias.hector@imgtec.com)
|
||||
|
||||
VK_KHR_sampler_mirror_clamp_to_edge extends the set of sampler address modes to
|
||||
include an additional mode (ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE)
|
||||
that effectively uses a texture map twice as large as the original image in
|
||||
which the additional half of the new image is a mirror image of the original
|
||||
image.
|
||||
|
||||
This new mode relaxes the need to generate images whose opposite edges
|
||||
match by using the original image to generate a matching "mirror image".
|
||||
This mode allows the texture to be mirrored only once in the negative
|
||||
s, t, and r directions.
|
||||
|
||||
=== New Enum Constants
|
||||
|
||||
* Extending ename:VkSamplerAddressMode:
|
||||
** ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
|
||||
|
||||
=== Example
|
||||
|
||||
Creating a sampler with the new address mode in each dimension
|
||||
|
||||
|
||||
[source,{basebackend@docbook:C++:cpp}]
|
||||
----------------------------------------
|
||||
VkSamplerCreateInfo createInfo =
|
||||
{
|
||||
VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO // sType
|
||||
// Other members set to application-desired values
|
||||
};
|
||||
|
||||
createInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
||||
createInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
||||
createInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
||||
|
||||
VkSampler sampler;
|
||||
VkResult result = vkCreateSampler(
|
||||
device,
|
||||
&createInfo,
|
||||
&sampler);
|
||||
----------------------------------------
|
||||
|
||||
=== Version History
|
||||
|
||||
* Revision 1, 2016-02-16 (Tobias Hector)
|
||||
- Initial draft
|
@ -76,7 +76,7 @@ use of any other state value is not affected by the change):_
|
||||
* _Pixel storage state_
|
||||
|
||||
*Corollary 1* _Fragment generation is invariant with respect to the state
|
||||
values marked with * in Rule 2._
|
||||
values listed in Rule 2._
|
||||
|
||||
*Rule 3* _The arithmetic of each per-fragment operation is invariant except
|
||||
with respect to parameters that directly control it._
|
||||
|
@ -203,13 +203,15 @@ include::../protos/vkResetCommandBuffer.txt[]
|
||||
can: be in any state, and is put in the initial state.
|
||||
* pname:flags is of type elink:VkCommandBufferResetFlags:
|
||||
+
|
||||
--
|
||||
include::../enums/VkCommandBufferResetFlagBits.txt[]
|
||||
+
|
||||
|
||||
If pname:flags includes ename:VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,
|
||||
then most or all memory resources currently owned by the command buffer
|
||||
should: be returned to the parent command pool. If this flag is not set,
|
||||
then the command buffer may: hold onto memory resources and reuse them when
|
||||
recording commands.
|
||||
--
|
||||
|
||||
include::../validity/protos/vkResetCommandBuffer.txt[]
|
||||
|
||||
|
@ -503,7 +503,7 @@ attachment index in addition to descriptor set and binding numbers.
|
||||
.GLSL example
|
||||
[source,{basebackend@docbook:c:glsl}]
|
||||
---------------------------------------------------
|
||||
layout (input_attachment_index=i, set=m, binding=n) uniform subpass myInputAttachment;
|
||||
layout (input_attachment_index=i, set=m, binding=n) uniform subpassInput myInputAttachment;
|
||||
---------------------------------------------------
|
||||
|
||||
.SPIR-V example
|
||||
|
@ -23,13 +23,20 @@ include::../protos/vkEnumeratePhysicalDevices.txt[]
|
||||
|
||||
* pname:instance is a handle to a {apiname} instance previously created
|
||||
with fname:vkCreateInstance.
|
||||
* If pname:pPhysicalDevices is `NULL`, the number of physical devices
|
||||
available is returned in pname:pPhysicalDeviceCount. If
|
||||
pname:pPhysicalDevices is not `NULL`,
|
||||
* pname:pPhysicalDeviceCount must: point to a variable set by the user to
|
||||
the size of the array pointed to by pname:pPhysicalDevices, and is
|
||||
overwritten with the number of physical devices actually written to
|
||||
pname:pPhysicalDevices.
|
||||
* pname:pPhysicalDeviceCount is a pointer to an integer related to the
|
||||
number of physical devices available or queried, as described below.
|
||||
* pname:pPhysicalDevices is either `NULL` or a pointer to an
|
||||
array of sname:VkPhysicalDevice structures.
|
||||
|
||||
If pname:pPhysicalDevices is `NULL`, then the number of physical devices
|
||||
available is returned in pname:pPhysicalDeviceCount. Otherwise,
|
||||
pname:pPhysicalDeviceCount must: point to a variable set by the user to
|
||||
the number of elements in the pname:pPhysicalDevices array, and on
|
||||
return the variable is overwritten with the number of structures actually
|
||||
written to pname:pPhysicalDevices. If the value of
|
||||
pname:pPhysicalDeviceCount is less than the number of physical devices
|
||||
available, at most pname:pPhysicalDeviceCount structures will be
|
||||
written.
|
||||
|
||||
include::../validity/protos/vkEnumeratePhysicalDevices.txt[]
|
||||
|
||||
@ -142,7 +149,7 @@ include::../protos/vkGetPhysicalDeviceQueueFamilyProperties.txt[]
|
||||
* pname:pQueueFamilyPropertyCount is a pointer to an integer related to
|
||||
the number of queue families available or queried, as described below.
|
||||
* pname:pQueueFamilyProperties is either `NULL` or a pointer to an array
|
||||
of sname:VkQueueFamilyProperties structures.
|
||||
of slink:VkQueueFamilyProperties structures.
|
||||
|
||||
If pname:pQueueFamilyProperties is `NULL`, then the number of queue families
|
||||
available is returned in pname:pQueueFamilyPropertyCount. Otherwise,
|
||||
|
@ -427,7 +427,8 @@ include::../protos/vkCmdDrawIndexed.txt[]
|
||||
* pname:indexCount is the number of vertices to draw.
|
||||
* pname:instanceCount is the number of instances to draw.
|
||||
* pname:firstIndex is the base index within the index buffer.
|
||||
* pname:vertexOffset is the base offset within the index buffer.
|
||||
* pname:vertexOffset is the value added to the vertex index before indexing
|
||||
into the vertex buffer.
|
||||
* pname:firstInstance is the instance ID of the first instance to draw.
|
||||
|
||||
When the command is executed, primitives are assembled using the current
|
||||
|
@ -36,11 +36,10 @@ To query the available instance layers, call:
|
||||
|
||||
include::../protos/vkEnumerateInstanceLayerProperties.txt[]
|
||||
|
||||
* pname:pPropertyCount is the number of layer properties that can be
|
||||
returned in pname:pProperties.
|
||||
* pname:pProperties is an array of slink:VkLayerProperties structures in
|
||||
which properties of instance layers available on this implementation are
|
||||
returned.
|
||||
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||
layer properties available or queried, as described below.
|
||||
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||
slink:VkLayerProperties structures.
|
||||
|
||||
include::../validity/protos/vkEnumerateInstanceLayerProperties.txt[]
|
||||
|
||||
@ -53,11 +52,10 @@ To query the layers available to a given physical device, call:
|
||||
include::../protos/vkEnumerateDeviceLayerProperties.txt[]
|
||||
|
||||
* pname:physicalDevice is the physical device that will be queried.
|
||||
* pname:pPropertyCount is the number of layer properties that can be
|
||||
returned in pname:pProperties.
|
||||
* pname:pProperties is an array of slink:VkLayerProperties structures in
|
||||
which properties of layers available on pname:physicalDevice are
|
||||
returned.
|
||||
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||
layer properties available or queried, as described below.
|
||||
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||
slink:VkLayerProperties structures.
|
||||
|
||||
include::../validity/protos/vkEnumerateDeviceLayerProperties.txt[]
|
||||
|
||||
@ -65,17 +63,18 @@ To enable a device layer, the name of the layer should be added to the
|
||||
pname:ppEnabledLayerNames member of slink:VkDeviceCreateInfo when creating
|
||||
a slink:VkDevice.
|
||||
|
||||
Both commands will return an array of sname:VkLayerProperties of the
|
||||
respective instance or device layers present. Calling
|
||||
fname:vkEnumerateInstanceLayerProperties or
|
||||
fname:vkEnumerateDeviceLayerProperties with pname:pProperties set to `NULL`
|
||||
will return the number of supported layers in the basetype:uint32_t variable
|
||||
pointed to by pname:pPropertyCount. If pname:pProperties is not set to
|
||||
`NULL`, the query will fill the array and update pname:pPropertyCount to
|
||||
indicate the number of sname:VkLayerProperties filled in. If
|
||||
pname:pPropertyCount is smaller than the number of layers available,
|
||||
ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS, to
|
||||
indicate that not all the available properties were returned.
|
||||
For both flink:vkEnumerateInstanceLayerProperties and
|
||||
flink:vkEnumerateDeviceLayerProperties, if pname:pProperties is `NULL`, then
|
||||
the number of layer properties available is returned in pname:pPropertyCount.
|
||||
Otherwise, pname:pPropertyCount must: point to a variable set by the user to
|
||||
the number of elements in the pname:pProperties array, and on return the
|
||||
variable is overwritten with the number of structures actually written to
|
||||
pname:pProperties. If the value of pname:pPropertyCount is less than the
|
||||
number of layer properties available, at most pname:pPropertyCount
|
||||
structures will be written. If pname:pPropertyCount is smaller than the
|
||||
number of layers available, ename:VK_INCOMPLETE will be returned instead of
|
||||
ename:VK_SUCCESS, to indicate that not all the available properties were
|
||||
returned.
|
||||
|
||||
The definition of sname:VkLayerProperties is:
|
||||
|
||||
@ -123,14 +122,14 @@ include::../protos/vkEnumerateInstanceExtensionProperties.txt[]
|
||||
|
||||
* pname:pLayerName is either `NULL` or the name of a instance layer to
|
||||
retrieve extensions from.
|
||||
* pname:pPropertyCount is the number of extension properties that can be
|
||||
returned in pname:pProperties.
|
||||
* pname:pProperties is an array of slink:VkExtensionProperties structures
|
||||
in which properties of instance extensions available on this
|
||||
implementation are returned.
|
||||
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||
extension properties available or queried, as described below.
|
||||
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||
slink:VkExtensionProperties structures.
|
||||
|
||||
include::../validity/protos/vkEnumerateInstanceExtensionProperties.txt[] Any
|
||||
instance extensions provided by the {apiname} implementation or by
|
||||
include::../validity/protos/vkEnumerateInstanceExtensionProperties.txt[]
|
||||
|
||||
Any instance extensions provided by the {apiname} implementation or by
|
||||
implicitly enabled layers, but not by explicitly enabled layers, are
|
||||
returned when pname:pLayerName parameter is `NULL`. When pname:pLayerName is
|
||||
the name of a layer, the instance extensions provided by that layer are
|
||||
@ -147,11 +146,10 @@ include::../protos/vkEnumerateDeviceExtensionProperties.txt[]
|
||||
* pname:physicalDevice is the physical device that will be queried.
|
||||
* pname:pLayerName is either `NULL` or the name of a device layer to
|
||||
retrieve extensions from.
|
||||
* pname:pPropertyCount is the number of extension properties that can be
|
||||
returned in pname:pProperties.
|
||||
* pname:pProperties is an array of slink:VkExtensionProperties structures
|
||||
in which properties of extensions available on pname:physicalDevice are
|
||||
returned.
|
||||
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||
extension properties available or queried, as described below.
|
||||
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||
slink:VkExtensionProperties structures.
|
||||
|
||||
include::../validity/protos/vkEnumerateDeviceExtensionProperties.txt[]
|
||||
|
||||
@ -165,21 +163,18 @@ To enable a device layer, the name of the layer should be added to the
|
||||
pname:ppEnabledExtensionNames member of slink:VkDeviceCreateInfo when
|
||||
creating a slink:VkDevice.
|
||||
|
||||
Both commands return an array of sname:VkExtensionProperties
|
||||
for any extensions implemented by the given pname:pLayerName.
|
||||
Set pname:pLayerName to `NULL` to query for extensions not part of any
|
||||
layer. Calling fname:vkEnumerateInstanceExtensionProperties or
|
||||
fname:vkEnumerateDeviceExtensionProperties with pname:pProperties set to
|
||||
`NULL` will return the count of extensions for the given layer in the
|
||||
basetype:uint32_t variable pointed to by pname:pPropertyCount. With
|
||||
pname:pProperties pointing to an array of sname:VkExtensionProperties,
|
||||
fname:vkEnumerateInstanceExtensionProperties
|
||||
and fname:vkEnumerateDeviceExtensionProperties will fill the array and
|
||||
update the count to indicate the number of sname:VkExtensionProperties
|
||||
filled in. If the provided count is smaller than the number of extensions
|
||||
available, ename:VK_INCOMPLETE will be returned
|
||||
instead of ename:VK_SUCCESS to indicate that not all the
|
||||
available properties were returned.
|
||||
For both flink:vkEnumerateInstanceExtensionProperties and
|
||||
flink:vkEnumerateDeviceExtensionProperties, if pname:pProperties is `NULL`,
|
||||
then the number of extensions properties available is returned in
|
||||
pname:pPropertyCount. Otherwise, pname:pPropertyCount must: point to a
|
||||
variable set by the user to the number of elements in the pname:pProperties
|
||||
array, and on return the variable is overwritten with the number of
|
||||
structures actually written to pname:pProperties. If the value of
|
||||
pname:pPropertyCount is less than the number of extension properties
|
||||
available, at most pname:pPropertyCount structures will be written. If
|
||||
pname:pPropertyCount is smaller than the number of extensions available,
|
||||
ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS, to
|
||||
indicate that not all the available properties were returned.
|
||||
|
||||
The definition of sname:VkExtensionProperties is:
|
||||
|
||||
|
@ -979,7 +979,7 @@ different equations in the spec).
|
||||
subpixel precision that floating-point viewport bounds are interpreted
|
||||
at is given by this limit.
|
||||
* [[features-limits-minMemoryMapAlignment]] pname:minMemoryMapAlignment is
|
||||
the minimum required alignment, in bytes, of host-visible memory
|
||||
the minimum required alignment, in bytes, of host visible memory
|
||||
allocations within the host address space. When mapping a memory
|
||||
allocation with flink:vkMapMemory, subtracting pname:offset bytes from
|
||||
the returned pointer will always produce an integer multiple of this
|
||||
|
@ -42,12 +42,16 @@ advertise one or more heaps, representing different areas of memory. Memory
|
||||
heaps are either device local or host local, but are always visible to the
|
||||
device. Further detail about memory heaps is exposed via memory types
|
||||
available on that heap. Examples of memory areas that may: be available on
|
||||
an implementation include _device local_ (memory that is physically
|
||||
connected to the device), _device local, host visible_ (device local memory
|
||||
that is visible to the host) and _host local, host visible_ (memory that is
|
||||
local to the host and visible to the device and host). On other
|
||||
architectures, there may: only be a single heap that can: be used for any
|
||||
purpose.
|
||||
an implementation include:
|
||||
|
||||
* _device local_ is memory that is physically connected to the device.
|
||||
* _device local, host visible_ is device local memory that is visible to
|
||||
the host.
|
||||
* _host local, host visible_ is memory that is local to the host and
|
||||
visible to the device and host.
|
||||
|
||||
On other architectures, there may: only be a single heap that can: be used
|
||||
for any purpose.
|
||||
|
||||
A {apiname} application controls a set of devices through the submission of
|
||||
command buffers which have recorded device commands issued via {apiname}
|
||||
@ -73,8 +77,9 @@ the responsibility of the application.
|
||||
{apiname} queues provide an interface to the execution engines of a device.
|
||||
Commands are recorded into command buffers ahead of execution time.
|
||||
These command buffers are then submitted to queues for execution. Command
|
||||
buffers submitted to a single queue play back the commands in the order
|
||||
they were recorded, both within and across command buffer boundaries.
|
||||
buffers submitted to a single queue are played back in the order they were
|
||||
submitted, and commands within each buffer are played back in the order they
|
||||
were recorded.
|
||||
Work performed by those commands respects the ordering guarantees provided
|
||||
by explicit and implicit dependencies, as described below. Work submitted
|
||||
to separate queues may: execute in any relative order unless otherwise
|
||||
@ -206,7 +211,7 @@ There are two classes of handles, dispatchable and non-dispatchable.
|
||||
_Dispatchable_ handle types are a pointer to an opaque type. This pointer
|
||||
may: be used by layers as part of intercepting API commands, and thus each
|
||||
API command takes a dispatchable type as its first parameter. Each object of
|
||||
a dispatchable type has a unique handle value.
|
||||
a dispatchable type must: have a unique handle value during its lifetime.
|
||||
|
||||
_Non-dispatchable_ handle types are a 64-bit integer type whose meaning is
|
||||
implementation-dependent, and may: encode object information directly in the
|
||||
@ -301,7 +306,7 @@ reset, then it can: be used as if it never used the freed object. An
|
||||
exception to this is when there is a parent/child relationship between
|
||||
objects. In this case, the application mustnot: destroy a parent object
|
||||
before its children, except when the parent is explicitly defined to free
|
||||
its children when it is destroyed (i.e. for pool objects, as defined below).
|
||||
its children when it is destroyed (e.g. for pool objects, as defined below).
|
||||
|
||||
sname:VkCommandPool objects are parents of sname:VkCommandBuffer objects.
|
||||
sname:VkDescriptorPool objects are parents of sname:VkDescriptorSet objects.
|
||||
@ -520,19 +525,19 @@ by the command, and all fundamental types accessed through the pointer (e.g.
|
||||
as elements of an array or as members of a structure) satisfy the alignment
|
||||
requirements of the host processor.
|
||||
|
||||
Any parameter that is an enumerant must: be a valid value for that enumerant
|
||||
type. A value is valid for an enumerant if:
|
||||
Any parameter of an enumerated type must: be a valid enumerant for that
|
||||
type. A enumerant is valid if:
|
||||
|
||||
* The value is defined as part of the enumerant type.
|
||||
* The value is not one of the special values defined for an enumerant
|
||||
type, which are suffixed with etext:_BEGIN_RANGE, etext:_END_RANGE,
|
||||
etext:_RANGE_SIZE or etext:_MAX_ENUM.
|
||||
* The enumerant is defined as part of the enumerated type.
|
||||
* The enumerant is not one of the special values defined for the
|
||||
enumerated type, which are suffixed with etext:_BEGIN_RANGE,
|
||||
etext:_END_RANGE, etext:_RANGE_SIZE or etext:_MAX_ENUM.
|
||||
|
||||
Any parameter that is a flag value must: be a valid combination of bit
|
||||
flags. A valid combination is either zero or the bitwise OR of valid bit
|
||||
flags. A bit flag is valid if:
|
||||
|
||||
* The value is defined as part of the bits type, where the bits type is
|
||||
* The flag is defined as part of the bits type, where the bits type is
|
||||
obtained by taking the flag type and replacing the trailing etext:Flags
|
||||
with etext:FlagBits. For example, a flag value of type
|
||||
elink:VkColorComponentFlags must: contain only values selected from the
|
||||
|
@ -94,7 +94,10 @@ http://github.com/KhronosGroup/Vulkan-Docs
|
||||
|
||||
Please tag issues with appropriate labels, such as ``Specification'',
|
||||
``Ref Pages'' or ``Registry'', to help us triage and assign them
|
||||
appropriately.
|
||||
appropriately. Unfortunately, Github does not currently let users who do not
|
||||
have write access to the repository set Github labels on issues. In the
|
||||
meantime, they can be added to the title line of the issue set in brackets,
|
||||
e.g. ''[Specification]''.
|
||||
|
||||
|
||||
[[introduction-terminology]]
|
||||
|
@ -817,7 +817,7 @@ include::../protos/vkCmdNextSubpass.txt[]
|
||||
|
||||
* pname:commandBuffer is the command buffer in which to record the
|
||||
command.
|
||||
* pname:contents specifies how the commands in the first subpass will be
|
||||
* pname:contents specifies how the commands in the next subpass will be
|
||||
provided, in the same fashion as the corresponding parameter of
|
||||
flink:vkCmdBeginRenderPass.
|
||||
|
||||
|
@ -42,7 +42,7 @@ include::../enums/VkFilter.txt[]
|
||||
* pname:minFilter is the minification filter to apply to lookups, and is
|
||||
of type elink:VkFilter.
|
||||
* pname:mipmapMode is the mipmap filter to apply to lookups as described
|
||||
in the <<texture-texel-filtering, Texel Filtering>> section, and is of
|
||||
in the <<textures-texel-filtering, Texel Filtering>> section, and is of
|
||||
type:
|
||||
+
|
||||
--
|
||||
@ -61,7 +61,7 @@ include::../enums/VkSamplerMipmapMode.txt[]
|
||||
Level-of-Detail Operation>> section.
|
||||
* [[samplers-maxAnisotropy]] pname:anisotropyEnable is ename:VK_TRUE to
|
||||
enable anisotropic filtering, as described in the
|
||||
<<texture-anisotropic-texel-selection, Anisotropic Texel Selection>>
|
||||
<<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>>
|
||||
section, or ename:VK_FALSE otherwise.
|
||||
* pname:maxAnisotropy is the anisotropy value clamp.
|
||||
* pname:compareEnable is ename:VK_TRUE to enable comparison against a
|
||||
@ -69,14 +69,14 @@ include::../enums/VkSamplerMipmapMode.txt[]
|
||||
** Note: Some implementations will default to shader state if this member
|
||||
does not match.
|
||||
* pname:compareOp is the comparison function to apply to fetched data
|
||||
before filtering as described in the <<texture-depth-compare-operation,
|
||||
before filtering as described in the <<textures-depth-compare-operation,
|
||||
Depth Compare Operation>> section. See elink:VkCompareOp.
|
||||
* pname:minLod and pname:maxLod are the values used to clamp the computed
|
||||
level-of-detail value, as described in the
|
||||
<<textures-level-of-detail-operation, Level-of-Detail Operation>>
|
||||
section. pname:maxLod must: be greater than or equal to pname:minLod.
|
||||
* pname:borderColor is the predefined border color to use, as described
|
||||
in the <<texture-texel-replacement, Texel Replacement>>
|
||||
in the <<textures-texel-replacement, Texel Replacement>>
|
||||
section, and is of type:
|
||||
+
|
||||
--
|
||||
@ -146,7 +146,7 @@ include::../enums/VkSamplerAddressMode.txt[]
|
||||
|
||||
These values control the behavior of sampling with coordinates outside the
|
||||
range [0,1] for the respective u, v, or w coordinate as defined in the
|
||||
<<texture-wrapping-operation, Wrapping Operation>> section.
|
||||
<<textures-wrapping-operation, Wrapping Operation>> section.
|
||||
|
||||
* ename:VK_SAMPLER_ADDRESS_MODE_REPEAT indicates that the repeat wrap mode
|
||||
will be used.
|
||||
@ -156,8 +156,9 @@ range [0,1] for the respective u, v, or w coordinate as defined in the
|
||||
edge wrap mode will be used.
|
||||
* ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER indicates that the clamp
|
||||
to border wrap mode will be used.
|
||||
* ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE indicates that the
|
||||
mirror clamp to edge wrap mode will be used.
|
||||
* ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE indicates that
|
||||
the mirror clamp to edge wrap mode will be used. This is only valid
|
||||
if the VK_KHR_mirror_clamp_to_edge extension is enabled.
|
||||
|
||||
The maximum number of sampler objects which can: be simultaneously created
|
||||
on a device is implementation-dependent and specified by the
|
||||
|
@ -751,25 +751,24 @@ include::../protos/vkGetPhysicalDeviceSparseImageFormatProperties.txt[]
|
||||
elink:VkSampleCountFlagBits.
|
||||
* pname:usage is a bitfield describing the intended usage of the image.
|
||||
* pname:tiling is the tiling arrangement of the data elements in memory.
|
||||
* pname:pPropertyCount points to a variable specifying the length of the
|
||||
pname:pProperties array, or a variable receiving the expected size of
|
||||
the array if pname:pProperties is `NULL`.
|
||||
* pname:pProperties is an array of pname:pPropertyCount
|
||||
slink:VkSparseImageFormatProperties format property structures in which
|
||||
values are returned.
|
||||
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||
sparse format properties available or queried, as described below.
|
||||
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||
slink:VkSparseImageFormatProperties structures.
|
||||
|
||||
If pname:pProperties is `NULL`, then the number of sparse format properties
|
||||
available is returned in pname:pPropertyCount. Otherwise,
|
||||
pname:pPropertyCount must: point to a variable set by the user to the number
|
||||
of elements in the pname:pProperties array, and on return the variable is
|
||||
overwritten with the number of structures actually written to
|
||||
pname:pProperties. If the value of pname:pPropertyCount is less than the
|
||||
number of sparse format properties available, at most pname:pPropertyCount
|
||||
structures will be written, and ename:VK_INCOMPLETE will be returned instead
|
||||
of ename:VK_SUCCESS to indicate that not all the available values were
|
||||
returned.
|
||||
|
||||
include::../validity/protos/vkGetPhysicalDeviceSparseImageFormatProperties.txt[]
|
||||
|
||||
If pname:pProperties is `NULL`, then pname:pPropertyCount will be updated
|
||||
with the required size of the array pointed by pname:pProperties. If
|
||||
pname:pProperties is not `NULL`, then pname:pPropertyCount must: hold the
|
||||
size of the array pointed to by pname:pProperties, and is overwritten with
|
||||
the number of sname:VkSparseImageFormatProperties structures actually
|
||||
written to pname:pProperties. If pname:pPropertyCount is smaller than the
|
||||
number of sparse image properties for the given set of parameters,
|
||||
ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS to indicate
|
||||
that not all the available values were returned.
|
||||
|
||||
If ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT is not supported for the given
|
||||
arguments, pname:pPropertyCount will be set to zero upon return, and no data
|
||||
will be written to pname:pProperties.
|
||||
@ -892,33 +891,31 @@ include::../protos/vkGetImageSparseMemoryRequirements.txt[]
|
||||
* pname:device is the logical device that owns the image.
|
||||
* pname:image is the sname:VkImage object to get the memory requirements
|
||||
for.
|
||||
* pname:pSparseMemoryRequirementCount points to a variable specifying the
|
||||
length of the pname:pSparseMemoryRequirements array, or a variable
|
||||
receiving the expected size of the array if
|
||||
pname:pSparseMemoryRequirements is `NULL`.
|
||||
* pname:pSparseMemoryRequirements is an array of
|
||||
pname:pSparseMemoryRequirementCount
|
||||
slink:VkSparseImageMemoryRequirements structures to be written by the
|
||||
API.
|
||||
* pname:pSparseMemoryRequirementCount is a pointer to an integer related
|
||||
to the number of sparse memory requirements available or queried, as
|
||||
described below.
|
||||
* pname:pSparseMemoryRequirements is either `NULL` or a pointer to an
|
||||
array of sname:VkSparseImageMemoryRequirements structures.
|
||||
|
||||
include::../validity/protos/vkGetImageSparseMemoryRequirements.txt[]
|
||||
|
||||
If pname:pSparseMemoryRequirements is `NULL`, then
|
||||
pname:pSparseMemoryRequirementCount will be updated with the required size
|
||||
of the array pointed by pname:pProperties. If
|
||||
pname:pSparseMemoryRequirements is not `NULL`, then
|
||||
pname:pSparseMemoryRequirementCount must: hold the size of the array pointed
|
||||
to by pname:pSparseMemoryRequirements, and is overwritten with the number of
|
||||
sname:VkSparseImageMemoryRequirements structures actually written to
|
||||
pname:pSparseMemoryRequirements. If pname:pSparseMemoryRequirementCount is
|
||||
smaller than the number of sparse memory requirements for the given set of
|
||||
parameters, ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS
|
||||
to indicate that not all the available values were returned.
|
||||
If pname:pSparseMemoryRequirements is `NULL`, then the number of sparse
|
||||
memory requirements available is returned in
|
||||
pname:pSparseMemoryRequirementCount. Otherwise,
|
||||
pname:pSparseMemoryRequirementCount must: point to a variable set by the
|
||||
user to the number of elements in the pname:pSparseMemoryRequirements array,
|
||||
and on return the variable is overwritten with the number of structures
|
||||
actually written to pname:pSparseMemoryRequirements. If the value of
|
||||
pname:pSparseMemoryRequirementCount is less than the number of sparse memory
|
||||
requirements available, at most pname:pSparseMemoryRequirementCount
|
||||
structures will be written, and ename:VK_INCOMPLETE will be returned instead
|
||||
of ename:VK_SUCCESS to indicate that not all the available values were
|
||||
returned.
|
||||
|
||||
If the image was not created with ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
then pname:pSparseMemoryRequirementCount will be set to zero and
|
||||
pname:pSparseMemoryRequirements will not be written to.
|
||||
|
||||
include::../validity/protos/vkGetImageSparseMemoryRequirements.txt[]
|
||||
|
||||
[NOTE]
|
||||
.Note
|
||||
====
|
||||
@ -1375,7 +1372,7 @@ vkGetImageSparseMemoryRequirements(
|
||||
NULL);
|
||||
|
||||
pSparseReqs = (VkSparseImageMemoryRequirements*)
|
||||
malloc(reqCount * sizeof(VkSparseImageMemoryRequirements));
|
||||
malloc(sparseRequirementsCount * sizeof(VkSparseImageMemoryRequirements));
|
||||
|
||||
vkGetImageSparseMemoryRequirements(
|
||||
device,
|
||||
@ -1467,6 +1464,8 @@ for (uint32_t i = 0; i < sparseRequirementsCount; ++i)
|
||||
pBind->flags = 0;
|
||||
}
|
||||
}
|
||||
|
||||
free(pSparseReqs);
|
||||
}
|
||||
|
||||
const VkSparseImageOpaqueMemoryBindInfo opaqueBindInfo =
|
||||
|
@ -1226,7 +1226,7 @@ are <<synchronization-fences-devicewrites,visible to the host>>.
|
||||
When submitting batches of command buffers to a queue via
|
||||
flink:vkQueueSubmit, it is guaranteed that:
|
||||
|
||||
* Host writes to mappable device memory that occured before the call to
|
||||
* Host writes to mappable device memory that occurred before the call to
|
||||
fname:vkQueueSubmit are visible to the command buffers in that
|
||||
submission, if the device memory is coherent or if the memory range was
|
||||
flushed with flink:vkFlushMappedMemoryRanges.
|
||||
|
@ -236,7 +236,7 @@ rasterized (see <<primsrast-lines-basic,Basic Line Segment Rasterization>>
|
||||
and <<primsrast-polygons-basic,Basic Polygon Rasterization>>), and no
|
||||
interpolation is performed. The output value latexmath:[${\textbf c}$] is
|
||||
taken from either latexmath:[${\textbf c}_1$] or latexmath:[${\textbf
|
||||
c}_2$], since flatshading has already occured and the two values are
|
||||
c}_2$], since flatshading has already occurred and the two values are
|
||||
identical.
|
||||
|
||||
|
||||
|
@ -4,7 +4,7 @@ import time
|
||||
from datetime import *
|
||||
|
||||
# This script builds a full release package including XHTML and PDF
|
||||
# versions of the specified branches (usually 1.0 and wsi_extensions,
|
||||
# versions of the specified branches (usually 1.0 and 1.0-wsi_extensions,
|
||||
# but tags or commits can be used as well). Other files in the release
|
||||
# directory are removed, including man pages, XHTML chunked, HTML,
|
||||
# validity output, etc.
|
||||
@ -13,7 +13,7 @@ from datetime import *
|
||||
# is run, with no outstanding un-added / un-committed files. Both
|
||||
# branches must have fully regnerated all automatically-regeneratable
|
||||
# files. After completing the build, the current branch is set to
|
||||
# 'master' and suggestions for creating tags are printed out.
|
||||
# the first (core) branch and suggestions for creating tags are printed out.
|
||||
|
||||
# branch = branch or commit or tag name
|
||||
# label = textual label to apply
|
||||
@ -44,35 +44,39 @@ def buildRelease(branch,label,outdir,targets):
|
||||
print('make specversion.txt')
|
||||
print('make -j 4 OUTDIR=' + outdir, ' NOTEOPTS="-a implementation-guide"', targets)
|
||||
print('rm', outdir + '/pdf/vkspec.xml')
|
||||
print('git checkout -- specversion.txt')
|
||||
|
||||
# Main
|
||||
|
||||
global root, xml, spec
|
||||
|
||||
# Root of the Vulkan git repo
|
||||
root = '/home/tree/git/vulkan'
|
||||
# Root of the Vulkan git repo containing the specs
|
||||
root = '/home/tree/git/Vulkan-Docs'
|
||||
# Directory with vk.xml and generation tools
|
||||
xml = root + '/src/spec'
|
||||
# Directory with spec sources
|
||||
spec = root + '/doc/specs/vulkan'
|
||||
|
||||
# Output directory, which does not have to be (and probably
|
||||
# should not be) in the spec repo
|
||||
outdir = '/home/tree/git/Vulkan-Web-Registry/specs/'
|
||||
|
||||
# These can be changed to tags, etc.
|
||||
corebranch = 'master'
|
||||
wsibranch = 'wsi_extensions'
|
||||
corebranch = '1.0'
|
||||
wsibranch = '1.0-wsi_extensions'
|
||||
|
||||
# date in YYYYMMDD format
|
||||
now = datetime.today().strftime('%Y%m%d')
|
||||
|
||||
# Generate specs
|
||||
wsitargets='xhtml chunked pdf'
|
||||
coretargets=wsitargets + ' styleguide'
|
||||
buildRelease(corebranch, 'core', root + '/out/core', coretargets)
|
||||
buildRelease(wsibranch, 'core+wsi', root + '/out/wsi', wsitargets)
|
||||
coretargets='xhtml pdf styleguide manhtml manpdf manhtmlpages'
|
||||
buildRelease(corebranch, corebranch, outdir + corebranch, coretargets)
|
||||
|
||||
wsitargets='xhtml pdf'
|
||||
buildRelease(wsibranch, wsibranch, outdir + wsibranch, wsitargets)
|
||||
|
||||
print('echo Info: post-generation cleanup')
|
||||
|
||||
print('git checkout master')
|
||||
print('git checkout ' + corebranch)
|
||||
|
||||
print('echo To tag the spec branches, execute these commands:')
|
||||
print('echo git checkout', corebranch)
|
||||
|
@ -1,84 +0,0 @@
|
||||
VkMemoryInputFlags(3)
|
||||
=====================
|
||||
|
||||
Name
|
||||
----
|
||||
VkMemoryInputFlags - Memory input coherency control flags.
|
||||
|
||||
C Specification
|
||||
---------------
|
||||
|
||||
include::../flags/VkMemoryInputFlags.txt[]
|
||||
|
||||
Constants
|
||||
---------
|
||||
|
||||
ename:VK_MEMORY_INPUT_HOST_READ_BIT::
|
||||
Controls input coherency of host reads. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent host reads.
|
||||
|
||||
ename:VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT::
|
||||
Controls input coherency of indirect command reads. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent indirect commands. +
|
||||
May trigger the invalidation of any device caches involved in indirect command reads.
|
||||
|
||||
ename:VK_MEMORY_INPUT_INDEX_FETCH_BIT::
|
||||
Controls input coherency of index fetches. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent index fetches. +
|
||||
May trigger the invalidation of any device caches involved in index fetches.
|
||||
|
||||
ename:VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT::
|
||||
Controls input coherency of vertex attribute fetches. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent vertex attribute fetches. +
|
||||
May trigger the invalidation of any device caches involved in vertex attribute fetches.
|
||||
|
||||
ename:VK_MEMORY_INPUT_UNIFORM_READ_BIT::
|
||||
Controls input coherency of uniform reads. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent uniform reads. +
|
||||
May trigger the invalidation of any device caches involved in uniform reads.
|
||||
|
||||
ename:VK_MEMORY_INPUT_SHADER_READ_BIT::
|
||||
Controls input coherency of shader reads. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent shader reads. +
|
||||
May trigger the invalidation of any device caches involved in shader reads.
|
||||
|
||||
ename:VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT::
|
||||
Controls input coherency of color attachment reads. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent color attachment reads. +
|
||||
May trigger the invalidation of any device caches involved in color attachment reads.
|
||||
|
||||
ename:VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT::
|
||||
Controls input coherency of depth/stencil attachment reads. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent depth/stencil attachment reads. +
|
||||
May trigger the invalidation of any device caches involved in depth/stencil attachment reads.
|
||||
|
||||
ename:VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT::
|
||||
Controls input coherency of input attachment reads. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent input attachment reads. +
|
||||
May trigger the invalidation of any device caches involved in input attachment reads.
|
||||
|
||||
ename:VK_MEMORY_INPUT_TRANSFER_BIT::
|
||||
Controls input coherency of transfer operations. +
|
||||
Using this flag allows the result of prior commands to be visible to subsequent transfer operations. +
|
||||
May trigger the invalidation of any device caches involved in the transfer operation.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
These flags are used in the slink:VkMemoryBarrier, slink:VkBufferMemoryBarrier, and slink:VkImageMemoryBarrier structures
|
||||
passed to the commands flink:vkCmdWaitEvents and flink:vkCmdPipelineBarrier.
|
||||
|
||||
The flags are always used in conjunction with a set of memory output coherency control flags that are defined in
|
||||
elink:VkMemoryOutputFlags.
|
||||
|
||||
Using these flags alone does not necessarily guarantee that the outputs of all previous commands are visible to
|
||||
the specified inputs. In order to ensure that a particular type of output is visible on the inputs the corresponding
|
||||
memory output coherency control flag should also be specified in the current or a prior memory barrier structure.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
elink:VkMemoryOutputFlags, slink:VkMemoryBarrier, slink:VkBufferMemoryBarrier, slink:VkImageMemoryBarrier,
|
||||
flink:vkCmdWaitEvents, flink:vkCmdPipelineBarrier
|
||||
|
||||
include::footer.txt[]
|
@ -1,59 +0,0 @@
|
||||
VkMemoryOutputFlags(3)
|
||||
======================
|
||||
|
||||
Name
|
||||
----
|
||||
VkMemoryOutputFlags - Memory output coherency control flags.
|
||||
|
||||
C Specification
|
||||
---------------
|
||||
|
||||
include::../flags/VkMemoryOutputFlags.txt[]
|
||||
|
||||
Constants
|
||||
---------
|
||||
|
||||
ename:VK_MEMORY_OUTPUT_HOST_WRITE_BIT::
|
||||
Controls output coherency of host writes. +
|
||||
Using this flag allows prior host writes to be visible to subsequent commands.
|
||||
|
||||
ename:VK_MEMORY_OUTPUT_SHADER_WRITE_BIT::
|
||||
Controls output coherency of shader writes. +
|
||||
Using this flag allows prior shader writes to be visible to subsequent commands. +
|
||||
May trigger the flushing of any device caches involved in shader writes.
|
||||
|
||||
ename:VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT::
|
||||
Controls output coherency of color attachment writes. +
|
||||
Using this flag allows prior color attachment writes to be visible to subsequent commands. +
|
||||
May trigger the flushing of any device caches involved in color attachment writes.
|
||||
|
||||
ename:VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT::
|
||||
Controls output coherency of depth/stencil attachment writes. +
|
||||
Using this flag allows prior depth/stencil attachment writes to be visible to subsequent commands. +
|
||||
May trigger the flushing of any device caches involved in depth/stencil attachment writes.
|
||||
|
||||
ename:VK_MEMORY_OUTPUT_TRANSFER_BIT::
|
||||
Controls output coherency of transfer operations. +
|
||||
Using this flag allows the result of prior transfer operations to be visible to subsequent commands. +
|
||||
May trigger the flushing of any device caches involved in the transfer operations.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
These flags are used in the slink:VkMemoryBarrier, slink:VkBufferMemoryBarrier, and slink:VkImageMemoryBarrier structures
|
||||
passed to the commands flink:vkCmdWaitEvents and flink:vkCmdPipelineBarrier.
|
||||
|
||||
The flags are always used in conjunction with a set of memory input coherency control flags that are defined in
|
||||
elink:VkMemoryInputFlags.
|
||||
|
||||
Using these flags alone does not necessarily guarantee that the appropriate outputs are visible to inputs of
|
||||
subsequent commands. In order to ensure that the outputs are visible on a particular input the corresponding
|
||||
memory input coherency control flag should also be specified in the current or a future memory barrier structure.
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
||||
elink:VkMemoryInputFlags, slink:VkMemoryBarrier, slink:VkBufferMemoryBarrier, slink:VkImageMemoryBarrier,
|
||||
flink:vkCmdWaitEvents, flink:vkCmdPipelineBarrier
|
||||
|
||||
include::footer.txt[]
|
@ -1,5 +1,7 @@
|
||||
VK API Specification
|
||||
====================
|
||||
Vulkan API Reference Pages
|
||||
==========================
|
||||
include::../specversion.txt[]
|
||||
|
||||
:doctype: book
|
||||
:numbered!:
|
||||
:toc2:
|
||||
@ -175,8 +177,6 @@ include::VkBufferUsageFlags.txt[]
|
||||
include::VkFormatFeatureFlags.txt[]
|
||||
include::VkImageCreateFlags.txt[]
|
||||
include::VkImageUsageFlags.txt[]
|
||||
include::VkMemoryInputFlags.txt[]
|
||||
include::VkMemoryOutputFlags.txt[]
|
||||
include::VkMemoryPropertyFlags.txt[]
|
||||
include::VkPipelineStageFlags.txt[]
|
||||
include::VkQueryControlFlags.txt[]
|
||||
@ -192,7 +192,7 @@ Structures
|
||||
|
||||
include::VkBufferCreateInfo.txt[]
|
||||
include::VkBufferMemoryBarrier.txt[]
|
||||
include::VkDescriptorInfo.txt[]
|
||||
include::VkDescriptorSetAllocateInfo.txt[]
|
||||
include::VkImageCreateInfo.txt[]
|
||||
include::VkImageMemoryBarrier.txt[]
|
||||
include::VkPhysicalDeviceFeatures.txt[]
|
||||
|
@ -2,174 +2,174 @@ MANDIR?=.
|
||||
MANSECTION:=3
|
||||
|
||||
WSISOURCES=\
|
||||
$(MANDIR)/vkAcquireNextImageKHR.txt \
|
||||
$(MANDIR)/vkCreateAndroidSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateDisplayModeKHR.txt \
|
||||
$(MANDIR)/vkCreateDisplayPlaneSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateMirSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateSharedSwapchainsKHR.txt \
|
||||
$(MANDIR)/vkCreateSwapchainKHR.txt \
|
||||
$(MANDIR)/vkCreateWaylandSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateWin32SurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateXcbSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateXlibSurfaceKHR.txt \
|
||||
$(MANDIR)/vkDestroySurfaceKHR.txt \
|
||||
$(MANDIR)/vkDestroySwapchainKHR.txt \
|
||||
$(MANDIR)/vkGetDisplayModePropertiesKHR.txt \
|
||||
$(MANDIR)/vkGetDisplayPlaneCapabilitiesKHR.txt \
|
||||
$(MANDIR)/vkGetDisplayPlaneSupportedDisplaysKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceDisplayPropertiesKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceMirPresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSurfaceFormatsKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSurfacePresentModesKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSurfaceSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceWaylandPresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceWin32PresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceXcbPresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceXlibPresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetSwapchainImagesKHR.txt \
|
||||
$(MANDIR)/vkQueuePresentKHR.txt \
|
||||
$(MANDIR)/vkAcquireNextImageKHR.txt \
|
||||
$(MANDIR)/vkCreateAndroidSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateDisplayModeKHR.txt \
|
||||
$(MANDIR)/vkCreateDisplayPlaneSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateMirSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateSharedSwapchainsKHR.txt \
|
||||
$(MANDIR)/vkCreateSwapchainKHR.txt \
|
||||
$(MANDIR)/vkCreateWaylandSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateWin32SurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateXcbSurfaceKHR.txt \
|
||||
$(MANDIR)/vkCreateXlibSurfaceKHR.txt \
|
||||
$(MANDIR)/vkDestroySurfaceKHR.txt \
|
||||
$(MANDIR)/vkDestroySwapchainKHR.txt \
|
||||
$(MANDIR)/vkGetDisplayModePropertiesKHR.txt \
|
||||
$(MANDIR)/vkGetDisplayPlaneCapabilitiesKHR.txt \
|
||||
$(MANDIR)/vkGetDisplayPlaneSupportedDisplaysKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceDisplayPropertiesKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceMirPresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSurfaceFormatsKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSurfacePresentModesKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSurfaceSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceWaylandPresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceWin32PresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceXcbPresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceXlibPresentationSupportKHR.txt \
|
||||
$(MANDIR)/vkGetSwapchainImagesKHR.txt \
|
||||
$(MANDIR)/vkQueuePresentKHR.txt \
|
||||
|
||||
FUNCSOURCES=\
|
||||
$(MANDIR)/vkAllocateCommandBuffers.txt \
|
||||
$(MANDIR)/vkAllocateDescriptorSets.txt \
|
||||
$(MANDIR)/vkAllocateMemory.txt \
|
||||
$(MANDIR)/vkBeginCommandBuffer.txt \
|
||||
$(MANDIR)/vkBindBufferMemory.txt \
|
||||
$(MANDIR)/vkBindImageMemory.txt \
|
||||
$(MANDIR)/vkCmdBeginQuery.txt \
|
||||
$(MANDIR)/vkCmdBeginRenderPass.txt \
|
||||
$(MANDIR)/vkCmdBindDescriptorSets.txt \
|
||||
$(MANDIR)/vkCmdBindIndexBuffer.txt \
|
||||
$(MANDIR)/vkCmdBindPipeline.txt \
|
||||
$(MANDIR)/vkCmdBindVertexBuffers.txt \
|
||||
$(MANDIR)/vkCmdBlitImage.txt \
|
||||
$(MANDIR)/vkCmdClearAttachments.txt \
|
||||
$(MANDIR)/vkCmdClearColorImage.txt \
|
||||
$(MANDIR)/vkCmdClearDepthStencilImage.txt \
|
||||
$(MANDIR)/vkCmdCopyBuffer.txt \
|
||||
$(MANDIR)/vkCmdCopyBufferToImage.txt \
|
||||
$(MANDIR)/vkCmdCopyImage.txt \
|
||||
$(MANDIR)/vkCmdCopyImageToBuffer.txt \
|
||||
$(MANDIR)/vkCmdCopyQueryPoolResults.txt \
|
||||
$(MANDIR)/vkCmdDispatch.txt \
|
||||
$(MANDIR)/vkCmdDispatchIndirect.txt \
|
||||
$(MANDIR)/vkCmdDraw.txt \
|
||||
$(MANDIR)/vkCmdDrawIndexed.txt \
|
||||
$(MANDIR)/vkCmdDrawIndexedIndirect.txt \
|
||||
$(MANDIR)/vkCmdDrawIndirect.txt \
|
||||
$(MANDIR)/vkCmdEndQuery.txt \
|
||||
$(MANDIR)/vkCmdEndRenderPass.txt \
|
||||
$(MANDIR)/vkCmdExecuteCommands.txt \
|
||||
$(MANDIR)/vkCmdFillBuffer.txt \
|
||||
$(MANDIR)/vkCmdNextSubpass.txt \
|
||||
$(MANDIR)/vkCmdPipelineBarrier.txt \
|
||||
$(MANDIR)/vkCmdPushConstants.txt \
|
||||
$(MANDIR)/vkCmdResetEvent.txt \
|
||||
$(MANDIR)/vkCmdResetQueryPool.txt \
|
||||
$(MANDIR)/vkCmdResolveImage.txt \
|
||||
$(MANDIR)/vkCmdSetBlendConstants.txt \
|
||||
$(MANDIR)/vkCmdSetDepthBias.txt \
|
||||
$(MANDIR)/vkCmdSetDepthBounds.txt \
|
||||
$(MANDIR)/vkCmdSetEvent.txt \
|
||||
$(MANDIR)/vkCmdSetLineWidth.txt \
|
||||
$(MANDIR)/vkCmdSetScissor.txt \
|
||||
$(MANDIR)/vkCmdSetStencilCompareMask.txt \
|
||||
$(MANDIR)/vkCmdSetStencilReference.txt \
|
||||
$(MANDIR)/vkCmdSetStencilWriteMask.txt \
|
||||
$(MANDIR)/vkCmdSetViewport.txt \
|
||||
$(MANDIR)/vkCmdUpdateBuffer.txt \
|
||||
$(MANDIR)/vkCmdWaitEvents.txt \
|
||||
$(MANDIR)/vkCmdWriteTimestamp.txt \
|
||||
$(MANDIR)/vkCreateBuffer.txt \
|
||||
$(MANDIR)/vkCreateBufferView.txt \
|
||||
$(MANDIR)/vkCreateCommandPool.txt \
|
||||
$(MANDIR)/vkCreateComputePipelines.txt \
|
||||
$(MANDIR)/vkCreateDescriptorPool.txt \
|
||||
$(MANDIR)/vkCreateDescriptorSetLayout.txt \
|
||||
$(MANDIR)/vkCreateDevice.txt \
|
||||
$(MANDIR)/vkCreateEvent.txt \
|
||||
$(MANDIR)/vkCreateFence.txt \
|
||||
$(MANDIR)/vkCreateFramebuffer.txt \
|
||||
$(MANDIR)/vkCreateGraphicsPipelines.txt \
|
||||
$(MANDIR)/vkCreateImage.txt \
|
||||
$(MANDIR)/vkCreateImageView.txt \
|
||||
$(MANDIR)/vkCreateInstance.txt \
|
||||
$(MANDIR)/vkCreatePipelineCache.txt \
|
||||
$(MANDIR)/vkCreatePipelineLayout.txt \
|
||||
$(MANDIR)/vkCreateQueryPool.txt \
|
||||
$(MANDIR)/vkCreateRenderPass.txt \
|
||||
$(MANDIR)/vkCreateSampler.txt \
|
||||
$(MANDIR)/vkCreateSemaphore.txt \
|
||||
$(MANDIR)/vkCreateShaderModule.txt \
|
||||
$(MANDIR)/vkDestroyBuffer.txt \
|
||||
$(MANDIR)/vkDestroyBufferView.txt \
|
||||
$(MANDIR)/vkDestroyCommandPool.txt \
|
||||
$(MANDIR)/vkDestroyDescriptorPool.txt \
|
||||
$(MANDIR)/vkDestroyDescriptorSetLayout.txt \
|
||||
$(MANDIR)/vkDestroyDevice.txt \
|
||||
$(MANDIR)/vkDestroyEvent.txt \
|
||||
$(MANDIR)/vkDestroyFence.txt \
|
||||
$(MANDIR)/vkDestroyFramebuffer.txt \
|
||||
$(MANDIR)/vkDestroyImage.txt \
|
||||
$(MANDIR)/vkDestroyImageView.txt \
|
||||
$(MANDIR)/vkDestroyInstance.txt \
|
||||
$(MANDIR)/vkDestroyPipeline.txt \
|
||||
$(MANDIR)/vkDestroyPipelineCache.txt \
|
||||
$(MANDIR)/vkDestroyPipelineLayout.txt \
|
||||
$(MANDIR)/vkDestroyQueryPool.txt \
|
||||
$(MANDIR)/vkDestroyRenderPass.txt \
|
||||
$(MANDIR)/vkDestroySampler.txt \
|
||||
$(MANDIR)/vkDestroySemaphore.txt \
|
||||
$(MANDIR)/vkDestroyShaderModule.txt \
|
||||
$(MANDIR)/vkDeviceWaitIdle.txt \
|
||||
$(MANDIR)/vkEndCommandBuffer.txt \
|
||||
$(MANDIR)/vkEnumerateDeviceExtensionProperties.txt \
|
||||
$(MANDIR)/vkEnumerateDeviceLayerProperties.txt \
|
||||
$(MANDIR)/vkEnumerateInstanceExtensionProperties.txt \
|
||||
$(MANDIR)/vkEnumerateInstanceLayerProperties.txt \
|
||||
$(MANDIR)/vkEnumeratePhysicalDevices.txt \
|
||||
$(MANDIR)/vkFlushMappedMemoryRanges.txt \
|
||||
$(MANDIR)/vkFreeCommandBuffers.txt \
|
||||
$(MANDIR)/vkFreeDescriptorSets.txt \
|
||||
$(MANDIR)/vkFreeMemory.txt \
|
||||
$(MANDIR)/vkGetBufferMemoryRequirements.txt \
|
||||
$(MANDIR)/vkGetDeviceMemoryCommitment.txt \
|
||||
$(MANDIR)/vkGetDeviceProcAddr.txt \
|
||||
$(MANDIR)/vkGetDeviceQueue.txt \
|
||||
$(MANDIR)/vkGetEventStatus.txt \
|
||||
$(MANDIR)/vkGetFenceStatus.txt \
|
||||
$(MANDIR)/vkGetImageMemoryRequirements.txt \
|
||||
$(MANDIR)/vkGetImageSparseMemoryRequirements.txt \
|
||||
$(MANDIR)/vkGetImageSubresourceLayout.txt \
|
||||
$(MANDIR)/vkGetInstanceProcAddr.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceFeatures.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceFormatProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceImageFormatProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceMemoryProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceQueueFamilyProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSparseImageFormatProperties.txt \
|
||||
$(MANDIR)/vkGetPipelineCacheData.txt \
|
||||
$(MANDIR)/vkGetQueryPoolResults.txt \
|
||||
$(MANDIR)/vkGetRenderAreaGranularity.txt \
|
||||
$(MANDIR)/vkInvalidateMappedMemoryRanges.txt \
|
||||
$(MANDIR)/vkMapMemory.txt \
|
||||
$(MANDIR)/vkMergePipelineCaches.txt \
|
||||
$(MANDIR)/vkQueueBindSparse.txt \
|
||||
$(MANDIR)/vkQueueSubmit.txt \
|
||||
$(MANDIR)/vkQueueWaitIdle.txt \
|
||||
$(MANDIR)/vkResetCommandBuffer.txt \
|
||||
$(MANDIR)/vkResetCommandPool.txt \
|
||||
$(MANDIR)/vkResetDescriptorPool.txt \
|
||||
$(MANDIR)/vkResetEvent.txt \
|
||||
$(MANDIR)/vkResetFences.txt \
|
||||
$(MANDIR)/vkSetEvent.txt \
|
||||
$(MANDIR)/vkUnmapMemory.txt \
|
||||
$(MANDIR)/vkUpdateDescriptorSets.txt \
|
||||
$(MANDIR)/vkWaitForFences.txt \
|
||||
$(MANDIR)/vkAllocateCommandBuffers.txt \
|
||||
$(MANDIR)/vkAllocateDescriptorSets.txt \
|
||||
$(MANDIR)/vkAllocateMemory.txt \
|
||||
$(MANDIR)/vkBeginCommandBuffer.txt \
|
||||
$(MANDIR)/vkBindBufferMemory.txt \
|
||||
$(MANDIR)/vkBindImageMemory.txt \
|
||||
$(MANDIR)/vkCmdBeginQuery.txt \
|
||||
$(MANDIR)/vkCmdBeginRenderPass.txt \
|
||||
$(MANDIR)/vkCmdBindDescriptorSets.txt \
|
||||
$(MANDIR)/vkCmdBindIndexBuffer.txt \
|
||||
$(MANDIR)/vkCmdBindPipeline.txt \
|
||||
$(MANDIR)/vkCmdBindVertexBuffers.txt \
|
||||
$(MANDIR)/vkCmdBlitImage.txt \
|
||||
$(MANDIR)/vkCmdClearAttachments.txt \
|
||||
$(MANDIR)/vkCmdClearColorImage.txt \
|
||||
$(MANDIR)/vkCmdClearDepthStencilImage.txt \
|
||||
$(MANDIR)/vkCmdCopyBuffer.txt \
|
||||
$(MANDIR)/vkCmdCopyBufferToImage.txt \
|
||||
$(MANDIR)/vkCmdCopyImage.txt \
|
||||
$(MANDIR)/vkCmdCopyImageToBuffer.txt \
|
||||
$(MANDIR)/vkCmdCopyQueryPoolResults.txt \
|
||||
$(MANDIR)/vkCmdDispatch.txt \
|
||||
$(MANDIR)/vkCmdDispatchIndirect.txt \
|
||||
$(MANDIR)/vkCmdDraw.txt \
|
||||
$(MANDIR)/vkCmdDrawIndexed.txt \
|
||||
$(MANDIR)/vkCmdDrawIndexedIndirect.txt \
|
||||
$(MANDIR)/vkCmdDrawIndirect.txt \
|
||||
$(MANDIR)/vkCmdEndQuery.txt \
|
||||
$(MANDIR)/vkCmdEndRenderPass.txt \
|
||||
$(MANDIR)/vkCmdExecuteCommands.txt \
|
||||
$(MANDIR)/vkCmdFillBuffer.txt \
|
||||
$(MANDIR)/vkCmdNextSubpass.txt \
|
||||
$(MANDIR)/vkCmdPipelineBarrier.txt \
|
||||
$(MANDIR)/vkCmdPushConstants.txt \
|
||||
$(MANDIR)/vkCmdResetEvent.txt \
|
||||
$(MANDIR)/vkCmdResetQueryPool.txt \
|
||||
$(MANDIR)/vkCmdResolveImage.txt \
|
||||
$(MANDIR)/vkCmdSetBlendConstants.txt \
|
||||
$(MANDIR)/vkCmdSetDepthBias.txt \
|
||||
$(MANDIR)/vkCmdSetDepthBounds.txt \
|
||||
$(MANDIR)/vkCmdSetEvent.txt \
|
||||
$(MANDIR)/vkCmdSetLineWidth.txt \
|
||||
$(MANDIR)/vkCmdSetScissor.txt \
|
||||
$(MANDIR)/vkCmdSetStencilCompareMask.txt \
|
||||
$(MANDIR)/vkCmdSetStencilReference.txt \
|
||||
$(MANDIR)/vkCmdSetStencilWriteMask.txt \
|
||||
$(MANDIR)/vkCmdSetViewport.txt \
|
||||
$(MANDIR)/vkCmdUpdateBuffer.txt \
|
||||
$(MANDIR)/vkCmdWaitEvents.txt \
|
||||
$(MANDIR)/vkCmdWriteTimestamp.txt \
|
||||
$(MANDIR)/vkCreateBuffer.txt \
|
||||
$(MANDIR)/vkCreateBufferView.txt \
|
||||
$(MANDIR)/vkCreateCommandPool.txt \
|
||||
$(MANDIR)/vkCreateComputePipelines.txt \
|
||||
$(MANDIR)/vkCreateDescriptorPool.txt \
|
||||
$(MANDIR)/vkCreateDescriptorSetLayout.txt \
|
||||
$(MANDIR)/vkCreateDevice.txt \
|
||||
$(MANDIR)/vkCreateEvent.txt \
|
||||
$(MANDIR)/vkCreateFence.txt \
|
||||
$(MANDIR)/vkCreateFramebuffer.txt \
|
||||
$(MANDIR)/vkCreateGraphicsPipelines.txt \
|
||||
$(MANDIR)/vkCreateImage.txt \
|
||||
$(MANDIR)/vkCreateImageView.txt \
|
||||
$(MANDIR)/vkCreateInstance.txt \
|
||||
$(MANDIR)/vkCreatePipelineCache.txt \
|
||||
$(MANDIR)/vkCreatePipelineLayout.txt \
|
||||
$(MANDIR)/vkCreateQueryPool.txt \
|
||||
$(MANDIR)/vkCreateRenderPass.txt \
|
||||
$(MANDIR)/vkCreateSampler.txt \
|
||||
$(MANDIR)/vkCreateSemaphore.txt \
|
||||
$(MANDIR)/vkCreateShaderModule.txt \
|
||||
$(MANDIR)/vkDestroyBuffer.txt \
|
||||
$(MANDIR)/vkDestroyBufferView.txt \
|
||||
$(MANDIR)/vkDestroyCommandPool.txt \
|
||||
$(MANDIR)/vkDestroyDescriptorPool.txt \
|
||||
$(MANDIR)/vkDestroyDescriptorSetLayout.txt \
|
||||
$(MANDIR)/vkDestroyDevice.txt \
|
||||
$(MANDIR)/vkDestroyEvent.txt \
|
||||
$(MANDIR)/vkDestroyFence.txt \
|
||||
$(MANDIR)/vkDestroyFramebuffer.txt \
|
||||
$(MANDIR)/vkDestroyImage.txt \
|
||||
$(MANDIR)/vkDestroyImageView.txt \
|
||||
$(MANDIR)/vkDestroyInstance.txt \
|
||||
$(MANDIR)/vkDestroyPipeline.txt \
|
||||
$(MANDIR)/vkDestroyPipelineCache.txt \
|
||||
$(MANDIR)/vkDestroyPipelineLayout.txt \
|
||||
$(MANDIR)/vkDestroyQueryPool.txt \
|
||||
$(MANDIR)/vkDestroyRenderPass.txt \
|
||||
$(MANDIR)/vkDestroySampler.txt \
|
||||
$(MANDIR)/vkDestroySemaphore.txt \
|
||||
$(MANDIR)/vkDestroyShaderModule.txt \
|
||||
$(MANDIR)/vkDeviceWaitIdle.txt \
|
||||
$(MANDIR)/vkEndCommandBuffer.txt \
|
||||
$(MANDIR)/vkEnumerateDeviceExtensionProperties.txt \
|
||||
$(MANDIR)/vkEnumerateDeviceLayerProperties.txt \
|
||||
$(MANDIR)/vkEnumerateInstanceExtensionProperties.txt \
|
||||
$(MANDIR)/vkEnumerateInstanceLayerProperties.txt \
|
||||
$(MANDIR)/vkEnumeratePhysicalDevices.txt \
|
||||
$(MANDIR)/vkFlushMappedMemoryRanges.txt \
|
||||
$(MANDIR)/vkFreeCommandBuffers.txt \
|
||||
$(MANDIR)/vkFreeDescriptorSets.txt \
|
||||
$(MANDIR)/vkFreeMemory.txt \
|
||||
$(MANDIR)/vkGetBufferMemoryRequirements.txt \
|
||||
$(MANDIR)/vkGetDeviceMemoryCommitment.txt \
|
||||
$(MANDIR)/vkGetDeviceProcAddr.txt \
|
||||
$(MANDIR)/vkGetDeviceQueue.txt \
|
||||
$(MANDIR)/vkGetEventStatus.txt \
|
||||
$(MANDIR)/vkGetFenceStatus.txt \
|
||||
$(MANDIR)/vkGetImageMemoryRequirements.txt \
|
||||
$(MANDIR)/vkGetImageSparseMemoryRequirements.txt \
|
||||
$(MANDIR)/vkGetImageSubresourceLayout.txt \
|
||||
$(MANDIR)/vkGetInstanceProcAddr.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceFeatures.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceFormatProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceImageFormatProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceMemoryProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceQueueFamilyProperties.txt \
|
||||
$(MANDIR)/vkGetPhysicalDeviceSparseImageFormatProperties.txt \
|
||||
$(MANDIR)/vkGetPipelineCacheData.txt \
|
||||
$(MANDIR)/vkGetQueryPoolResults.txt \
|
||||
$(MANDIR)/vkGetRenderAreaGranularity.txt \
|
||||
$(MANDIR)/vkInvalidateMappedMemoryRanges.txt \
|
||||
$(MANDIR)/vkMapMemory.txt \
|
||||
$(MANDIR)/vkMergePipelineCaches.txt \
|
||||
$(MANDIR)/vkQueueBindSparse.txt \
|
||||
$(MANDIR)/vkQueueSubmit.txt \
|
||||
$(MANDIR)/vkQueueWaitIdle.txt \
|
||||
$(MANDIR)/vkResetCommandBuffer.txt \
|
||||
$(MANDIR)/vkResetCommandPool.txt \
|
||||
$(MANDIR)/vkResetDescriptorPool.txt \
|
||||
$(MANDIR)/vkResetEvent.txt \
|
||||
$(MANDIR)/vkResetFences.txt \
|
||||
$(MANDIR)/vkSetEvent.txt \
|
||||
$(MANDIR)/vkUnmapMemory.txt \
|
||||
$(MANDIR)/vkUpdateDescriptorSets.txt \
|
||||
$(MANDIR)/vkWaitForFences.txt \
|
||||
|
||||
STRUCTSOURCES=\
|
||||
$(MANDIR)/VkAllocationCallbacks.txt \
|
||||
@ -179,21 +179,20 @@ STRUCTSOURCES=\
|
||||
$(MANDIR)/VkBufferMemoryBarrier.txt \
|
||||
$(MANDIR)/VkImageCreateInfo.txt \
|
||||
$(MANDIR)/VkImageMemoryBarrier.txt \
|
||||
$(MANDIR)/VkMemoryAllocateInfo.txt \
|
||||
$(MANDIR)/VkPhysicalDeviceFeatures.txt \
|
||||
$(MANDIR)/VkPhysicalDeviceLimits.txt \
|
||||
$(MANDIR)/VkPipelineLayoutCreateInfo.txt \
|
||||
$(MANDIR)/VkQueueFamilyProperties.txt \
|
||||
$(MANDIR)/VkWriteDescriptorSet.txt
|
||||
|
||||
# stub page to be filled in: $(MANDIR)/VkMemoryAllocateInfo.txt
|
||||
|
||||
FLAGSSOURCES=\
|
||||
$(MANDIR)/VkBufferCreateFlags.txt \
|
||||
$(MANDIR)/VkBufferUsageFlags.txt \
|
||||
$(MANDIR)/VkFormatFeatureFlags.txt \
|
||||
$(MANDIR)/VkImageCreateFlags.txt \
|
||||
$(MANDIR)/VkImageUsageFlags.txt \
|
||||
$(MANDIR)/VkMemoryInputFlags.txt \
|
||||
$(MANDIR)/VkMemoryOutputFlags.txt \
|
||||
$(MANDIR)/VkMemoryPropertyFlags.txt \
|
||||
$(MANDIR)/VkPipelineStageFlags.txt \
|
||||
$(MANDIR)/VkQueryControlFlags.txt \
|
||||
|
@ -45,7 +45,7 @@ include::../structs/VkDrawIndirectCommand.txt[]
|
||||
If pname:stride is zero, the array of slink:VkDrawIndirectCommand structures is
|
||||
assumed to be tightly packed.
|
||||
|
||||
include::../validity/protos/VkCmdDrawIndirect.txt[]
|
||||
include::../validity/protos/vkCmdDrawIndirect.txt[]
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
@ -43,7 +43,7 @@ pipeline point specified, it may at its option write the timestamp at
|
||||
any point appearing later in the logical pipeline. However, it must do
|
||||
this consistently for similar pipeline configurations.
|
||||
|
||||
include::../validity/protos/vkWriteTimestamp.txt[]
|
||||
include::../validity/protos/vkCmdWriteTimestamp.txt[]
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -73,7 +73,7 @@ exclusive. If you specify a valid pname:basePipelineHandle,
|
||||
pname:basePipelineIndex must be set to -1. If you specify a valid
|
||||
pname:basePipelineIndex, pname:basePipelineHandle must be VK_NULL_HANDLE.
|
||||
|
||||
include::../validity/protos/vkCreateComputePipeines.txt[]
|
||||
include::../validity/protos/vkCreateComputePipelines.txt[]
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -47,16 +47,7 @@ member is an instance of the slink:VkComponentMapping structure which defines co
|
||||
read from the view. The pname:subresourceRange member of the pname:pCreateInfo specifies the
|
||||
range of the parent resource to be visible through the new view.
|
||||
|
||||
The pname:flags member of pname:pCreateInfo specifies additional information about how the image view
|
||||
will be used and should be a logical combination of the members of the elink:VkImageViewCreateFlagBits
|
||||
enumeration, the definition of which is:
|
||||
|
||||
include::../enums/VkImageViewCreateFlagBits.txt[]
|
||||
|
||||
The ename:VK_IMAGE_VIEW_CREATE_READ_ONLY_DEPTH_BIT and ename:VK_IMAGE_VIEW_CREATE_READ_ONLY_STENCIL_BIT
|
||||
flags are used to specifiy that the image is to be used as a read-only depth or stencil image,
|
||||
respectively. For parent images containing both a depth and stencil aspect, either one of or both bits
|
||||
may be specifie in pname:flags.
|
||||
The pname:flags member of pname:pCreateInfo is reserved and must be 0.
|
||||
|
||||
include::../validity/protos/vkCreateImageView.txt[]
|
||||
|
||||
|
@ -40,10 +40,8 @@ by extensions and should be set to code:NULL.
|
||||
|
||||
The pname:setLayoutCount member specifies the number of descriptor sets to
|
||||
include in the layout and pname:pSetLayouts is a pointer to an array of
|
||||
pname:setLayoutCount sname:VkDescriptorSetLayout structures describing the
|
||||
sets. The definition of slink:VkDescriptorSetLayout is:
|
||||
|
||||
include::../structs/VkDescriptorSetLayout.txt[]
|
||||
pname:setLayoutCount sname:VkDescriptorSetLayout objects describing the
|
||||
sets, each created with flink:vkCreateDescriptorSetLayout.
|
||||
|
||||
include::../validity/protos/vkCreatePipelineLayout.txt[]
|
||||
|
||||
|
@ -154,7 +154,7 @@ describes a global dependency, that is the pname:srcStageMask stages must have
|
||||
finished for all regions in pname:srcSubpass before any pname:dstStageMask
|
||||
stage starts in pname:dstSubpass for any region.
|
||||
|
||||
include::../validity/protos/vkCreateRenderpass.txt[]
|
||||
include::../validity/protos/vkCreateRenderPass.txt[]
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -38,7 +38,7 @@ available. The definition of slink:VkExtensionProperties is as follows:
|
||||
|
||||
include::../structs/VkExtensionProperties.txt[]
|
||||
|
||||
include::../validity/protos/vkEnumerateExtensionProperties.txt[]
|
||||
include::../validity/protos/vkEnumerateInstanceExtensionProperties.txt[]
|
||||
|
||||
Return Value
|
||||
------------
|
||||
|
@ -58,7 +58,7 @@ The pname:bufferFeatures member contains information about format support in buf
|
||||
If the physical device does not support the specified format then the output slink:VkFormatProperties
|
||||
structure is filled with zeros.
|
||||
|
||||
include::../validity/protos/vkGetDeviceFormatProperties.txt[]
|
||||
include::../validity/protos/vkGetPhysicalDeviceFormatProperties.txt[]
|
||||
|
||||
See Also
|
||||
--------
|
||||
|
@ -80,9 +80,8 @@ original _asciidoc_ tool. Other tools to process Asciidoc markup, such as
|
||||
_asciidoctor_, are also available, but are not currently usable for our
|
||||
documents. While asciidoctor supports the basic Asciidoc markup syntax, it
|
||||
does not support asciidoc macros, which are used extensively in the
|
||||
documentation. It is in principle possible to move from asciidoc to
|
||||
asciidoctor, but this will be a significant effort, and probably won't
|
||||
happen until after Vulkan 1.0 is published.
|
||||
documentation. It is possible to move from asciidoc to asciidoctor, but this
|
||||
will be a significant effort, taking place after Vulkan 1.0 is published.
|
||||
|
||||
This guide does not address the toolchain and build process, just source
|
||||
documents.
|
||||
@ -922,16 +921,15 @@ for this structure:
|
||||
====
|
||||
|
||||
|
||||
= API Naming Conventions
|
||||
|
||||
Not clear this belongs in this document - currently captured in
|
||||
|
||||
https://cvs.khronos.org/wiki/index.php/OpenGL_Common/API_Design/Cleanup
|
||||
|
||||
If it does go here, we would discuss naming conventions starting with
|
||||
prefixes, camelCase, suffixes for size and arrayness, choice of names for
|
||||
similar parameters, templates for CreateInfo structs, parameter naming &
|
||||
ordering (especially length/array pointer pairs), etc.
|
||||
// = API Naming Conventions
|
||||
//
|
||||
// It's not clear these belong in this document. They are currently
|
||||
// captured in the member Wiki under API_Design/Cleanup
|
||||
//
|
||||
// If they do go here, we would discuss naming conventions starting with
|
||||
// prefixes, camelCase, suffixes for size and arrayness, choice of names for
|
||||
// similar parameters, templates for CreateInfo structs, parameter naming &
|
||||
// ordering (especially length/array pointer pairs), etc.
|
||||
|
||||
|
||||
= To Be Done
|
||||
@ -944,14 +942,15 @@ ordering (especially length/array pointer pairs), etc.
|
||||
|
||||
= Revision History
|
||||
|
||||
* February 16, 2016 - Place asciidoc conversion post-release.
|
||||
* February 9, 2016 - Added quotation mark convention.
|
||||
* December 10, 2015 - Initial release for feedback.
|
||||
* December 13, 2015 - Add tlink{cl}/tname{cl} macros for function pointer
|
||||
types.
|
||||
* December 15, 2015 - Make ``implementation'' preferred term instead of
|
||||
``system''.
|
||||
* February 1, 2016 - add the Oxford Comma section and issue resolution.
|
||||
* January 26, 2016 - add bullet-list style description of command parameters.
|
||||
* January 11, 2016 - add ``Numbers in Text'' section from WSI work.
|
||||
* December 16, 2015 - Make ``begin / end'' preferred terms to ``start /
|
||||
finish''.
|
||||
* January 11, 2016 - add ``Numbers in Text'' section from WSI work.
|
||||
* January 26, 2016 - add bullet-list style description of command parameters.
|
||||
* February 1, 2016 - add the Oxford Comma section and issue resolution.
|
||||
* December 15, 2015 - Make ``implementation'' preferred term instead of
|
||||
``system''.
|
||||
* December 13, 2015 - Add tlink{cl}/tname{cl} macros for function pointer
|
||||
types.
|
||||
* December 10, 2015 - Initial release for feedback.
|
||||
|
@ -23,13 +23,13 @@ endif::doctype-manpage[]
|
||||
* The destination region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage
|
||||
* The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory
|
||||
* pname:srcImage must: use a format that supports ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT, which is indicated by sname:VkFormatProperties::pname:linearTilingFeatures (for linear tiled images) or sname:VkFormatProperties::pname:optimalTilingFeatures (for optimally tiled images) - as returned by fname:vkGetPhysicalDeviceFormatProperties
|
||||
* pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice
|
||||
* pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstImage must: use a format that supports ename:VK_FORMAT_FEATURE_BLIT_DST_BIT, which is indicated by sname:VkFormatProperties::pname:linearTilingFeatures (for linear tiled images) or sname:VkFormatProperties::pname:optimalTilingFeatures (for optimally tiled images) - as returned by fname:vkGetPhysicalDeviceFormatProperties
|
||||
* pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice
|
||||
* pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* The sample count of pname:srcImage and pname:dstImage must: both be equal to ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* If either of pname:srcImage or pname:dstImage was created with a signed integer elink:VkFormat, the other must: also have been created with a signed integer elink:VkFormat
|
||||
* If either of pname:srcImage or pname:dstImage was created with an unsigned integer elink:VkFormat, the other must: also have been created with an unsigned integer elink:VkFormat
|
||||
|
@ -17,9 +17,9 @@ endif::doctype-manpage[]
|
||||
* This command must: only be called outside of a render pass instance
|
||||
* The value of pname:rangeCount must: be greater than `0`
|
||||
* Each of pname:commandBuffer and pname:image must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* pname:image must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:image must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:imageLayout must: specify the layout of the subresource ranges of pname:image specified in pname:pRanges at the time this command is executed on a sname:VkDevice
|
||||
* pname:imageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:imageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
|
@ -17,9 +17,9 @@ endif::doctype-manpage[]
|
||||
* This command must: only be called outside of a render pass instance
|
||||
* The value of pname:rangeCount must: be greater than `0`
|
||||
* Each of pname:commandBuffer and pname:image must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* pname:image must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:image must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:imageLayout must: specify the layout of the subresource ranges of pname:image specified in pname:pRanges at the time this command is executed on a sname:VkDevice
|
||||
* pname:imageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:imageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
|
@ -19,8 +19,8 @@ endif::doctype-manpage[]
|
||||
* The sum of the pname:srcOffset and pname:copySize members of a given element of pname:pRegions must: be less than or equal to the size of pname:srcBuffer
|
||||
* The sum of the pname:dstOffset and pname:copySize members of a given element of pname:pRegions must: be less than or equal to the size of pname:dstBuffer
|
||||
* The union of the source regions, and the union of the destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory
|
||||
* pname:srcBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
endif::doctype-manpage[]
|
||||
|
@ -20,11 +20,11 @@ endif::doctype-manpage[]
|
||||
* The buffer region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcBuffer
|
||||
* The image region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage
|
||||
* The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory
|
||||
* pname:srcBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice
|
||||
* pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
endif::doctype-manpage[]
|
||||
|
@ -21,12 +21,12 @@ endif::doctype-manpage[]
|
||||
* The source region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcImage
|
||||
* The destination region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage
|
||||
* The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory
|
||||
* pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice
|
||||
* pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice
|
||||
* pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* The elink:VkFormat of each of pname:srcImage and pname:dstImage must: be compatible, as defined <<copies-images-format-compatibility, below>>
|
||||
* The sample count of pname:srcImage and pname:dstImage must: match
|
||||
ifndef::doctype-manpage[]
|
||||
|
@ -20,11 +20,11 @@ endif::doctype-manpage[]
|
||||
* The image region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcImage
|
||||
* The buffer region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstBuffer
|
||||
* The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory
|
||||
* pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
|
||||
* pname:srcImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice
|
||||
* pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
endif::doctype-manpage[]
|
||||
|
@ -14,8 +14,8 @@ endif::doctype-manpage[]
|
||||
* pname:commandBuffer must: be a primary sname:VkCommandBuffer
|
||||
* The value of pname:commandBufferCount must: be greater than `0`
|
||||
* Each of pname:commandBuffer and the elements of pname:pCommandBuffers must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* pname:commandBuffer must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_PRIMARY
|
||||
* Any given element of pname:pCommandBuffers must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_SECONDARY
|
||||
* pname:commandBuffer must: have been created with a pname:level value of ename:VK_COMMAND_BUFFER_LEVEL_PRIMARY
|
||||
* Any given element of pname:pCommandBuffers must: have been created with a pname:level value of ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY
|
||||
* Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag
|
||||
* Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag
|
||||
* Any given element of pname:pCommandBuffers must: be in the executable state
|
||||
|
@ -14,7 +14,7 @@ endif::doctype-manpage[]
|
||||
* This command must: only be called outside of a render pass instance
|
||||
* Each of pname:commandBuffer and pname:dstBuffer must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* If pname:size is not equal to ename:VK_WHOLE_SIZE, the sum of pname:dstOffset and pname:size must: be less than or equal to the size of pname:dstBuffer
|
||||
* pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:dstOffset must: be a multiple of `4`
|
||||
* If pname:size is not equal to ename:VK_WHOLE_SIZE, pname:size must: be a multiple of `4`
|
||||
ifndef::doctype-manpage[]
|
||||
|
@ -18,10 +18,10 @@ endif::doctype-manpage[]
|
||||
* If pname:imageMemoryBarrierCount is not `0`, pname:pImageMemoryBarriers must: be a pointer to an array of pname:imageMemoryBarrierCount valid sname:VkImageMemoryBarrier structures
|
||||
* pname:commandBuffer must: be in the recording state
|
||||
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support transfer, graphics or compute operations
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass must: declare at least one self-dependency from the current subpass to itself - see <<synchronization-pipeline-barriers-subpass-self-dependencies,Subpass Self-dependency>>
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
|
@ -15,8 +15,8 @@ endif::doctype-manpage[]
|
||||
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics or compute operations
|
||||
* This command must: only be called outside of a render pass instance
|
||||
* Each of pname:commandBuffer and pname:event must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
endif::doctype-manpage[]
|
||||
|
@ -24,9 +24,9 @@ endif::doctype-manpage[]
|
||||
* pname:srcImage must: have a sample count equal to any valid sample count value other than ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice
|
||||
* pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice
|
||||
* pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL
|
||||
* pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL
|
||||
* If pname:dstImage was created with pname:tiling equal to ename:VK_IMAGE_TILING_LINEAR, pname:dstImage must: have been created with a pname:format that supports being a color attachment, as specified by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in sname:VkFormatProperties::pname:linearTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties
|
||||
* If pname:dstImage was created with pname:tiling equal to ename:VK_IMAGE_TILING_OPTIMAL, pname:dstImage must: have been created with a pname:format that supports being a color attachment, as specified by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in sname:VkFormatProperties::pname:optimalTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties
|
||||
ifndef::doctype-manpage[]
|
||||
|
@ -15,8 +15,8 @@ endif::doctype-manpage[]
|
||||
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics or compute operations
|
||||
* This command must: only be called outside of a render pass instance
|
||||
* Each of pname:commandBuffer and pname:event must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
endif::doctype-manpage[]
|
||||
|
@ -9,16 +9,16 @@ Valid Usage
|
||||
endif::doctype-manpage[]
|
||||
* pname:commandBuffer must: be a valid sname:VkCommandBuffer handle
|
||||
* pname:dstBuffer must: be a valid sname:VkBuffer handle
|
||||
* pname:pData must: be a pointer to an array of pname:dataSize/4 basetype:uint32_t values
|
||||
* pname:pData must: be a pointer to an array of latexmath:[$dataSize \over 4$] basetype:uint32_t values
|
||||
* pname:commandBuffer must: be in the recording state
|
||||
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support transfer, graphics or compute operations
|
||||
* This command must: only be called outside of a render pass instance
|
||||
* Each of pname:commandBuffer and pname:dstBuffer must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* The sum of pname:dstOffset and pname:dataSize must: be less than or equal to the size of pname:dstBuffer
|
||||
* pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||
* The value of pname:dstOffset must: be a multiple of `4`
|
||||
* The value of pname:dataSize must: be greater than `0`
|
||||
* The value of pname:dataSize must: be less than `65536`
|
||||
* The value of pname:dataSize must: be less than or equal to `65536`
|
||||
* The value of pname:dataSize must: be a multiple of `4`
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
|
@ -20,11 +20,11 @@ endif::doctype-manpage[]
|
||||
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics or compute operations
|
||||
* The value of pname:eventCount must: be greater than `0`
|
||||
* Each of pname:commandBuffer and the elements of pname:pEvents must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* pname:srcStageMask must: be the bitwise OR of the pname:stageMask parameter used in previous calls to fname:vkCmdSetEvent with any of the members of pname:pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the members of pname:pEvents was set using fname:vkSetEvent
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* pname:srcStageMask must: be the bitwise OR of the pname:stageMask parameter used in previous calls to fname:vkCmdSetEvent with any of the members of pname:pEvents and ename:VK_PIPELINE_STAGE_HOST_BIT if any of the members of pname:pEvents was set using fname:vkSetEvent
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If pname:pEvents includes one or more events that will be signaled by fname:vkSetEvent after pname:commandBuffer has been submitted to a queue, then fname:vkCmdWaitEvents mustnot: be called inside a render pass instance
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
|
@ -10,8 +10,7 @@ endif::doctype-manpage[]
|
||||
* pname:device must: be a valid sname:VkDevice handle
|
||||
* pname:image must: be a valid sname:VkImage handle
|
||||
* pname:pSparseMemoryRequirementCount must: be a pointer to a basetype:uint32_t value
|
||||
* If pname:pSparseMemoryRequirements is not `NULL`, pname:pSparseMemoryRequirements must: be a pointer to an array of pname:pSparseMemoryRequirementCount sname:VkSparseImageMemoryRequirements structures
|
||||
* If pname:pSparseMemoryRequirements is not `NULL`, the value referenced by pname:pSparseMemoryRequirementCount must: be greater than `0`
|
||||
* If the value referenced by pname:pSparseMemoryRequirementCount is not `0`, and pname:pSparseMemoryRequirements is not `NULL`, pname:pSparseMemoryRequirements must: be a pointer to an array of pname:pSparseMemoryRequirementCount sname:VkSparseImageMemoryRequirements structures
|
||||
* pname:image must: have been created, allocated or retrieved from pname:device
|
||||
* Each of pname:device and pname:image must: have been created, allocated or retrieved from the same sname:VkPhysicalDevice
|
||||
* pname:image must: have been created with the ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag
|
||||
|
@ -14,8 +14,8 @@ endif::doctype-manpage[]
|
||||
* pname:buffer must: be a valid sname:VkBuffer handle
|
||||
* The value of pname:offset must: be less than the size of pname:buffer
|
||||
* The sum of pname:offset and pname:size must: be less than or equal to than the size of pname:buffer
|
||||
* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be VK_QUEUE_FAMILY_IGNORED
|
||||
* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>)
|
||||
* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be ename:VK_QUEUE_FAMILY_IGNORED
|
||||
* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>)
|
||||
* If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex are valid queue families, at least one of them must: be the same as the family of the queue that will execute this barrier
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
|
@ -47,20 +47,20 @@ endif::doctype-manpage[]
|
||||
* If the <<features-features-textureCompressionBC,BC texture compression>> feature is not enabled, pname:format mustnot: be ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK, ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK, ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK, ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK, ename:VK_FORMAT_BC2_UNORM_BLOCK, ename:VK_FORMAT_BC2_SRGB_BLOCK, ename:VK_FORMAT_BC3_UNORM_BLOCK, ename:VK_FORMAT_BC3_SRGB_BLOCK, ename:VK_FORMAT_BC4_UNORM_BLOCK, ename:VK_FORMAT_BC4_SNORM_BLOCK, ename:VK_FORMAT_BC5_UNORM_BLOCK, ename:VK_FORMAT_BC5_SNORM_BLOCK, ename:VK_FORMAT_BC6H_UFLOAT_BLOCK, ename:VK_FORMAT_BC6H_SFLOAT_BLOCK, ename:VK_FORMAT_BC7_UNORM_BLOCK, or ename:VK_FORMAT_BC7_SRGB_BLOCK
|
||||
* If the <<features-features-shaderStorageImageMultisample,multisampled storage images>> feature is not enabled, and pname:usage contains ename:VK_IMAGE_USAGE_STORAGE_BIT, pname:samples must: be ename:VK_SAMPLE_COUNT_1_BIT
|
||||
* If the <<features-features-sparseBinding,sparse bindings>> feature is not enabled, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT
|
||||
* If the <<features-features-sparseResidencyImage2D,sparse residency for 2D images>> feature is not enabled, and pname:imageType is VK_IMAGE_TYPE_2D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidencyImage3D,sparse residency for 3D images>> feature is not enabled, and pname:imageType is VK_IMAGE_TYPE_3D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidency2Samples,sparse residency for images with 2 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_2_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidency4Samples,sparse residency for images with 4 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_4_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidency8Samples,sparse residency for images with 8 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_8_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidency16Samples,sparse residency for images with 16 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_16_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
|
||||
* If the <<features-features-sparseResidencyImage2D,sparse residency for 2D images>> feature is not enabled, and pname:imageType is ename:VK_IMAGE_TYPE_2D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidencyImage3D,sparse residency for 3D images>> feature is not enabled, and pname:imageType is ename:VK_IMAGE_TYPE_3D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidency2Samples,sparse residency for images with 2 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_2_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidency4Samples,sparse residency for images with 4 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_4_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidency8Samples,sparse residency for images with 8 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_8_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the <<features-features-sparseResidency16Samples,sparse residency for images with 16 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_16_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
|
||||
* If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
|
||||
* If pname:flags contains ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must: also contain at least one of ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT or ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
|
@ -17,8 +17,8 @@ endif::doctype-manpage[]
|
||||
* pname:subresourceRange must: be a valid sname:VkImageSubresourceRange structure
|
||||
* pname:oldLayout must: be ename:VK_IMAGE_LAYOUT_UNDEFINED, ename:VK_IMAGE_LAYOUT_PREINITIALIZED or the current layout of the image region affected by the barrier
|
||||
* pname:newLayout mustnot: be ename:VK_IMAGE_LAYOUT_UNDEFINED or ename:VK_IMAGE_LAYOUT_PREINITIALIZED
|
||||
* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be VK_QUEUE_FAMILY_IGNORED
|
||||
* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>)
|
||||
* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be ename:VK_QUEUE_FAMILY_IGNORED
|
||||
* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>)
|
||||
* If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex are valid queue families, at least one of them must: be the same as the family of the queue that will execute this barrier
|
||||
* pname:subresourceRange must: be a valid subresource range for the image (see <<resources-image-views>>)
|
||||
* If pname:image has a depth/stencil format with both depth and stencil components, then pname:aspectMask member of pname:subresourceRange must: include both ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT
|
||||
|
@ -14,10 +14,10 @@ endif::doctype-manpage[]
|
||||
* pname:dstAlphaBlendFactor must: be a valid elink:VkBlendFactor value
|
||||
* pname:alphaBlendOp must: be a valid elink:VkBlendOp value
|
||||
* pname:colorWriteMask must: be a valid combination of elink:VkColorComponentFlagBits values
|
||||
* If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcColorBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA
|
||||
* If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstColorBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA
|
||||
* If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcAlphaBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA
|
||||
* If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstAlphaBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA
|
||||
* If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcColorBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA
|
||||
* If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstColorBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA
|
||||
* If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcAlphaBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA
|
||||
* If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstAlphaBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
endif::doctype-manpage[]
|
||||
|
@ -13,7 +13,7 @@ endif::doctype-manpage[]
|
||||
* pname:topology must: be a valid elink:VkPrimitiveTopology value
|
||||
* If pname:topology is ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST, ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, the value of pname:primitiveRestartEnable must: be ename:VK_FALSE
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:topology mustnot: be any of ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:topology mustnot: be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:topology mustnot: be ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
endif::doctype-manpage[]
|
||||
|
@ -14,8 +14,8 @@ endif::doctype-manpage[]
|
||||
* pname:module must: be a valid sname:VkShaderModule handle
|
||||
* pname:pName must: be a null-terminated string
|
||||
* If pname:pSpecializationInfo is not `NULL`, pname:pSpecializationInfo must: be a pointer to a valid sname:VkSpecializationInfo structure
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stage mustnot: be pname:VK_SHADER_STAGE_GEOMETRY_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stage mustnot: be pname:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or pname:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stage mustnot: be ename:VK_SHADER_STAGE_GEOMETRY_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stage mustnot: be ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
|
||||
* pname:stage mustnot: be ename:VK_SHADER_STAGE_ALL_GRAPHICS, or ename:VK_SHADER_STAGE_ALL
|
||||
* pname:pName must: be the name of an code:OpEntryPoint in pname:module with an execution model that matches pname:stage
|
||||
* If the identified entry point includes any variable in its interface that is declared with the code:ClipDistance code:BuiltIn decoration, that variable mustnot: have an array size greater than sname:VkPhysicalDeviceLimits::pname:maxClipDistances
|
||||
|
@ -26,6 +26,7 @@ endif::doctype-manpage[]
|
||||
* If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:anisotropyEnable must: be ename:VK_FALSE
|
||||
* If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:compareEnable must: be ename:VK_FALSE
|
||||
* If any of pname:addressModeU, pname:addressModeV or pname:addressModeW are ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, pname:borderColor must: be a valid elink:VkBorderColor value
|
||||
* If the VK_KHR_mirror_clamp_to_edge extension is not enabled, pname:addressModeU, pname:addressModeV and pname:addressModeW mustnot: be ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
|
||||
* If pname:compareEnable is ename:VK_TRUE, pname:compareOp must: be a valid elink:VkCompareOp value
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
|
@ -10,7 +10,7 @@ endif::doctype-manpage[]
|
||||
* pname:sType must: be ename:VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
|
||||
* pname:pNext must: be `NULL`
|
||||
* pname:flags must: be `0`
|
||||
* pname:pCode must: be a pointer to an array of pname:codeSize/4 basetype:uint32_t values
|
||||
* pname:pCode must: be a pointer to an array of latexmath:[$codeSize \over 4$] basetype:uint32_t values
|
||||
* pname:codeSize must: be greater than 0
|
||||
* pname:codeSize must: be a multiple of 4
|
||||
* pname:pCode must: point to valid SPIR-V code, formatted and packed as described by https://www.khronos.org/registry/spir-v/specs/1.0/SPIRV.html[the SPIR-V Specification v1.0]
|
||||
|
@ -16,7 +16,7 @@ endif::doctype-manpage[]
|
||||
* If pname:signalSemaphoreCount is not `0`, pname:pSignalSemaphores must: be a pointer to an array of pname:signalSemaphoreCount valid sname:VkSemaphore handles
|
||||
* Each of the elements of pname:pWaitSemaphores, the elements of pname:pCommandBuffers and the elements of pname:pSignalSemaphores that are valid handles must: have been created, allocated or retrieved from the same sname:VkDevice
|
||||
* Any given element of pname:pSignalSemaphores must: currently be unsignalled
|
||||
* Any given element of pname:pCommandBuffers must: either have been recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device
|
||||
* Any given element of pname:pCommandBuffers must: either have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device
|
||||
* Any given element of pname:pCommandBuffers must: be in the executable state
|
||||
* If any given element of pname:pCommandBuffers contains commands that execute secondary command buffers, those secondary command buffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device
|
||||
* If any given element of pname:pCommandBuffers was created with ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, it mustnot: have been previously submitted without re-recording that command buffer
|
||||
@ -24,8 +24,8 @@ endif::doctype-manpage[]
|
||||
* Any given element of pname:pCommandBuffers must: have been created on a sname:VkCommandPool that was created for the same queue family that the calling command's pname:queue belongs to
|
||||
* Any given element of pname:pCommandBuffers mustnot: have been created with ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY
|
||||
* Any given element of sname:VkSemaphore in pname:pWaitSemaphores must: refer to a prior signal of that sname:VkSemaphore that won't be consumed by any other wait on that semaphore
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
ifndef::doctype-manpage[]
|
||||
********************************************************************************
|
||||
endif::doctype-manpage[]
|
||||
|
@ -14,10 +14,10 @@ endif::doctype-manpage[]
|
||||
* pname:srcAccessMask must: be a valid combination of elink:VkAccessFlagBits values
|
||||
* pname:dstAccessMask must: be a valid combination of elink:VkAccessFlagBits values
|
||||
* pname:dependencyFlags must: be a valid combination of elink:VkDependencyFlagBits values
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||
* The value of pname:srcSubpass must: be less than or equal to pname:dstSubpass, unless one of them is ename:VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order
|
||||
* The values of pname:srcSubpass and pname:dstSubpass mustnot: both be equal to ename:VK_SUBPASS_EXTERNAL
|
||||
ifndef::doctype-manpage[]
|
||||
|
@ -110,8 +110,8 @@ consts['VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType'
|
||||
consts['VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType'
|
||||
consts['VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType'
|
||||
consts['VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType'
|
||||
consts['VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT'] = 'VkStructureType'
|
||||
enums['VkStructureType'] = ['VK_STRUCTURE_TYPE_APPLICATION_INFO', 'VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO', 'VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SUBMIT_INFO', 'VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE', 'VK_STRUCTURE_TYPE_BIND_SPARSE_INFO', 'VK_STRUCTURE_TYPE_FENCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO', 'VK_STRUCTURE_TYPE_EVENT_CREATE_INFO', 'VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO', 'VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO', 'VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO', 'VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO', 'VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO', 'VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET', 'VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET', 'VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO', 'VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO', 'VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO', 'VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_PRESENT_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR', 'VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT']
|
||||
consts['VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT'] = 'VkStructureType'
|
||||
enums['VkStructureType'] = ['VK_STRUCTURE_TYPE_APPLICATION_INFO', 'VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO', 'VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SUBMIT_INFO', 'VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE', 'VK_STRUCTURE_TYPE_BIND_SPARSE_INFO', 'VK_STRUCTURE_TYPE_FENCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO', 'VK_STRUCTURE_TYPE_EVENT_CREATE_INFO', 'VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO', 'VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO', 'VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO', 'VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO', 'VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO', 'VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO', 'VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO', 'VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET', 'VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET', 'VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO', 'VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO', 'VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO', 'VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO', 'VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_MEMORY_BARRIER', 'VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO', 'VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO', 'VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_PRESENT_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR', 'VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR', 'VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT']
|
||||
# Unprocessed type: void
|
||||
# Unprocessed type: uint32_t
|
||||
# Unprocessed type: VkFlags category: basetype
|
||||
@ -1036,3 +1036,5 @@ structs['VkSurfaceKHR'] = None
|
||||
protos['vkCreateXlibSurfaceKHR'] = ['instance', 'pCreateInfo', 'pAllocator', 'pSurface']
|
||||
# Unprocessed type: VisualID
|
||||
protos['vkGetPhysicalDeviceXlibPresentationSupportKHR'] = ['physicalDevice', 'queueFamilyIndex', 'dpy', 'visualID']
|
||||
consts['VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION'] = None
|
||||
consts['VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME'] = None
|
||||
|
@ -102,6 +102,8 @@ include::appendices/compressedtex.txt[]
|
||||
|
||||
include::appendices/extensions.txt[]
|
||||
|
||||
include::appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt[]
|
||||
|
||||
include::appendices/invariance.txt[]
|
||||
|
||||
include::appendices/glossary.txt[]
|
||||
|
@ -625,7 +625,8 @@ class COutputGenerator(OutputGenerator):
|
||||
#
|
||||
# Multiple inclusion protection & C++ wrappers.
|
||||
if (genOpts.protectFile and self.genOpts.filename):
|
||||
headerSym = '__' + re.sub('\.h', '_h_', os.path.basename(self.genOpts.filename))
|
||||
headerSym = re.sub('\.h', '_h_',
|
||||
os.path.basename(self.genOpts.filename)).upper()
|
||||
write('#ifndef', headerSym, file=self.outFile)
|
||||
write('#define', headerSym, '1', file=self.outFile)
|
||||
self.newline()
|
||||
|
@ -203,6 +203,7 @@ buildList = [
|
||||
defaultExtensions = None,
|
||||
addExtensions =
|
||||
makeREstring([
|
||||
'VK_KHR_sampler_mirror_clamp_to_edge',
|
||||
'VK_KHR_xlib_surface',
|
||||
]),
|
||||
removeExtensions =
|
||||
@ -227,6 +228,7 @@ buildList = [
|
||||
defaultExtensions = None,
|
||||
addExtensions =
|
||||
makeREstring([
|
||||
'VK_KHR_sampler_mirror_clamp_to_edge',
|
||||
'VK_KHR_xlib_surface',
|
||||
]),
|
||||
removeExtensions =
|
||||
@ -245,6 +247,7 @@ buildList = [
|
||||
defaultExtensions = None,
|
||||
addExtensions =
|
||||
makeREstring([
|
||||
'VK_KHR_sampler_mirror_clamp_to_edge',
|
||||
'VK_KHR_xlib_surface',
|
||||
]),
|
||||
removeExtensions =
|
||||
@ -264,6 +267,7 @@ buildList = [
|
||||
defaultExtensions = None,
|
||||
addExtensions =
|
||||
makeREstring([
|
||||
'VK_KHR_sampler_mirror_clamp_to_edge',
|
||||
'VK_KHR_xlib_surface',
|
||||
]),
|
||||
removeExtensions =
|
||||
|
Binary file not shown.
@ -50,40 +50,78 @@
|
||||
|
||||
\title{The Khronos Vulkan API Registry for Vulkan}
|
||||
\author{Jon Leech}
|
||||
\date{Last updated 2016/02/07}
|
||||
\date{Last updated 2016/02/22}
|
||||
\maketitle
|
||||
|
||||
\begin{abstract}
|
||||
|
||||
This document describes the Khronos Vulkan API Registry schema, and provides
|
||||
some additional information about using the registry and scripts to generate
|
||||
a variety of outputs including C header files and several types of asciidoc
|
||||
include files used in the Vulkan API specification and reference pages. The
|
||||
underlying XML files and scripts are located on the Khronos Gitlab server,
|
||||
currently in the {\em master} branch at URL
|
||||
a variety of outputs, including C header files as well as several types of
|
||||
asciidoc include files used in the Vulkan API specification and reference
|
||||
pages. The underlying XML files and scripts are located on the Khronos
|
||||
public Github server as URL
|
||||
|
||||
\begin{center}
|
||||
{\bf \href{https://gitlab.khronos.org/vulkan/vulkan/tree/master/src/spec/}
|
||||
{https://gitlab.khronos.org/vulkan/vulkan/tree/master/src/spec/}}
|
||||
{\bf \href{https://github.com/KhronosGroup/Vulkan-Docs}
|
||||
{https://github.com/KhronosGroup/Vulkan-Docs}}
|
||||
\end{center}
|
||||
|
||||
The authoritative copy of the Registry is maintained in the {\em 1.0}
|
||||
branch.
|
||||
|
||||
\end{abstract}
|
||||
|
||||
\tableofcontents
|
||||
|
||||
\section{Introduction}
|
||||
|
||||
The registry uses an XML representation of the Vulkan API and a set of
|
||||
Python scripts to manipulate the XML, based on the lxml Python bindings. It
|
||||
includes an XML schema and validator.
|
||||
The registry uses an XML representation of the Vulkan API, together with a
|
||||
set of Python scripts to manipulate the registry once loaded. The scripts
|
||||
rely on the lxml Python bindings to parse and operate on XML. An XML schema
|
||||
and validator target are included.
|
||||
|
||||
The registry schema is based on, but not identical to the schema used for
|
||||
the previously published OpenGL, OpenGL ES and EGL API registries. The
|
||||
schema was extended to represent additional types and concepts not needed
|
||||
for those APIS, such as structure and enumerant types.
|
||||
The schema is based on, but not identical to that used for the previously
|
||||
published OpenGL, OpenGL ES and EGL API registries. It was extended to
|
||||
represent additional types and concepts not needed for those APIS, such as
|
||||
structure and enumerant types, as well as additional types
|
||||
of registered information specific to Vulkan.
|
||||
|
||||
The processed C header file corresponding to the registry is checked in
|
||||
under src/vulkan/vulkan.h .
|
||||
under {\tt src/vulkan/vulkan.h}.
|
||||
|
||||
|
||||
\subsection{Schema Choices}
|
||||
|
||||
The XML schema is not pure XML all the way down. In particular, command
|
||||
return types/names and parameters, and structure members, are described in
|
||||
mixed-mode tag containing C declarations of the appropriate information,
|
||||
with some XML nodes annotating particular parts of the declaration such as
|
||||
its base type and name. This choice is based on prior experience with the
|
||||
SGI {\tt .spec} file format used to describe OpenCL, and greatly eases human
|
||||
reading and writing the XML, and generating C-oriented output. The cost is
|
||||
that people writing output generators for other languages will have to
|
||||
include enough logic to parse the C declarations and extract the relevant
|
||||
information.
|
||||
|
||||
People who don't find the supplied Python scripts to suit their needs are
|
||||
likely to write their own parsers, interpreters, and/or converters operating
|
||||
on the registry XML. We hope that we've provided enough information in this
|
||||
document, the RNC schema ({\tt registry.rnc}), and comments in the Registry
|
||||
({\tt vk.xml}) itself to enable such projects. If not and you need
|
||||
clarifications; if you have other problems using the registry; or if you
|
||||
have proposed changes and enhancements, then please file issues on Khronos'
|
||||
public Github project at
|
||||
|
||||
\begin{center}
|
||||
{\bf \href{https://github.com/KhronosGroup/Vulkan-Docs/issues}
|
||||
{https://github.com/KhronosGroup/Vulkan-Docs/issues}}
|
||||
\end{center}
|
||||
|
||||
Please tag your issues with {\tt [Registry]} in the title line to help us
|
||||
categorize them. We expect that we will eventually separate the registry
|
||||
from the specification source into a separate repository, but for now they
|
||||
are mixed together.
|
||||
|
||||
|
||||
\section{Getting Started}
|
||||
@ -144,9 +182,6 @@ Other Makefile targets include:
|
||||
\code{vulkan-docs}.
|
||||
\item \code{validate} - validate \code{vk.xml} against the XML schema.
|
||||
Recommended if you're making nontrivial changes.
|
||||
%% \item \code{vk.json} - generate JSON version of \code{vk.xml}. Currently the
|
||||
%% converter is generating syntactically but not semantically legal JSON,
|
||||
%% and it's difficult to map the XML schemaanso don't use this target yet.
|
||||
\item \code{readme.pdf} - regenerate this document from the LaTeX source.
|
||||
Most people will never need to do this. If you do, you must have
|
||||
pdflatex installed, preferably from the TeTeX distribution.
|
||||
@ -342,11 +377,13 @@ information is used to generate more complicated C types.
|
||||
\code{enum}, \code{funcpointer}, \code{group}, \code{handle},
|
||||
\code{include}, \code{struct}, and \code{union}, as described below.
|
||||
\item \attr{comment} - optional. Arbitrary string (unused).
|
||||
\item \attr{parent} only applicable if category is \code{handle}. Notes another type with
|
||||
the \code{handle} category that acts as a parent object for this type.
|
||||
\item \attr{returnedonly} only applicable if category is \code{struct} or \code{union}.
|
||||
Notes that this struct/union is going to be filled in by the API, rather than an
|
||||
application filling it out and passing it to the API.
|
||||
\item \attr{parent} only applicable if category is \code{handle}. Notes
|
||||
another type with the \code{handle} category that acts as a parent
|
||||
object for this type.
|
||||
\item \attr{returnedonly} only applicable if category is \code{struct} or
|
||||
\code{union}. Notes that this struct/union is going to be filled in by
|
||||
the API, rather than an application filling it out and passing it to
|
||||
the API.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Contents of \tag{type} tags}
|
||||
@ -381,18 +418,20 @@ member.
|
||||
\paragraph{Attributes of \tag{member} tags}
|
||||
|
||||
\begin{itemize}
|
||||
\item \attr{len} - if the member is an array, len may be one or more of the following
|
||||
things, separated by commas (one for each array indirection): another
|
||||
member of that struct, ``null-terminated'' for a string, ``1'' to indicate it's
|
||||
just a pointer (used for nested pointers), or a latex equation (prefixed with
|
||||
``latex:'')
|
||||
\item \attr{externsync} - denotes that the member should be externally synchronized
|
||||
when accessed by Vulkan
|
||||
\item \attr{optional} - whether this value can be omitted by providing \code{NULL} (for
|
||||
pointers), \code{VK_NULL_HANDLE} (for handles) or 0 (for bitmasks/values)
|
||||
\item \attr{noautovalidity} - prevents automatic validity language being generated
|
||||
for the tagged item. Only suppresses item-specific validity - parenting issues
|
||||
etc. are still captured.
|
||||
\item \attr{len} - if the member is an array, len may be one or more of the
|
||||
following things, separated by commas (one for each array
|
||||
indirection): another member of that struct; ``null-terminated'' for a
|
||||
string; ``1'' to indicate it's just a pointer (used for nested
|
||||
pointers); or an equation (a LaTeX math expression delimited by {\tt
|
||||
latexmath:[\$} and {\tt \$]}.
|
||||
\item \attr{externsync} - denotes that the member should be externally
|
||||
synchronized when accessed by Vulkan
|
||||
\item \attr{optional} - whether this value can be omitted by providing
|
||||
\code{NULL} (for pointers), \code{VK_NULL_HANDLE} (for handles) or 0
|
||||
(for bitmasks/values)
|
||||
\item \attr{noautovalidity} - prevents automatic validity language being
|
||||
generated for the tagged item. Only suppresses item-specific validity
|
||||
- parenting issues etc. are still captured.
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Contents of \tag{member} tags}
|
||||
@ -663,6 +702,12 @@ command (function).
|
||||
more of the terms \code{"compute"}, \code{"dma"}, and
|
||||
\code{"graphics"}, with multiple terms separated by commas
|
||||
(\code{","}).
|
||||
\item \attr{successcodes} - optional. A string describing possible
|
||||
successful return codes from the command, as a comma-separated list of
|
||||
Vulkan result code names.
|
||||
\item \attr{errorcodes} - optional. A string describing possible error
|
||||
return codes from the command, as a comma-separated list of Vulkan
|
||||
result code names.
|
||||
\item \attr{renderpass} - optional. A string identifying whether the
|
||||
command can be issued only inside a render pass (\code{"inside"}),
|
||||
only outside a render pass (\code{"outside"}), or both
|
||||
@ -751,16 +796,18 @@ members.
|
||||
\label{tag:command:param:attr}
|
||||
|
||||
\begin{itemize}
|
||||
\item \attr{len} - if the param is an array, len may be one or more of the following
|
||||
things, separated by commas (one for each array indirection): another
|
||||
param of that command, ``null-terminated'' for a string, ``1'' to indicate it's
|
||||
just a pointer (used for nested pointers), or a latex equation (prefixed with
|
||||
``latex:'')
|
||||
\item \attr{optional} - whether this value can be omitted by providing \code{NULL} (for
|
||||
pointers), \code{VK_NULL_HANDLE} (for handles) or 0 (for bitmasks/values)
|
||||
\item \attr{noautovalidity} - prevents automatic validity language being generated
|
||||
for the tagged item. Only suppresses item-specific validity - parenting issues
|
||||
etc. are still captured.
|
||||
\item \attr{len} - if the param is an array, len may be one or more of the
|
||||
following things, separated by commas (one for each array
|
||||
indirection): another param of that command; ``null-terminated'' for a
|
||||
string; ``1'' to indicate it's just a pointer (used for nested
|
||||
pointers); or an equation (a simple expression prefixed with
|
||||
``math:'')
|
||||
\item \attr{optional} - whether this value can be omitted by providing
|
||||
\code{NULL} (for pointers), \code{VK_NULL_HANDLE} (for handles) or 0
|
||||
(for bitmasks/values)
|
||||
\item \attr{noautovalidity} - prevents automatic validity language being
|
||||
generated for the tagged item. Only suppresses item-specific validity
|
||||
- parenting issues etc. are still captured.
|
||||
\item \attr{externsync} - optional. A boolean string, which must have the
|
||||
value \code{"true"} if present, indicating that this parameter (e.g.
|
||||
the object a handle refers to, or the contents of an array a pointer
|
||||
@ -1358,8 +1405,8 @@ resulting \code{vulkan.h} header will look like this:
|
||||
|
||||
\begin{verbatim}
|
||||
|
||||
#ifndef __vulkan_h_
|
||||
#define __vulkan_h_ 1
|
||||
#ifndef VULKAN_H_
|
||||
#define VULKAN_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -1754,6 +1801,12 @@ log of this document (see section~\ref{changelog}). Changes to the
|
||||
\label{changelog}
|
||||
|
||||
\begin{itemize}
|
||||
\item 2016/02/22 - Change math markup in \attr{len} attributes to use
|
||||
asciidoc ``latexmath:[$'' and ``$]'' delimiters.
|
||||
\item 2016/02/19 - Add \attr{successcodes} and \attr{errorcodes} attributes
|
||||
of \tag{command} tags. Add a subsection to the introduction
|
||||
describing the schema choices and how to file issues against
|
||||
the registry.
|
||||
\item 2016/02/07 - Add \attr{vendorids} tags for Khronos vendor IDs.
|
||||
\item 2015/12/10 - Add \attr{author} and \attr{contact} attributes for
|
||||
\tag{extension} tags.
|
||||
|
@ -49,11 +49,11 @@ Vendorids = element vendorids {
|
||||
|
||||
# <vendorid> defines a single vendor ID.
|
||||
# name - author ID of the vendor
|
||||
# id - Khronos vendor ID
|
||||
# id - Khronos vendor ID (hexadecimal constant starting at 0x10000)
|
||||
# comment - unused
|
||||
Tag = element tag {
|
||||
Vendorid = element vendorid {
|
||||
attribute name { text } ,
|
||||
attribute author { text } ,
|
||||
attribute id { text } ,
|
||||
Comment ?
|
||||
}
|
||||
|
||||
@ -244,6 +244,10 @@ Commands = element commands {
|
||||
}
|
||||
|
||||
# <command> defines a single command
|
||||
#
|
||||
# The possible attributes are not described in this comment block yet, but
|
||||
# are in readme.pdf.
|
||||
#
|
||||
# <proto> is the C function prototype, including the return type
|
||||
# <param> are function parameters, in order
|
||||
# len - if the member is an array, len may be one or more of the following
|
||||
@ -268,6 +272,8 @@ Commands = element commands {
|
||||
# are related to them and also require external synchronization.
|
||||
Command = element command {
|
||||
attribute queues { text } ? ,
|
||||
attribute successcodes { text } ? ,
|
||||
attribute errorcodes { text } ? ,
|
||||
attribute renderpass { text } ? ,
|
||||
attribute cmdbufferlevel { text } ? ,
|
||||
Comment ? ,
|
||||
@ -347,8 +353,7 @@ Extensions = element extensions {
|
||||
# or "disabled" to never generate output.
|
||||
# author - name of the author (usually a company or project name)
|
||||
# contact - contact responsible for the tag (name and contact information)
|
||||
# In addition, <require> / <remove> tags also support an
|
||||
# api attribute:
|
||||
# In addition, <require> / <remove> tags also support an api attribute:
|
||||
# api - only require/remove these features for the matching API.
|
||||
# Not a regular expression.
|
||||
Extension = element extension {
|
||||
|
181
src/spec/vk.xml
181
src/spec/vk.xml
@ -36,6 +36,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<!-- SECTION: Vulkan vendor IDs for physical devices without PCI vendor IDs -->
|
||||
<vendorids>
|
||||
<vendorid name="KHR" id="0x10000" comment="This is the next available Khronos vendor ID"/>
|
||||
<vendorid name="VIV" id="0x10001" comment="Vivante vendor ID"/>
|
||||
<vendorid name="VSI" id="0x10002" comment="VeriSilicon vendor ID"/>
|
||||
</vendorids>
|
||||
|
||||
<!-- SECTION: Vulkan vendor/author tags for extensions and layers -->
|
||||
@ -49,6 +51,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<tag name="NV" author="NVIDIA Corporation" contact="Daniel Koch @dgkoch"/>
|
||||
<tag name="NVX" author="NVIDIA Corporation" contact="Daniel Koch @dgkoch"/>
|
||||
<tag name="VIV" author="Vivante Corporation" contact="Yanjun Zhang @yanjunzhang"/>
|
||||
<tag name="VSI" author="VeriSilicon Holdings Co., Ltd." contact="Yanjun Zhang @yanjunzhang"/>
|
||||
<tag name="KDAB" author="KDAB" contact="Sean Harmer @seanharmer"/>
|
||||
<tag name="ANDROID" author="Google, Inc." contact="Jesse Hall @jessehall"/>
|
||||
<tag name="CHROMIUM" author="Google, Inc." contact="Jesse Hall @jessehall"/>
|
||||
@ -94,7 +97,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<type category="define">#define <name>VK_VERSION_PATCH</name>(version) ((uint32_t)(version) & 0xfff)</type>
|
||||
|
||||
<type category="define">// Vulkan API version supported by this file
|
||||
#define <name>VK_API_VERSION</name> <type>VK_MAKE_VERSION</type>(1, 0, 3)</type>
|
||||
#define <name>VK_API_VERSION</name> <type>VK_MAKE_VERSION</type>(1, 0, 4)</type>
|
||||
|
||||
|
||||
<type category="define">
|
||||
@ -741,8 +744,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<validity>
|
||||
<usage>The value of pname:offset must: be less than the size of pname:buffer</usage>
|
||||
<usage>The sum of pname:offset and pname:size must: be less than or equal to than the size of pname:buffer</usage>
|
||||
<usage>If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be VK_QUEUE_FAMILY_IGNORED</usage>
|
||||
<usage>If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>)</usage>
|
||||
<usage>If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be ename:VK_QUEUE_FAMILY_IGNORED</usage>
|
||||
<usage>If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>)</usage>
|
||||
<usage>If pname:buffer was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex are valid queue families, at least one of them must: be the same as the family of the queue that will execute this barrier</usage>
|
||||
</validity>
|
||||
</type>
|
||||
@ -760,8 +763,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<validity>
|
||||
<usage>pname:oldLayout must: be ename:VK_IMAGE_LAYOUT_UNDEFINED, ename:VK_IMAGE_LAYOUT_PREINITIALIZED or the current layout of the image region affected by the barrier</usage>
|
||||
<usage>pname:newLayout mustnot: be ename:VK_IMAGE_LAYOUT_UNDEFINED or ename:VK_IMAGE_LAYOUT_PREINITIALIZED</usage>
|
||||
<usage>If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be VK_QUEUE_FAMILY_IGNORED</usage>
|
||||
<usage>If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>)</usage>
|
||||
<usage>If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_CONCURRENT, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: both be ename:VK_QUEUE_FAMILY_IGNORED</usage>
|
||||
<usage>If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex must: either both be ename:VK_QUEUE_FAMILY_IGNORED, or both be a valid queue family (see <<devsandqueues-queueprops>>)</usage>
|
||||
<usage>If pname:image was created with a sharing mode of ename:VK_SHARING_MODE_EXCLUSIVE, and pname:srcQueueFamilyIndex and pname:dstQueueFamilyIndex are valid queue families, at least one of them must: be the same as the family of the queue that will execute this barrier</usage>
|
||||
<usage>pname:subresourceRange must: be a valid subresource range for the image (see <<resources-image-views>>)</usage>
|
||||
<usage>If pname:image has a depth/stencil format with both depth and stencil components, then pname:aspectMask member of pname:subresourceRange must: include both ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT</usage>
|
||||
@ -819,20 +822,20 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>If the <<features-features-textureCompressionBC,BC texture compression>> feature is not enabled, pname:format mustnot: be ename:VK_FORMAT_BC1_RGB_UNORM_BLOCK, ename:VK_FORMAT_BC1_RGB_SRGB_BLOCK, ename:VK_FORMAT_BC1_RGBA_UNORM_BLOCK, ename:VK_FORMAT_BC1_RGBA_SRGB_BLOCK, ename:VK_FORMAT_BC2_UNORM_BLOCK, ename:VK_FORMAT_BC2_SRGB_BLOCK, ename:VK_FORMAT_BC3_UNORM_BLOCK, ename:VK_FORMAT_BC3_SRGB_BLOCK, ename:VK_FORMAT_BC4_UNORM_BLOCK, ename:VK_FORMAT_BC4_SNORM_BLOCK, ename:VK_FORMAT_BC5_UNORM_BLOCK, ename:VK_FORMAT_BC5_SNORM_BLOCK, ename:VK_FORMAT_BC6H_UFLOAT_BLOCK, ename:VK_FORMAT_BC6H_SFLOAT_BLOCK, ename:VK_FORMAT_BC7_UNORM_BLOCK, or ename:VK_FORMAT_BC7_SRGB_BLOCK</usage>
|
||||
<usage>If the <<features-features-shaderStorageImageMultisample,multisampled storage images>> feature is not enabled, and pname:usage contains ename:VK_IMAGE_USAGE_STORAGE_BIT, pname:samples must: be ename:VK_SAMPLE_COUNT_1_BIT</usage>
|
||||
<usage>If the <<features-features-sparseBinding,sparse bindings>> feature is not enabled, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidencyImage2D,sparse residency for 2D images>> feature is not enabled, and pname:imageType is VK_IMAGE_TYPE_2D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidencyImage3D,sparse residency for 3D images>> feature is not enabled, and pname:imageType is VK_IMAGE_TYPE_3D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidency2Samples,sparse residency for images with 2 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_2_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidency4Samples,sparse residency for images with 4 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_4_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidency8Samples,sparse residency for images with 8 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_8_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidency16Samples,sparse residency for images with 16 samples>> feature is not enabled, pname:imageType is VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_16_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidencyImage2D,sparse residency for 2D images>> feature is not enabled, and pname:imageType is ename:VK_IMAGE_TYPE_2D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidencyImage3D,sparse residency for 3D images>> feature is not enabled, and pname:imageType is ename:VK_IMAGE_TYPE_3D, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidency2Samples,sparse residency for images with 2 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_2_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidency4Samples,sparse residency for images with 4 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_4_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidency8Samples,sparse residency for images with 8 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_8_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the <<features-features-sparseResidency16Samples,sparse residency for images with 16 samples>> feature is not enabled, pname:imageType is ename:VK_IMAGE_TYPE_2D, and pname:samples is ename:VK_SAMPLE_COUNT_16_BIT, pname:flags mustnot: contain ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_LINEAR, and the value of sname:VkFormatProperties::pname:linearTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_SAMPLED_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_STORAGE_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT</usage>
|
||||
<usage>If the value of pname:tiling is ename:VK_IMAGE_TILING_OPTIMAL, and the value of sname:VkFormatProperties::pname:optimalTilingFeatures (as returned by fname:vkGetPhysicalDeviceFormatProperties with the same value of pname:format) does not include ename:VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, pname:usage mustnot: contain ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT</usage>
|
||||
<usage>If pname:flags contains ename:VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must: also contain at least one of ename:VK_IMAGE_CREATE_SPARSE_BINDING_BIT or ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</usage>
|
||||
</validity>
|
||||
</type>
|
||||
@ -1037,7 +1040,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||
<member optional="true"><type>VkShaderModuleCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||
<member><type>size_t</type> <name>codeSize</name></member> <!-- Specified in bytes -->
|
||||
<member len="codeSize/4">const <type>uint32_t</type>* <name>pCode</name></member> <!-- Binary code of size codeSize -->
|
||||
<member len="latexmath:[$codeSize \over 4$]">const <type>uint32_t</type>* <name>pCode</name></member> <!-- Binary code of size codeSize -->
|
||||
<validity>
|
||||
<usage>pname:codeSize must: be greater than 0</usage>
|
||||
<usage>pname:codeSize must: be a multiple of 4</usage>
|
||||
@ -1118,8 +1121,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<member len="null-terminated">const <type>char</type>* <name>pName</name></member> <!-- Null-terminated entry point name -->
|
||||
<member optional="true">const <type>VkSpecializationInfo</type>* <name>pSpecializationInfo</name></member>
|
||||
<validity>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stage mustnot: be pname:VK_SHADER_STAGE_GEOMETRY_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stage mustnot: be pname:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or pname:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stage mustnot: be ename:VK_SHADER_STAGE_GEOMETRY_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stage mustnot: be ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</usage>
|
||||
<usage>pname:stage mustnot: be ename:VK_SHADER_STAGE_ALL_GRAPHICS, or ename:VK_SHADER_STAGE_ALL</usage>
|
||||
<usage>pname:pName must: be the name of an code:OpEntryPoint in pname:module with an execution model that matches pname:stage</usage>
|
||||
<usage>If the identified entry point includes any variable in its interface that is declared with the code:ClipDistance code:BuiltIn decoration, that variable mustnot: have an array size greater than sname:VkPhysicalDeviceLimits::pname:maxClipDistances</usage>
|
||||
@ -1201,7 +1204,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<validity>
|
||||
<usage>If pname:topology is ename:VK_PRIMITIVE_TOPOLOGY_POINT_LIST, ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, the value of pname:primitiveRestartEnable must: be ename:VK_FALSE</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:topology mustnot: be any of ename:VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or ename:VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:topology mustnot: be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:topology mustnot: be ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</usage>
|
||||
</validity>
|
||||
</type>
|
||||
<type category="struct" name="VkPipelineTessellationStateCreateInfo">
|
||||
@ -1255,7 +1258,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<member><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name></member> <!-- Number of samples used for rasterization -->
|
||||
<member><type>VkBool32</type> <name>sampleShadingEnable</name></member> <!-- optional (GL45) -->
|
||||
<member><type>float</type> <name>minSampleShading</name></member> <!-- optional (GL45) -->
|
||||
<member optional="true" len="latexmath:[$\lceil{\mathit{rasterizationSamples} \over 32}\rceil$]">const <type>VkSampleMask</type>* <name>pSampleMask</name></member> <!-- Array of sampleMask words, containing ceil(rasterSamples/32) words -->
|
||||
<member optional="true" len="latexmath:[$\lceil{\mathit{rasterizationSamples} \over 32}\rceil$]">const <type>VkSampleMask</type>* <name>pSampleMask</name></member> <!-- Array of sampleMask words -->
|
||||
<member><type>VkBool32</type> <name>alphaToCoverageEnable</name></member>
|
||||
<member><type>VkBool32</type> <name>alphaToOneEnable</name></member>
|
||||
<validity>
|
||||
@ -1273,10 +1276,10 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<member><type>VkBlendOp</type> <name>alphaBlendOp</name></member>
|
||||
<member optional="true"><type>VkColorComponentFlags</type> <name>colorWriteMask</name></member>
|
||||
<validity>
|
||||
<usage>If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcColorBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA</usage>
|
||||
<usage>If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstColorBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA</usage>
|
||||
<usage>If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcAlphaBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA</usage>
|
||||
<usage>If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstAlphaBlendFactor mustnot: be pname:VK_BLEND_SRC1_COLOR, pname:VK_BLEND_ONE_MINUS_SRC1_COLOR, pname:VK_BLEND_SRC1_ALPHA, or pname:VK_BLEND_ONE_MINUS_SRC1_ALPHA</usage>
|
||||
<usage>If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcColorBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA</usage>
|
||||
<usage>If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstColorBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA</usage>
|
||||
<usage>If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:srcAlphaBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA</usage>
|
||||
<usage>If the <<features-features-dualSrcBlend,dual source blending>> feature is not enabled, pname:dstAlphaBlendFactor mustnot: be ename:VK_BLEND_SRC1_COLOR, ename:VK_BLEND_ONE_MINUS_SRC1_COLOR, ename:VK_BLEND_SRC1_ALPHA, or ename:VK_BLEND_ONE_MINUS_SRC1_ALPHA</usage>
|
||||
</validity>
|
||||
</type>
|
||||
<type category="struct" name="VkPipelineColorBlendStateCreateInfo">
|
||||
@ -1457,6 +1460,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:anisotropyEnable must: be ename:VK_FALSE</usage>
|
||||
<usage>If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:compareEnable must: be ename:VK_FALSE</usage>
|
||||
<usage>If any of pname:addressModeU, pname:addressModeV or pname:addressModeW are ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, pname:borderColor must: be a valid elink:VkBorderColor value</usage>
|
||||
<usage>If the VK_KHR_mirror_clamp_to_edge extension is not enabled, pname:addressModeU, pname:addressModeV and pname:addressModeW mustnot: be ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE</usage>
|
||||
<usage>If pname:compareEnable is ename:VK_TRUE, pname:compareOp must: be a valid elink:VkCompareOp value</usage>
|
||||
</validity>
|
||||
</type>
|
||||
@ -1586,10 +1590,10 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name></member> <!-- Memory accesses from the destination of the dependency to synchronize -->
|
||||
<member optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></member>
|
||||
<validity>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>The value of pname:srcSubpass must: be less than or equal to pname:dstSubpass, unless one of them is ename:VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order</usage>
|
||||
<usage>The values of pname:srcSubpass and pname:dstSubpass mustnot: both be equal to ename:VK_SUBPASS_EXTERNAL</usage>
|
||||
</validity>
|
||||
@ -1904,7 +1908,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<member len="signalSemaphoreCount">const <type>VkSemaphore</type>* <name>pSignalSemaphores</name></member>
|
||||
<validity>
|
||||
<usage>Any given element of pname:pSignalSemaphores must: currently be unsignalled</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers must: either have been recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers must: either have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers must: be in the executable state</usage>
|
||||
<usage>If any given element of pname:pCommandBuffers contains commands that execute secondary command buffers, those secondary command buffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, or not currently be executing on the device</usage>
|
||||
<usage>If any given element of pname:pCommandBuffers was created with ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, it mustnot: have been previously submitted without re-recording that command buffer</usage>
|
||||
@ -1912,8 +1916,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>Any given element of pname:pCommandBuffers must: have been created on a sname:VkCommandPool that was created for the same queue family that the calling command's pname:queue belongs to</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers mustnot: have been created with ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY</usage>
|
||||
<usage>Any given element of sname:VkSemaphore in pname:pWaitSemaphores must: refer to a prior signal of that sname:VkSemaphore that won't be consumed by any other wait on that semaphore</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, any given element of pname:pWaitDstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
</validity>
|
||||
</type>
|
||||
<!-- WSI extensions -->
|
||||
@ -2100,7 +2104,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
</validity>
|
||||
</type>
|
||||
<type category="struct" name="VkDebugReportCallbackCreateInfoEXT">
|
||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO -->
|
||||
<member><type>VkStructureType</type> <name>sType</name></member> <!-- Must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -->
|
||||
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||
<member><type>VkDebugReportFlagsEXT</type> <name>flags</name></member> <!-- Indicates which events call this callback-->
|
||||
<member><type>PFN_vkDebugReportCallbackEXT</type> <name>pfnCallback</name></member> <!-- Function pointer of a callback function-->
|
||||
@ -2254,7 +2258,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<enum value="1" name="VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"/>
|
||||
<enum value="2" name="VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"/>
|
||||
<enum value="3" name="VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"/>
|
||||
<enum value="4" name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE"/>
|
||||
<!-- <enum value="4" name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" comment="Reserved for VK_KHR_sampler_mirror_clamp_to_edge, do not alias!"/> -->
|
||||
</enums>
|
||||
<enums name="VkCompareOp" type="enum" expand="VK_COMPARE_OP">
|
||||
<enum value="0" name="VK_COMPARE_OP_NEVER"/>
|
||||
@ -2868,14 +2872,14 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<enum bitpos="7" name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"/>
|
||||
<enum bitpos="8" name="VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"/>
|
||||
</enums>
|
||||
<enums namespace="VK" name="VkDebugReportFlagBitsEXT" type="bitmask">
|
||||
<enums name="VkDebugReportFlagBitsEXT" type="bitmask">
|
||||
<enum bitpos="0" name="VK_DEBUG_REPORT_INFORMATION_BIT_EXT"/>
|
||||
<enum bitpos="1" name="VK_DEBUG_REPORT_WARNING_BIT_EXT"/>
|
||||
<enum bitpos="2" name="VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"/>
|
||||
<enum bitpos="3" name="VK_DEBUG_REPORT_ERROR_BIT_EXT"/>
|
||||
<enum bitpos="4" name="VK_DEBUG_REPORT_DEBUG_BIT_EXT"/>
|
||||
</enums>
|
||||
<enums namespace="VK" name="VkDebugReportObjectTypeEXT" type="enum">
|
||||
<enums name="VkDebugReportObjectTypeEXT" type="enum">
|
||||
<enum value="0" name="VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"/>
|
||||
<enum value="1" name="VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"/>
|
||||
<enum value="2" name="VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"/>
|
||||
@ -2906,7 +2910,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<enum value="27" name="VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"/>
|
||||
<enum value="28" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"/>
|
||||
</enums>
|
||||
<enums namespace="VK" name="VkDebugReportErrorEXT" type="enum">
|
||||
<enums name="VkDebugReportErrorEXT" type="enum">
|
||||
<enum value="0" name="VK_DEBUG_REPORT_ERROR_NONE_EXT"/> <!-- Used for INFO & other non-error messages -->
|
||||
<enum value="1" name="VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT"/> <!-- Callbacks were not destroyed prior to calling DestroyInstance -->
|
||||
</enums>
|
||||
@ -3187,7 +3191,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<proto><type>void</type> <name>vkGetImageSparseMemoryRequirements</name></proto>
|
||||
<param><type>VkDevice</type> <name>device</name></param>
|
||||
<param><type>VkImage</type> <name>image</name></param>
|
||||
<param><type>uint32_t</type>* <name>pSparseMemoryRequirementCount</name></param>
|
||||
<param optional="false,true"><type>uint32_t</type>* <name>pSparseMemoryRequirementCount</name></param>
|
||||
<param optional="true" len="pSparseMemoryRequirementCount"><type>VkSparseImageMemoryRequirements</type>* <name>pSparseMemoryRequirements</name></param>
|
||||
<validity>
|
||||
<usage>pname:image must: have been created with the ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag</usage>
|
||||
@ -4045,8 +4049,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>The sum of the pname:srcOffset and pname:copySize members of a given element of pname:pRegions must: be less than or equal to the size of pname:srcBuffer</usage>
|
||||
<usage>The sum of the pname:dstOffset and pname:copySize members of a given element of pname:pRegions must: be less than or equal to the size of pname:dstBuffer</usage>
|
||||
<usage>The union of the source regions, and the union of the destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory</usage>
|
||||
<usage>pname:srcBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
</validity>
|
||||
</command>
|
||||
<command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
||||
@ -4062,12 +4066,12 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>The source region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcImage</usage>
|
||||
<usage>The destination region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage</usage>
|
||||
<usage>The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory</usage>
|
||||
<usage>pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>The elink:VkFormat of each of pname:srcImage and pname:dstImage must: be compatible, as defined <<copies-images-format-compatibility, below>></usage>
|
||||
<usage>The sample count of pname:srcImage and pname:dstImage must: match</usage>
|
||||
</validity>
|
||||
@ -4087,13 +4091,13 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>The destination region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage</usage>
|
||||
<usage>The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory</usage>
|
||||
<usage>pname:srcImage must: use a format that supports ename:VK_FORMAT_FEATURE_BLIT_SRC_BIT, which is indicated by sname:VkFormatProperties::pname:linearTilingFeatures (for linear tiled images) or sname:VkFormatProperties::pname:optimalTilingFeatures (for optimally tiled images) - as returned by fname:vkGetPhysicalDeviceFormatProperties</usage>
|
||||
<usage>pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstImage must: use a format that supports ename:VK_FORMAT_FEATURE_BLIT_DST_BIT, which is indicated by sname:VkFormatProperties::pname:linearTilingFeatures (for linear tiled images) or sname:VkFormatProperties::pname:optimalTilingFeatures (for optimally tiled images) - as returned by fname:vkGetPhysicalDeviceFormatProperties</usage>
|
||||
<usage>pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>The sample count of pname:srcImage and pname:dstImage must: both be equal to ename:VK_SAMPLE_COUNT_1_BIT</usage>
|
||||
<usage>If either of pname:srcImage or pname:dstImage was created with a signed integer elink:VkFormat, the other must: also have been created with a signed integer elink:VkFormat</usage>
|
||||
<usage>If either of pname:srcImage or pname:dstImage was created with an unsigned integer elink:VkFormat, the other must: also have been created with an unsigned integer elink:VkFormat</usage>
|
||||
@ -4113,11 +4117,11 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>The buffer region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcBuffer</usage>
|
||||
<usage>The image region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstImage</usage>
|
||||
<usage>The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory</usage>
|
||||
<usage>pname:srcBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:dstImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:srcBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:dstImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT</usage>
|
||||
<usage>pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
</validity>
|
||||
</command>
|
||||
<command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
||||
@ -4132,11 +4136,11 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>The image region specified by a given element of pname:pRegions must: be a region that is contained within pname:srcImage</usage>
|
||||
<usage>The buffer region specified by a given element of pname:pRegions must: be a region that is contained within pname:dstBuffer</usage>
|
||||
<usage>The union of all source regions, and the union of all destination regions, specified by the elements of pname:pRegions, mustnot: overlap in memory</usage>
|
||||
<usage>pname:srcImage must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:srcImage must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag</usage>
|
||||
<usage>pname:srcImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT</usage>
|
||||
<usage>pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
</validity>
|
||||
</command>
|
||||
<command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
||||
@ -4145,13 +4149,13 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param><type>VkBuffer</type> <name>dstBuffer</name></param>
|
||||
<param><type>VkDeviceSize</type> <name>dstOffset</name></param>
|
||||
<param><type>VkDeviceSize</type> <name>dataSize</name></param>
|
||||
<param len="dataSize/4">const <type>uint32_t</type>* <name>pData</name></param>
|
||||
<param len="latexmath:[$dataSize \over 4$]">const <type>uint32_t</type>* <name>pData</name></param>
|
||||
<validity>
|
||||
<usage>The sum of pname:dstOffset and pname:dataSize must: be less than or equal to the size of pname:dstBuffer</usage>
|
||||
<usage>pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>The value of pname:dstOffset must: be a multiple of `4`</usage>
|
||||
<usage>The value of pname:dataSize must: be greater than `0`</usage>
|
||||
<usage>The value of pname:dataSize must: be less than `65536`</usage>
|
||||
<usage>The value of pname:dataSize must: be less than or equal to `65536`</usage>
|
||||
<usage>The value of pname:dataSize must: be a multiple of `4`</usage>
|
||||
</validity>
|
||||
</command>
|
||||
@ -4164,7 +4168,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param><type>uint32_t</type> <name>data</name></param>
|
||||
<validity>
|
||||
<usage>If pname:size is not equal to ename:VK_WHOLE_SIZE, the sum of pname:dstOffset and pname:size must: be less than or equal to the size of pname:dstBuffer</usage>
|
||||
<usage>pname:dstBuffer must: have been created with pname:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:dstOffset must: be a multiple of `4`</usage>
|
||||
<usage>If pname:size is not equal to ename:VK_WHOLE_SIZE, pname:size must: be a multiple of `4`</usage>
|
||||
</validity>
|
||||
@ -4178,9 +4182,9 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param><type>uint32_t</type> <name>rangeCount</name></param>
|
||||
<param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param>
|
||||
<validity>
|
||||
<usage>pname:image must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:image must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:imageLayout must: specify the layout of the subresource ranges of pname:image specified in pname:pRanges at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:imageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:imageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image</usage>
|
||||
</validity>
|
||||
</command>
|
||||
@ -4193,9 +4197,9 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param><type>uint32_t</type> <name>rangeCount</name></param>
|
||||
<param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param>
|
||||
<validity>
|
||||
<usage>pname:image must: have been created with pname:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:image must: have been created with ename:VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||
<usage>pname:imageLayout must: specify the layout of the subresource ranges of pname:image specified in pname:pRanges at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:imageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:imageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image</usage>
|
||||
</validity>
|
||||
</command>
|
||||
@ -4228,9 +4232,9 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<usage>pname:srcImage must: have a sample count equal to any valid sample count value other than ename:VK_SAMPLE_COUNT_1_BIT</usage>
|
||||
<usage>pname:dstImage must: have a sample count equal to ename:VK_SAMPLE_COUNT_1_BIT</usage>
|
||||
<usage>pname:srcImageLayout must: specify the layout of the subresources of pname:srcImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:srcImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:srcImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstImageLayout must: specify the layout of the subresources of pname:dstImage specified in pname:pRegions at the time this command is executed on a sname:VkDevice</usage>
|
||||
<usage>pname:dstImageLayout must: be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>pname:dstImageLayout must: be either of ename:VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or ename:VK_IMAGE_LAYOUT_GENERAL</usage>
|
||||
<usage>If pname:dstImage was created with pname:tiling equal to ename:VK_IMAGE_TILING_LINEAR, pname:dstImage must: have been created with a pname:format that supports being a color attachment, as specified by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in sname:VkFormatProperties::pname:linearTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties</usage>
|
||||
<usage>If pname:dstImage was created with pname:tiling equal to ename:VK_IMAGE_TILING_OPTIMAL, pname:dstImage must: have been created with a pname:format that supports being a color attachment, as specified by the ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in sname:VkFormatProperties::pname:optimalTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties</usage>
|
||||
|
||||
@ -4242,8 +4246,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param><type>VkEvent</type> <name>event</name></param>
|
||||
<param><type>VkPipelineStageFlags</type> <name>stageMask</name></param>
|
||||
<validity>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
</validity>
|
||||
</command>
|
||||
<command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
||||
@ -4252,8 +4256,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param><type>VkEvent</type> <name>event</name></param>
|
||||
<param><type>VkPipelineStageFlags</type> <name>stageMask</name></param>
|
||||
<validity>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
</validity>
|
||||
</command>
|
||||
<command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
|
||||
@ -4270,11 +4274,11 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param optional="true"><type>uint32_t</type> <name>imageMemoryBarrierCount</name></param>
|
||||
<param len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier</type>* <name>pImageMemoryBarriers</name></param>
|
||||
<validity>
|
||||
<usage>pname:srcStageMask must: be the bitwise OR of the pname:stageMask parameter used in previous calls to fname:vkCmdSetEvent with any of the members of pname:pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the members of pname:pEvents was set using fname:vkSetEvent</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>pname:srcStageMask must: be the bitwise OR of the pname:stageMask parameter used in previous calls to fname:vkCmdSetEvent with any of the members of pname:pEvents and ename:VK_PIPELINE_STAGE_HOST_BIT if any of the members of pname:pEvents was set using fname:vkSetEvent</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If pname:pEvents includes one or more events that will be signaled by fname:vkSetEvent after pname:commandBuffer has been submitted to a queue, then fname:vkCmdWaitEvents mustnot: be called inside a render pass instance</usage>
|
||||
</validity>
|
||||
</command>
|
||||
@ -4291,10 +4295,10 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param optional="true"><type>uint32_t</type> <name>imageMemoryBarrierCount</name></param>
|
||||
<param len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier</type>* <name>pImageMemoryBarriers</name></param>
|
||||
<validity>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain pname:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-geometryShader,geometry shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:srcStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If the <<features-features-tessellationShader,tessellation shaders>> feature is not enabled, pname:dstStageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or pname:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||
<usage>If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass must: declare at least one self-dependency from the current subpass to itself - see <<synchronization-pipeline-barriers-subpass-self-dependencies,Subpass Self-dependency>></usage>
|
||||
</validity>
|
||||
</command>
|
||||
@ -4414,8 +4418,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<param><type>uint32_t</type> <name>commandBufferCount</name></param>
|
||||
<param len="commandBufferCount">const <type>VkCommandBuffer</type>* <name>pCommandBuffers</name></param>
|
||||
<validity>
|
||||
<usage>pname:commandBuffer must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_PRIMARY</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_SECONDARY</usage>
|
||||
<usage>pname:commandBuffer must: have been created with a pname:level value of ename:VK_COMMAND_BUFFER_LEVEL_PRIMARY</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers must: have been created with a pname:level value of ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag</usage>
|
||||
<usage>Any given element of pname:pCommandBuffers must: be in the executable state</usage>
|
||||
@ -4969,6 +4973,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<enum value=""VK_KHR_display"" name="VK_KHR_DISPLAY_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"/>
|
||||
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"/>
|
||||
<type name="VkDisplayPlaneAlphaFlagsKHR"/>
|
||||
<type name="VkDisplayPlaneAlphaFlagBitsKHR"/>
|
||||
<type name="VkDisplayPropertiesKHR"/>
|
||||
<type name="VkDisplayModeParametersKHR"/>
|
||||
@ -5070,10 +5075,11 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
</extension>
|
||||
<extension name="VK_EXT_debug_report" number="12" author="Google, Inc." contact="Courtney Goeltzenleuchter @courtney" supported="vulkan">
|
||||
<require>
|
||||
<enum value="1" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/>
|
||||
<enum value="2" name="VK_EXT_DEBUG_REPORT_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_debug_report"" name="VK_EXT_DEBUG_REPORT_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"/>
|
||||
<enum offset="1" dir="-" extends="VkResult" name="VK_ERROR_VALIDATION_FAILED_EXT"/>
|
||||
<enum value="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT" name="VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT"/>
|
||||
<type name="VkDebugReportObjectTypeEXT"/>
|
||||
<type name="VkDebugReportErrorEXT"/>
|
||||
<command name="vkCreateDebugReportCallbackEXT"/>
|
||||
@ -5095,5 +5101,12 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||
<enum offset="0" dir="-" extends="VkResult" name="VK_NV_EXTENSION_1_ERROR"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_KHR_sampler_mirror_clamp_to_edge" number="15" author="KHR" contact="Tobias Hector @tobias" supported="vulkan">
|
||||
<require>
|
||||
<enum value="1" name="VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_sampler_mirror_clamp_to_edge"" name="VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME"/>
|
||||
<enum value="4" extends="VkSamplerAddressMode" name="VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" comment="Note that this defines what was previously a core enum, and so uses the 'value' attribute rather than 'offset', and doesn't have a suffix. This is a special case, and should not be repeated"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
</registry>
|
||||
|
@ -25,8 +25,8 @@
|
||||
*/
|
||||
|
||||
|
||||
#ifndef __VK_PLATFORM_H__
|
||||
#define __VK_PLATFORM_H__
|
||||
#ifndef VK_PLATFORM_H_
|
||||
#define VK_PLATFORM_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
@ -124,4 +124,4 @@ extern "C"
|
||||
#include <xcb/xcb.h>
|
||||
#endif
|
||||
|
||||
#endif // __VK_PLATFORM_H__
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef __vulkan_h_
|
||||
#define __vulkan_h_ 1
|
||||
#ifndef VULKAN_H_
|
||||
#define VULKAN_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -41,7 +41,7 @@ extern "C" {
|
||||
(((major) << 22) | ((minor) << 12) | (patch))
|
||||
|
||||
// Vulkan API version supported by this file
|
||||
#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 3)
|
||||
#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 4)
|
||||
|
||||
#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
|
||||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||
@ -209,7 +209,7 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
|
||||
VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
|
||||
VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
|
||||
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000,
|
||||
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
|
||||
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
|
||||
VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
|
||||
VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
|
||||
@ -701,8 +701,8 @@ typedef enum VkSamplerAddressMode {
|
||||
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
|
||||
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
|
||||
VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
|
||||
VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
|
||||
VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
|
||||
VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
|
||||
VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
|
||||
VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkSamplerAddressMode;
|
||||
|
||||
@ -3326,8 +3326,8 @@ typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
|
||||
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
|
||||
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
|
||||
} VkDisplayPlaneAlphaFlagBitsKHR;
|
||||
typedef VkFlags VkDisplayModeCreateFlagsKHR;
|
||||
typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
|
||||
typedef VkFlags VkDisplayModeCreateFlagsKHR;
|
||||
typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkDisplayPropertiesKHR {
|
||||
@ -3667,11 +3667,17 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
|
||||
#endif
|
||||
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
||||
|
||||
#define VK_KHR_sampler_mirror_clamp_to_edge 1
|
||||
#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
|
||||
#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
|
||||
|
||||
|
||||
#define VK_EXT_debug_report 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
||||
|
||||
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 1
|
||||
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 2
|
||||
#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
|
||||
#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
|
||||
|
||||
|
||||
typedef enum VkDebugReportObjectTypeEXT {
|
||||
|
Loading…
x
Reference in New Issue
Block a user