Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the spec. Add patch number to the spec title (this will be done automatically from XML, later). * Fixes for numerous editorial issues. Regularize descriptions of variable-length array queries. Properly tag enumerants so they come out in the right font (many were mislabeled in usage tags in vk.xml, or not tagged). Spelling and markup corrections (public issue 4). * Fix typos and clearly separate description of different types of memory areas (public issue 5). * Use standards-compliant preprocessor guard symbols on headers (public issue 7). * Note that Github users can't currently set labels on issues, and recommend a fallback approach (public issue 15). * Use latexmath prefix on len= attributes (public issue 29). * Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public issue 65). * Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an optional feature not introducing new commands or enums (internal issue 104). * Cleanup invariance language inherited from the GL specification to not refer to nonexistent (GL-specific) state (internal issue 111). * Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to not be the "base offset within the index buffer" but rather the "value added to the vertex index before indexing into the vertex buffer" (internal issue 118). * Fix drawing chapter in the "Programmable Primitive Shading" section where it described categories of drawing commands. It referenced flink:vkCmdDrawIndexed twice. Replace the second reference with flink:vkCmdDrawIndexedIndirect (internal issue 119). * Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse Resources>> sparse memory example (internal issue 122). * Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of VK_KHR_display extension (internal issue 125) * Add missing optional="false,true" to flink:vkGetImageSparseMemoryRequirements pname:pSparseMemoryRequirementCount parameter (internal issue 132) * Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT (internal issue 133) * Fix a handful of broken cross-references in the <<samplers,Samplers>> chapter (internal issue 134). * Fix "Input Attachement" GLSL example to use correct syntax (internal issue 135). * Update XML schema and documentation to accomodate recently added attributes for validity. Add some introductory material describing design choices and pointing to the public repository to file issues. * Put include of validity in the core spec extensions chapter on its own line, so that asciidoc is happy. * Fix vertexOffset language to specify that it's the value added to the vertex index before indexing into the vertex buffer, not the base offset within the index buffer. * Fix error in the description of flink:vkCmdNextSubpass.
This commit is contained in:
parent
8555ed865c
commit
5a4c5e5925
|
@ -126,7 +126,7 @@ INCLUDES := $(wildcard protos/*.txt structs/*.txt flags/*.txt enums/*.txt funcpo
|
||||||
COMMONDOCS := $(CHAPTERS) $(INCLUDES)
|
COMMONDOCS := $(CHAPTERS) $(INCLUDES)
|
||||||
# A generate included file with the spec version, date, and git commit
|
# A generate included file with the spec version, date, and git commit
|
||||||
SPECVERSION = specversion.txt
|
SPECVERSION = specversion.txt
|
||||||
SPECREVISION = 1.0
|
SPECREVISION = 1.0.4
|
||||||
SPECREMARK =
|
SPECREMARK =
|
||||||
|
|
||||||
# Spec targets
|
# 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_
|
* _Pixel storage state_
|
||||||
|
|
||||||
*Corollary 1* _Fragment generation is invariant with respect to the 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
|
*Rule 3* _The arithmetic of each per-fragment operation is invariant except
|
||||||
with respect to parameters that directly control it._
|
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.
|
can: be in any state, and is put in the initial state.
|
||||||
* pname:flags is of type elink:VkCommandBufferResetFlags:
|
* pname:flags is of type elink:VkCommandBufferResetFlags:
|
||||||
+
|
+
|
||||||
|
--
|
||||||
include::../enums/VkCommandBufferResetFlagBits.txt[]
|
include::../enums/VkCommandBufferResetFlagBits.txt[]
|
||||||
+
|
|
||||||
If pname:flags includes ename:VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,
|
If pname:flags includes ename:VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT,
|
||||||
then most or all memory resources currently owned by the command buffer
|
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,
|
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
|
then the command buffer may: hold onto memory resources and reuse them when
|
||||||
recording commands.
|
recording commands.
|
||||||
|
--
|
||||||
|
|
||||||
include::../validity/protos/vkResetCommandBuffer.txt[]
|
include::../validity/protos/vkResetCommandBuffer.txt[]
|
||||||
|
|
||||||
|
|
|
@ -503,7 +503,7 @@ attachment index in addition to descriptor set and binding numbers.
|
||||||
.GLSL example
|
.GLSL example
|
||||||
[source,{basebackend@docbook:c:glsl}]
|
[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
|
.SPIR-V example
|
||||||
|
|
|
@ -23,13 +23,20 @@ include::../protos/vkEnumeratePhysicalDevices.txt[]
|
||||||
|
|
||||||
* pname:instance is a handle to a {apiname} instance previously created
|
* pname:instance is a handle to a {apiname} instance previously created
|
||||||
with fname:vkCreateInstance.
|
with fname:vkCreateInstance.
|
||||||
* If pname:pPhysicalDevices is `NULL`, the number of physical devices
|
* pname:pPhysicalDeviceCount is a pointer to an integer related to the
|
||||||
available is returned in pname:pPhysicalDeviceCount. If
|
number of physical devices available or queried, as described below.
|
||||||
pname:pPhysicalDevices is not `NULL`,
|
* pname:pPhysicalDevices is either `NULL` or a pointer to an
|
||||||
* pname:pPhysicalDeviceCount must: point to a variable set by the user to
|
array of sname:VkPhysicalDevice structures.
|
||||||
the size of the array pointed to by pname:pPhysicalDevices, and is
|
|
||||||
overwritten with the number of physical devices actually written to
|
If pname:pPhysicalDevices is `NULL`, then the number of physical devices
|
||||||
pname:pPhysicalDevices.
|
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[]
|
include::../validity/protos/vkEnumeratePhysicalDevices.txt[]
|
||||||
|
|
||||||
|
@ -142,7 +149,7 @@ include::../protos/vkGetPhysicalDeviceQueueFamilyProperties.txt[]
|
||||||
* pname:pQueueFamilyPropertyCount is a pointer to an integer related to
|
* pname:pQueueFamilyPropertyCount is a pointer to an integer related to
|
||||||
the number of queue families available or queried, as described below.
|
the number of queue families available or queried, as described below.
|
||||||
* pname:pQueueFamilyProperties is either `NULL` or a pointer to an array
|
* 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
|
If pname:pQueueFamilyProperties is `NULL`, then the number of queue families
|
||||||
available is returned in pname:pQueueFamilyPropertyCount. Otherwise,
|
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:indexCount is the number of vertices to draw.
|
||||||
* pname:instanceCount is the number of instances to draw.
|
* pname:instanceCount is the number of instances to draw.
|
||||||
* pname:firstIndex is the base index within the index buffer.
|
* 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.
|
* pname:firstInstance is the instance ID of the first instance to draw.
|
||||||
|
|
||||||
When the command is executed, primitives are assembled using the current
|
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[]
|
include::../protos/vkEnumerateInstanceLayerProperties.txt[]
|
||||||
|
|
||||||
* pname:pPropertyCount is the number of layer properties that can be
|
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||||
returned in pname:pProperties.
|
layer properties available or queried, as described below.
|
||||||
* pname:pProperties is an array of slink:VkLayerProperties structures in
|
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||||
which properties of instance layers available on this implementation are
|
slink:VkLayerProperties structures.
|
||||||
returned.
|
|
||||||
|
|
||||||
include::../validity/protos/vkEnumerateInstanceLayerProperties.txt[]
|
include::../validity/protos/vkEnumerateInstanceLayerProperties.txt[]
|
||||||
|
|
||||||
|
@ -53,11 +52,10 @@ To query the layers available to a given physical device, call:
|
||||||
include::../protos/vkEnumerateDeviceLayerProperties.txt[]
|
include::../protos/vkEnumerateDeviceLayerProperties.txt[]
|
||||||
|
|
||||||
* pname:physicalDevice is the physical device that will be queried.
|
* pname:physicalDevice is the physical device that will be queried.
|
||||||
* pname:pPropertyCount is the number of layer properties that can be
|
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||||
returned in pname:pProperties.
|
layer properties available or queried, as described below.
|
||||||
* pname:pProperties is an array of slink:VkLayerProperties structures in
|
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||||
which properties of layers available on pname:physicalDevice are
|
slink:VkLayerProperties structures.
|
||||||
returned.
|
|
||||||
|
|
||||||
include::../validity/protos/vkEnumerateDeviceLayerProperties.txt[]
|
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
|
pname:ppEnabledLayerNames member of slink:VkDeviceCreateInfo when creating
|
||||||
a slink:VkDevice.
|
a slink:VkDevice.
|
||||||
|
|
||||||
Both commands will return an array of sname:VkLayerProperties of the
|
For both flink:vkEnumerateInstanceLayerProperties and
|
||||||
respective instance or device layers present. Calling
|
flink:vkEnumerateDeviceLayerProperties, if pname:pProperties is `NULL`, then
|
||||||
fname:vkEnumerateInstanceLayerProperties or
|
the number of layer properties available is returned in pname:pPropertyCount.
|
||||||
fname:vkEnumerateDeviceLayerProperties with pname:pProperties set to `NULL`
|
Otherwise, pname:pPropertyCount must: point to a variable set by the user to
|
||||||
will return the number of supported layers in the basetype:uint32_t variable
|
the number of elements in the pname:pProperties array, and on return the
|
||||||
pointed to by pname:pPropertyCount. If pname:pProperties is not set to
|
variable is overwritten with the number of structures actually written to
|
||||||
`NULL`, the query will fill the array and update pname:pPropertyCount to
|
pname:pProperties. If the value of pname:pPropertyCount is less than the
|
||||||
indicate the number of sname:VkLayerProperties filled in. If
|
number of layer properties available, at most pname:pPropertyCount
|
||||||
pname:pPropertyCount is smaller than the number of layers available,
|
structures will be written. If pname:pPropertyCount is smaller than the
|
||||||
ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS, to
|
number of layers available, ename:VK_INCOMPLETE will be returned instead of
|
||||||
indicate that not all the available properties were returned.
|
ename:VK_SUCCESS, to indicate that not all the available properties were
|
||||||
|
returned.
|
||||||
|
|
||||||
The definition of sname:VkLayerProperties is:
|
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
|
* pname:pLayerName is either `NULL` or the name of a instance layer to
|
||||||
retrieve extensions from.
|
retrieve extensions from.
|
||||||
* pname:pPropertyCount is the number of extension properties that can be
|
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||||
returned in pname:pProperties.
|
extension properties available or queried, as described below.
|
||||||
* pname:pProperties is an array of slink:VkExtensionProperties structures
|
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||||
in which properties of instance extensions available on this
|
slink:VkExtensionProperties structures.
|
||||||
implementation are returned.
|
|
||||||
|
|
||||||
include::../validity/protos/vkEnumerateInstanceExtensionProperties.txt[] Any
|
include::../validity/protos/vkEnumerateInstanceExtensionProperties.txt[]
|
||||||
instance extensions provided by the {apiname} implementation or by
|
|
||||||
|
Any instance extensions provided by the {apiname} implementation or by
|
||||||
implicitly enabled layers, but not by explicitly enabled layers, are
|
implicitly enabled layers, but not by explicitly enabled layers, are
|
||||||
returned when pname:pLayerName parameter is `NULL`. When pname:pLayerName is
|
returned when pname:pLayerName parameter is `NULL`. When pname:pLayerName is
|
||||||
the name of a layer, the instance extensions provided by that layer are
|
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:physicalDevice is the physical device that will be queried.
|
||||||
* pname:pLayerName is either `NULL` or the name of a device layer to
|
* pname:pLayerName is either `NULL` or the name of a device layer to
|
||||||
retrieve extensions from.
|
retrieve extensions from.
|
||||||
* pname:pPropertyCount is the number of extension properties that can be
|
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||||
returned in pname:pProperties.
|
extension properties available or queried, as described below.
|
||||||
* pname:pProperties is an array of slink:VkExtensionProperties structures
|
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||||
in which properties of extensions available on pname:physicalDevice are
|
slink:VkExtensionProperties structures.
|
||||||
returned.
|
|
||||||
|
|
||||||
include::../validity/protos/vkEnumerateDeviceExtensionProperties.txt[]
|
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
|
pname:ppEnabledExtensionNames member of slink:VkDeviceCreateInfo when
|
||||||
creating a slink:VkDevice.
|
creating a slink:VkDevice.
|
||||||
|
|
||||||
Both commands return an array of sname:VkExtensionProperties
|
For both flink:vkEnumerateInstanceExtensionProperties and
|
||||||
for any extensions implemented by the given pname:pLayerName.
|
flink:vkEnumerateDeviceExtensionProperties, if pname:pProperties is `NULL`,
|
||||||
Set pname:pLayerName to `NULL` to query for extensions not part of any
|
then the number of extensions properties available is returned in
|
||||||
layer. Calling fname:vkEnumerateInstanceExtensionProperties or
|
pname:pPropertyCount. Otherwise, pname:pPropertyCount must: point to a
|
||||||
fname:vkEnumerateDeviceExtensionProperties with pname:pProperties set to
|
variable set by the user to the number of elements in the pname:pProperties
|
||||||
`NULL` will return the count of extensions for the given layer in the
|
array, and on return the variable is overwritten with the number of
|
||||||
basetype:uint32_t variable pointed to by pname:pPropertyCount. With
|
structures actually written to pname:pProperties. If the value of
|
||||||
pname:pProperties pointing to an array of sname:VkExtensionProperties,
|
pname:pPropertyCount is less than the number of extension properties
|
||||||
fname:vkEnumerateInstanceExtensionProperties
|
available, at most pname:pPropertyCount structures will be written. If
|
||||||
and fname:vkEnumerateDeviceExtensionProperties will fill the array and
|
pname:pPropertyCount is smaller than the number of extensions available,
|
||||||
update the count to indicate the number of sname:VkExtensionProperties
|
ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS, to
|
||||||
filled in. If the provided count is smaller than the number of extensions
|
indicate that not all the available properties were returned.
|
||||||
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:
|
The definition of sname:VkExtensionProperties is:
|
||||||
|
|
||||||
|
|
|
@ -979,7 +979,7 @@ different equations in the spec).
|
||||||
subpixel precision that floating-point viewport bounds are interpreted
|
subpixel precision that floating-point viewport bounds are interpreted
|
||||||
at is given by this limit.
|
at is given by this limit.
|
||||||
* [[features-limits-minMemoryMapAlignment]] pname:minMemoryMapAlignment is
|
* [[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
|
allocations within the host address space. When mapping a memory
|
||||||
allocation with flink:vkMapMemory, subtracting pname:offset bytes from
|
allocation with flink:vkMapMemory, subtracting pname:offset bytes from
|
||||||
the returned pointer will always produce an integer multiple of this
|
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
|
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
|
device. Further detail about memory heaps is exposed via memory types
|
||||||
available on that heap. Examples of memory areas that may: be available on
|
available on that heap. Examples of memory areas that may: be available on
|
||||||
an implementation include _device local_ (memory that is physically
|
an implementation include:
|
||||||
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
|
* _device local_ is memory that is physically connected to the device.
|
||||||
local to the host and visible to the device and host). On other
|
* _device local, host visible_ is device local memory that is visible to
|
||||||
architectures, there may: only be a single heap that can: be used for any
|
the host.
|
||||||
purpose.
|
* _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
|
A {apiname} application controls a set of devices through the submission of
|
||||||
command buffers which have recorded device commands issued via {apiname}
|
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.
|
{apiname} queues provide an interface to the execution engines of a device.
|
||||||
Commands are recorded into command buffers ahead of execution time.
|
Commands are recorded into command buffers ahead of execution time.
|
||||||
These command buffers are then submitted to queues for execution. Command
|
These command buffers are then submitted to queues for execution. Command
|
||||||
buffers submitted to a single queue play back the commands in the order
|
buffers submitted to a single queue are played back in the order they were
|
||||||
they were recorded, both within and across command buffer boundaries.
|
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
|
Work performed by those commands respects the ordering guarantees provided
|
||||||
by explicit and implicit dependencies, as described below. Work submitted
|
by explicit and implicit dependencies, as described below. Work submitted
|
||||||
to separate queues may: execute in any relative order unless otherwise
|
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
|
_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
|
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
|
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
|
_Non-dispatchable_ handle types are a 64-bit integer type whose meaning is
|
||||||
implementation-dependent, and may: encode object information directly in the
|
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
|
exception to this is when there is a parent/child relationship between
|
||||||
objects. In this case, the application mustnot: destroy a parent object
|
objects. In this case, the application mustnot: destroy a parent object
|
||||||
before its children, except when the parent is explicitly defined to free
|
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:VkCommandPool objects are parents of sname:VkCommandBuffer objects.
|
||||||
sname:VkDescriptorPool objects are parents of sname:VkDescriptorSet 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
|
as elements of an array or as members of a structure) satisfy the alignment
|
||||||
requirements of the host processor.
|
requirements of the host processor.
|
||||||
|
|
||||||
Any parameter that is an enumerant must: be a valid value for that enumerant
|
Any parameter of an enumerated type must: be a valid enumerant for that
|
||||||
type. A value is valid for an enumerant if:
|
type. A enumerant is valid if:
|
||||||
|
|
||||||
* The value is defined as part of the enumerant type.
|
* The enumerant is defined as part of the enumerated type.
|
||||||
* The value is not one of the special values defined for an enumerant
|
* The enumerant is not one of the special values defined for the
|
||||||
type, which are suffixed with etext:_BEGIN_RANGE, etext:_END_RANGE,
|
enumerated type, which are suffixed with etext:_BEGIN_RANGE,
|
||||||
etext:_RANGE_SIZE or etext:_MAX_ENUM.
|
etext:_END_RANGE, etext:_RANGE_SIZE or etext:_MAX_ENUM.
|
||||||
|
|
||||||
Any parameter that is a flag value must: be a valid combination of bit
|
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 valid combination is either zero or the bitwise OR of valid bit
|
||||||
flags. A bit flag is valid if:
|
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
|
obtained by taking the flag type and replacing the trailing etext:Flags
|
||||||
with etext:FlagBits. For example, a flag value of type
|
with etext:FlagBits. For example, a flag value of type
|
||||||
elink:VkColorComponentFlags must: contain only values selected from the
|
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'',
|
Please tag issues with appropriate labels, such as ``Specification'',
|
||||||
``Ref Pages'' or ``Registry'', to help us triage and assign them
|
``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]]
|
[[introduction-terminology]]
|
||||||
|
|
|
@ -817,7 +817,7 @@ include::../protos/vkCmdNextSubpass.txt[]
|
||||||
|
|
||||||
* pname:commandBuffer is the command buffer in which to record the
|
* pname:commandBuffer is the command buffer in which to record the
|
||||||
command.
|
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
|
provided, in the same fashion as the corresponding parameter of
|
||||||
flink:vkCmdBeginRenderPass.
|
flink:vkCmdBeginRenderPass.
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ include::../enums/VkFilter.txt[]
|
||||||
* pname:minFilter is the minification filter to apply to lookups, and is
|
* pname:minFilter is the minification filter to apply to lookups, and is
|
||||||
of type elink:VkFilter.
|
of type elink:VkFilter.
|
||||||
* pname:mipmapMode is the mipmap filter to apply to lookups as described
|
* 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:
|
type:
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
|
@ -61,7 +61,7 @@ include::../enums/VkSamplerMipmapMode.txt[]
|
||||||
Level-of-Detail Operation>> section.
|
Level-of-Detail Operation>> section.
|
||||||
* [[samplers-maxAnisotropy]] pname:anisotropyEnable is ename:VK_TRUE to
|
* [[samplers-maxAnisotropy]] pname:anisotropyEnable is ename:VK_TRUE to
|
||||||
enable anisotropic filtering, as described in the
|
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.
|
section, or ename:VK_FALSE otherwise.
|
||||||
* pname:maxAnisotropy is the anisotropy value clamp.
|
* pname:maxAnisotropy is the anisotropy value clamp.
|
||||||
* pname:compareEnable is ename:VK_TRUE to enable comparison against a
|
* 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
|
** Note: Some implementations will default to shader state if this member
|
||||||
does not match.
|
does not match.
|
||||||
* pname:compareOp is the comparison function to apply to fetched data
|
* 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.
|
Depth Compare Operation>> section. See elink:VkCompareOp.
|
||||||
* pname:minLod and pname:maxLod are the values used to clamp the computed
|
* pname:minLod and pname:maxLod are the values used to clamp the computed
|
||||||
level-of-detail value, as described in the
|
level-of-detail value, as described in the
|
||||||
<<textures-level-of-detail-operation, Level-of-Detail Operation>>
|
<<textures-level-of-detail-operation, Level-of-Detail Operation>>
|
||||||
section. pname:maxLod must: be greater than or equal to pname:minLod.
|
section. pname:maxLod must: be greater than or equal to pname:minLod.
|
||||||
* pname:borderColor is the predefined border color to use, as described
|
* 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:
|
section, and is of type:
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
|
@ -146,7 +146,7 @@ include::../enums/VkSamplerAddressMode.txt[]
|
||||||
|
|
||||||
These values control the behavior of sampling with coordinates outside the
|
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
|
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
|
* ename:VK_SAMPLER_ADDRESS_MODE_REPEAT indicates that the repeat wrap mode
|
||||||
will be used.
|
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.
|
edge wrap mode will be used.
|
||||||
* ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER indicates that the clamp
|
* ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER indicates that the clamp
|
||||||
to border wrap mode will be used.
|
to border wrap mode will be used.
|
||||||
* ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE indicates that the
|
* ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE indicates that
|
||||||
mirror clamp to edge wrap mode will be used.
|
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
|
The maximum number of sampler objects which can: be simultaneously created
|
||||||
on a device is implementation-dependent and specified by the
|
on a device is implementation-dependent and specified by the
|
||||||
|
|
|
@ -751,25 +751,24 @@ include::../protos/vkGetPhysicalDeviceSparseImageFormatProperties.txt[]
|
||||||
elink:VkSampleCountFlagBits.
|
elink:VkSampleCountFlagBits.
|
||||||
* pname:usage is a bitfield describing the intended usage of the image.
|
* 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:tiling is the tiling arrangement of the data elements in memory.
|
||||||
* pname:pPropertyCount points to a variable specifying the length of the
|
* pname:pPropertyCount is a pointer to an integer related to the number of
|
||||||
pname:pProperties array, or a variable receiving the expected size of
|
sparse format properties available or queried, as described below.
|
||||||
the array if pname:pProperties is `NULL`.
|
* pname:pProperties is either `NULL` or a pointer to an array of
|
||||||
* pname:pProperties is an array of pname:pPropertyCount
|
slink:VkSparseImageFormatProperties structures.
|
||||||
slink:VkSparseImageFormatProperties format property structures in which
|
|
||||||
values are returned.
|
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[]
|
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
|
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
|
arguments, pname:pPropertyCount will be set to zero upon return, and no data
|
||||||
will be written to pname:pProperties.
|
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:device is the logical device that owns the image.
|
||||||
* pname:image is the sname:VkImage object to get the memory requirements
|
* pname:image is the sname:VkImage object to get the memory requirements
|
||||||
for.
|
for.
|
||||||
* pname:pSparseMemoryRequirementCount points to a variable specifying the
|
* pname:pSparseMemoryRequirementCount is a pointer to an integer related
|
||||||
length of the pname:pSparseMemoryRequirements array, or a variable
|
to the number of sparse memory requirements available or queried, as
|
||||||
receiving the expected size of the array if
|
described below.
|
||||||
pname:pSparseMemoryRequirements is `NULL`.
|
* pname:pSparseMemoryRequirements is either `NULL` or a pointer to an
|
||||||
* pname:pSparseMemoryRequirements is an array of
|
array of sname:VkSparseImageMemoryRequirements structures.
|
||||||
pname:pSparseMemoryRequirementCount
|
|
||||||
slink:VkSparseImageMemoryRequirements structures to be written by the
|
|
||||||
API.
|
|
||||||
|
|
||||||
include::../validity/protos/vkGetImageSparseMemoryRequirements.txt[]
|
If pname:pSparseMemoryRequirements is `NULL`, then the number of sparse
|
||||||
|
memory requirements available is returned in
|
||||||
If pname:pSparseMemoryRequirements is `NULL`, then
|
pname:pSparseMemoryRequirementCount. Otherwise,
|
||||||
pname:pSparseMemoryRequirementCount will be updated with the required size
|
pname:pSparseMemoryRequirementCount must: point to a variable set by the
|
||||||
of the array pointed by pname:pProperties. If
|
user to the number of elements in the pname:pSparseMemoryRequirements array,
|
||||||
pname:pSparseMemoryRequirements is not `NULL`, then
|
and on return the variable is overwritten with the number of structures
|
||||||
pname:pSparseMemoryRequirementCount must: hold the size of the array pointed
|
actually written to pname:pSparseMemoryRequirements. If the value of
|
||||||
to by pname:pSparseMemoryRequirements, and is overwritten with the number of
|
pname:pSparseMemoryRequirementCount is less than the number of sparse memory
|
||||||
sname:VkSparseImageMemoryRequirements structures actually written to
|
requirements available, at most pname:pSparseMemoryRequirementCount
|
||||||
pname:pSparseMemoryRequirements. If pname:pSparseMemoryRequirementCount is
|
structures will be written, and ename:VK_INCOMPLETE will be returned instead
|
||||||
smaller than the number of sparse memory requirements for the given set of
|
of ename:VK_SUCCESS to indicate that not all the available values were
|
||||||
parameters, ename:VK_INCOMPLETE will be returned instead of ename:VK_SUCCESS
|
returned.
|
||||||
to indicate that not all the available values were returned.
|
|
||||||
|
|
||||||
If the image was not created with ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
If the image was not created with ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
|
||||||
then pname:pSparseMemoryRequirementCount will be set to zero and
|
then pname:pSparseMemoryRequirementCount will be set to zero and
|
||||||
pname:pSparseMemoryRequirements will not be written to.
|
pname:pSparseMemoryRequirements will not be written to.
|
||||||
|
|
||||||
|
include::../validity/protos/vkGetImageSparseMemoryRequirements.txt[]
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
.Note
|
.Note
|
||||||
====
|
====
|
||||||
|
@ -1375,7 +1372,7 @@ vkGetImageSparseMemoryRequirements(
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
pSparseReqs = (VkSparseImageMemoryRequirements*)
|
pSparseReqs = (VkSparseImageMemoryRequirements*)
|
||||||
malloc(reqCount * sizeof(VkSparseImageMemoryRequirements));
|
malloc(sparseRequirementsCount * sizeof(VkSparseImageMemoryRequirements));
|
||||||
|
|
||||||
vkGetImageSparseMemoryRequirements(
|
vkGetImageSparseMemoryRequirements(
|
||||||
device,
|
device,
|
||||||
|
@ -1467,6 +1464,8 @@ for (uint32_t i = 0; i < sparseRequirementsCount; ++i)
|
||||||
pBind->flags = 0;
|
pBind->flags = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(pSparseReqs);
|
||||||
}
|
}
|
||||||
|
|
||||||
const VkSparseImageOpaqueMemoryBindInfo opaqueBindInfo =
|
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
|
When submitting batches of command buffers to a queue via
|
||||||
flink:vkQueueSubmit, it is guaranteed that:
|
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
|
fname:vkQueueSubmit are visible to the command buffers in that
|
||||||
submission, if the device memory is coherent or if the memory range was
|
submission, if the device memory is coherent or if the memory range was
|
||||||
flushed with flink:vkFlushMappedMemoryRanges.
|
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
|
and <<primsrast-polygons-basic,Basic Polygon Rasterization>>), and no
|
||||||
interpolation is performed. The output value latexmath:[${\textbf c}$] is
|
interpolation is performed. The output value latexmath:[${\textbf c}$] is
|
||||||
taken from either latexmath:[${\textbf c}_1$] or latexmath:[${\textbf
|
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.
|
identical.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 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
|
* 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: 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: 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: 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: 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
|
* 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 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
|
* 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
|
* This command must: only be called outside of a render pass instance
|
||||||
* The value of pname:rangeCount must: be greater than `0`
|
* 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
|
* 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: 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
|
* The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
|
|
|
@ -17,9 +17,9 @@ endif::doctype-manpage[]
|
||||||
* This command must: only be called outside of a render pass instance
|
* This command must: only be called outside of a render pass instance
|
||||||
* The value of pname:rangeCount must: be greater than `0`
|
* 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
|
* 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: 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
|
* The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image
|
||||||
ifndef::doctype-manpage[]
|
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: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 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
|
* 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:srcBuffer must: have been created with ename: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:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::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 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 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
|
* 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:srcBuffer must: have been created with ename: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: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: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: 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[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::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 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 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
|
* 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: 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: 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: 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 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
|
* The sample count of pname:srcImage and pname:dstImage must: match
|
||||||
ifndef::doctype-manpage[]
|
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 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 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
|
* 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: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: 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: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
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
|
|
|
@ -14,8 +14,8 @@ endif::doctype-manpage[]
|
||||||
* pname:commandBuffer must: be a primary sname:VkCommandBuffer
|
* pname:commandBuffer must: be a primary sname:VkCommandBuffer
|
||||||
* The value of pname:commandBufferCount must: be greater than `0`
|
* 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
|
* 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
|
* 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 VK_COMMAND_BUFFER_LEVEL_SECONDARY
|
* 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 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 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
|
* 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
|
* 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
|
* 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
|
* 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`
|
* 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`
|
* If pname:size is not equal to ename:VK_WHOLE_SIZE, pname:size must: be a multiple of `4`
|
||||||
ifndef::doctype-manpage[]
|
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
|
* 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
|
* pname:commandBuffer must: be in the recording state
|
||||||
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support transfer, graphics or compute operations
|
* 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: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 pname: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 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: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 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 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>>
|
* 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[]
|
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
|
* 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
|
* 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
|
* 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-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 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:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::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: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: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: 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: 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_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
|
* 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[]
|
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
|
* 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
|
* 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
|
* 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-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 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:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
|
|
|
@ -9,16 +9,16 @@ Valid Usage
|
||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
* pname:commandBuffer must: be a valid sname:VkCommandBuffer handle
|
* pname:commandBuffer must: be a valid sname:VkCommandBuffer handle
|
||||||
* pname:dstBuffer must: be a valid sname:VkBuffer 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
|
* pname:commandBuffer must: be in the recording state
|
||||||
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support transfer, graphics or compute operations
|
* 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
|
* 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
|
* 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
|
* 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:dstOffset must: be a multiple of `4`
|
||||||
* The value of pname:dataSize must: be greater than `0`
|
* 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`
|
* The value of pname:dataSize must: be a multiple of `4`
|
||||||
ifndef::doctype-manpage[]
|
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 sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics or compute operations
|
||||||
* The value of pname:eventCount must: be greater than `0`
|
* 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
|
* 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
|
* 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 pname:VK_PIPELINE_STAGE_GEOMETRY_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 pname: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 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: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 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 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
|
* 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[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
|
|
|
@ -10,8 +10,7 @@ endif::doctype-manpage[]
|
||||||
* pname:device must: be a valid sname:VkDevice handle
|
* pname:device must: be a valid sname:VkDevice handle
|
||||||
* pname:image must: be a valid sname:VkImage handle
|
* pname:image must: be a valid sname:VkImage handle
|
||||||
* pname:pSparseMemoryRequirementCount must: be a pointer to a basetype:uint32_t value
|
* 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 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
|
||||||
* If pname:pSparseMemoryRequirements is not `NULL`, the value referenced by pname:pSparseMemoryRequirementCount must: be greater than `0`
|
|
||||||
* pname:image must: have been created, allocated or retrieved from pname:device
|
* 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
|
* 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
|
* 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
|
* pname:buffer must: be a valid sname:VkBuffer handle
|
||||||
* The value of pname:offset must: be less than the size of pname:buffer
|
* 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
|
* 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_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 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, 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
|
* 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[]
|
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-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-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-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-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 VK_IMAGE_TYPE_3D, 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 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-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 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-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 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-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 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 <<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 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_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 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 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_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_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 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_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 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 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_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 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
|
* 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[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
|
|
|
@ -17,8 +17,8 @@ endif::doctype-manpage[]
|
||||||
* pname:subresourceRange must: be a valid sname:VkImageSubresourceRange structure
|
* 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: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
|
* 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_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 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, 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
|
* 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>>)
|
* 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
|
* 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:dstAlphaBlendFactor must: be a valid elink:VkBlendFactor value
|
||||||
* pname:alphaBlendOp must: be a valid elink:VkBlendOp value
|
* pname:alphaBlendOp must: be a valid elink:VkBlendOp value
|
||||||
* pname:colorWriteMask must: be a valid combination of elink:VkColorComponentFlagBits values
|
* 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: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 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 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 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 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 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 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[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
|
|
|
@ -13,7 +13,7 @@ endif::doctype-manpage[]
|
||||||
* pname:topology must: be a valid elink:VkPrimitiveTopology value
|
* 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 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-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[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
|
|
|
@ -14,8 +14,8 @@ endif::doctype-manpage[]
|
||||||
* pname:module must: be a valid sname:VkShaderModule handle
|
* pname:module must: be a valid sname:VkShaderModule handle
|
||||||
* pname:pName must: be a null-terminated string
|
* 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 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-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 pname:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or pname:VK_SHADER_STAGE_TESSELLATION_EVALUATION_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: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
|
* 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
|
* 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:anisotropyEnable must: be ename:VK_FALSE
|
||||||
* If pname:unnormalizedCoordinates is ename:VK_TRUE, pname:compareEnable 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 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
|
* If pname:compareEnable is ename:VK_TRUE, pname:compareOp must: be a valid elink:VkCompareOp value
|
||||||
ifndef::doctype-manpage[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
|
|
|
@ -10,7 +10,7 @@ endif::doctype-manpage[]
|
||||||
* pname:sType must: be ename:VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
|
* pname:sType must: be ename:VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
|
||||||
* pname:pNext must: be `NULL`
|
* pname:pNext must: be `NULL`
|
||||||
* pname:flags must: be `0`
|
* 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 greater than 0
|
||||||
* pname:codeSize must: be a multiple of 4
|
* 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]
|
* 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
|
* 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
|
* 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: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
|
* 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 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
|
* 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 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 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
|
* 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-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 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, 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[]
|
ifndef::doctype-manpage[]
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
endif::doctype-manpage[]
|
endif::doctype-manpage[]
|
||||||
|
|
|
@ -14,10 +14,10 @@ endif::doctype-manpage[]
|
||||||
* pname:srcAccessMask must: be a valid combination of elink:VkAccessFlagBits values
|
* pname:srcAccessMask must: be a valid combination of elink:VkAccessFlagBits values
|
||||||
* pname:dstAccessMask 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
|
* 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: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 pname: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 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: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 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 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 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
|
* The values of pname:srcSubpass and pname:dstSubpass mustnot: both be equal to ename:VK_SUBPASS_EXTERNAL
|
||||||
ifndef::doctype-manpage[]
|
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_MIR_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType'
|
||||||
consts['VK_STRUCTURE_TYPE_ANDROID_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_WIN32_SURFACE_CREATE_INFO_KHR'] = 'VkStructureType'
|
||||||
consts['VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT'] = 'VkStructureType'
|
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_CREATE_INFO_EXT']
|
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: void
|
||||||
# Unprocessed type: uint32_t
|
# Unprocessed type: uint32_t
|
||||||
# Unprocessed type: VkFlags category: basetype
|
# Unprocessed type: VkFlags category: basetype
|
||||||
|
@ -1025,3 +1025,5 @@ protos['vkCmdExecuteCommands'] = ['commandBuffer', 'commandBufferCount', 'pComm
|
||||||
structs['VkDispatchIndirectCommand'] = ['x', 'y', 'z']
|
structs['VkDispatchIndirectCommand'] = ['x', 'y', 'z']
|
||||||
structs['VkDrawIndexedIndirectCommand'] = ['indexCount', 'instanceCount', 'firstIndex', 'vertexOffset', 'firstInstance']
|
structs['VkDrawIndexedIndirectCommand'] = ['indexCount', 'instanceCount', 'firstIndex', 'vertexOffset', 'firstInstance']
|
||||||
structs['VkDrawIndirectCommand'] = ['vertexCount', 'instanceCount', 'firstVertex', 'firstInstance']
|
structs['VkDrawIndirectCommand'] = ['vertexCount', 'instanceCount', 'firstVertex', 'firstInstance']
|
||||||
|
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/extensions.txt[]
|
||||||
|
|
||||||
|
include::appendices/VK_KHR_sampler_mirror_clamp_to_edge.txt[]
|
||||||
|
|
||||||
include::appendices/invariance.txt[]
|
include::appendices/invariance.txt[]
|
||||||
|
|
||||||
include::appendices/glossary.txt[]
|
include::appendices/glossary.txt[]
|
||||||
|
|
|
@ -625,7 +625,8 @@ class COutputGenerator(OutputGenerator):
|
||||||
#
|
#
|
||||||
# Multiple inclusion protection & C++ wrappers.
|
# Multiple inclusion protection & C++ wrappers.
|
||||||
if (genOpts.protectFile and self.genOpts.filename):
|
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('#ifndef', headerSym, file=self.outFile)
|
||||||
write('#define', headerSym, '1', file=self.outFile)
|
write('#define', headerSym, '1', file=self.outFile)
|
||||||
self.newline()
|
self.newline()
|
||||||
|
|
|
@ -203,6 +203,7 @@ buildList = [
|
||||||
defaultExtensions = None,
|
defaultExtensions = None,
|
||||||
addExtensions =
|
addExtensions =
|
||||||
makeREstring([
|
makeREstring([
|
||||||
|
'VK_KHR_sampler_mirror_clamp_to_edge',
|
||||||
]),
|
]),
|
||||||
removeExtensions =
|
removeExtensions =
|
||||||
makeREstring([
|
makeREstring([
|
||||||
|
@ -226,6 +227,7 @@ buildList = [
|
||||||
defaultExtensions = None,
|
defaultExtensions = None,
|
||||||
addExtensions =
|
addExtensions =
|
||||||
makeREstring([
|
makeREstring([
|
||||||
|
'VK_KHR_sampler_mirror_clamp_to_edge',
|
||||||
]),
|
]),
|
||||||
removeExtensions =
|
removeExtensions =
|
||||||
makeREstring([
|
makeREstring([
|
||||||
|
@ -243,6 +245,7 @@ buildList = [
|
||||||
defaultExtensions = None,
|
defaultExtensions = None,
|
||||||
addExtensions =
|
addExtensions =
|
||||||
makeREstring([
|
makeREstring([
|
||||||
|
'VK_KHR_sampler_mirror_clamp_to_edge',
|
||||||
]),
|
]),
|
||||||
removeExtensions =
|
removeExtensions =
|
||||||
makeREstring([
|
makeREstring([
|
||||||
|
@ -261,6 +264,7 @@ buildList = [
|
||||||
defaultExtensions = None,
|
defaultExtensions = None,
|
||||||
addExtensions =
|
addExtensions =
|
||||||
makeREstring([
|
makeREstring([
|
||||||
|
'VK_KHR_sampler_mirror_clamp_to_edge',
|
||||||
]),
|
]),
|
||||||
removeExtensions =
|
removeExtensions =
|
||||||
makeREstring([
|
makeREstring([
|
||||||
|
|
Binary file not shown.
|
@ -50,40 +50,78 @@
|
||||||
|
|
||||||
\title{The Khronos Vulkan API Registry for Vulkan}
|
\title{The Khronos Vulkan API Registry for Vulkan}
|
||||||
\author{Jon Leech}
|
\author{Jon Leech}
|
||||||
\date{Last updated 2016/02/07}
|
\date{Last updated 2016/02/22}
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
\begin{abstract}
|
\begin{abstract}
|
||||||
|
|
||||||
This document describes the Khronos Vulkan API Registry schema, and provides
|
This document describes the Khronos Vulkan API Registry schema, and provides
|
||||||
some additional information about using the registry and scripts to generate
|
some additional information about using the registry and scripts to generate
|
||||||
a variety of outputs including C header files and several types of asciidoc
|
a variety of outputs, including C header files as well as several types of
|
||||||
include files used in the Vulkan API specification and reference pages. The
|
asciidoc include files used in the Vulkan API specification and reference
|
||||||
underlying XML files and scripts are located on the Khronos Gitlab server,
|
pages. The underlying XML files and scripts are located on the Khronos
|
||||||
currently in the {\em master} branch at URL
|
public Github server as URL
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
{\bf \href{https://gitlab.khronos.org/vulkan/vulkan/tree/master/src/spec/}
|
{\bf \href{https://github.com/KhronosGroup/Vulkan-Docs}
|
||||||
{https://gitlab.khronos.org/vulkan/vulkan/tree/master/src/spec/}}
|
{https://github.com/KhronosGroup/Vulkan-Docs}}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
|
The authoritative copy of the Registry is maintained in the {\em 1.0}
|
||||||
|
branch.
|
||||||
|
|
||||||
\end{abstract}
|
\end{abstract}
|
||||||
|
|
||||||
\tableofcontents
|
\tableofcontents
|
||||||
|
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
|
|
||||||
The registry uses an XML representation of the Vulkan API and a set of
|
The registry uses an XML representation of the Vulkan API, together with a
|
||||||
Python scripts to manipulate the XML, based on the lxml Python bindings. It
|
set of Python scripts to manipulate the registry once loaded. The scripts
|
||||||
includes an XML schema and validator.
|
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 schema is based on, but not identical to that used for the previously
|
||||||
the previously published OpenGL, OpenGL ES and EGL API registries. The
|
published OpenGL, OpenGL ES and EGL API registries. It was extended to
|
||||||
schema was extended to represent additional types and concepts not needed
|
represent additional types and concepts not needed for those APIS, such as
|
||||||
for those APIS, such as structure and enumerant types.
|
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
|
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}
|
\section{Getting Started}
|
||||||
|
@ -144,9 +182,6 @@ Other Makefile targets include:
|
||||||
\code{vulkan-docs}.
|
\code{vulkan-docs}.
|
||||||
\item \code{validate} - validate \code{vk.xml} against the XML schema.
|
\item \code{validate} - validate \code{vk.xml} against the XML schema.
|
||||||
Recommended if you're making nontrivial changes.
|
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.
|
\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
|
Most people will never need to do this. If you do, you must have
|
||||||
pdflatex installed, preferably from the TeTeX distribution.
|
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{enum}, \code{funcpointer}, \code{group}, \code{handle},
|
||||||
\code{include}, \code{struct}, and \code{union}, as described below.
|
\code{include}, \code{struct}, and \code{union}, as described below.
|
||||||
\item \attr{comment} - optional. Arbitrary string (unused).
|
\item \attr{comment} - optional. Arbitrary string (unused).
|
||||||
\item \attr{parent} only applicable if category is \code{handle}. Notes another type with
|
\item \attr{parent} only applicable if category is \code{handle}. Notes
|
||||||
the \code{handle} category that acts as a parent object for this type.
|
another type with the \code{handle} category that acts as a parent
|
||||||
\item \attr{returnedonly} only applicable if category is \code{struct} or \code{union}.
|
object for this type.
|
||||||
Notes that this struct/union is going to be filled in by the API, rather than an
|
\item \attr{returnedonly} only applicable if category is \code{struct} or
|
||||||
application filling it out and passing it to the API.
|
\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}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Contents of \tag{type} tags}
|
\subsection{Contents of \tag{type} tags}
|
||||||
|
@ -381,18 +418,20 @@ member.
|
||||||
\paragraph{Attributes of \tag{member} tags}
|
\paragraph{Attributes of \tag{member} tags}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \attr{len} - if the member is an array, len may be one or more of the following
|
\item \attr{len} - if the member is an array, len may be one or more of the
|
||||||
things, separated by commas (one for each array indirection): another
|
following things, separated by commas (one for each array
|
||||||
member of that struct, ``null-terminated'' for a string, ``1'' to indicate it's
|
indirection): another member of that struct; ``null-terminated'' for a
|
||||||
just a pointer (used for nested pointers), or a latex equation (prefixed with
|
string; ``1'' to indicate it's just a pointer (used for nested
|
||||||
``latex:'')
|
pointers); or an equation (a LaTeX math expression delimited by {\tt
|
||||||
\item \attr{externsync} - denotes that the member should be externally synchronized
|
latexmath:[\$} and {\tt \$]}.
|
||||||
when accessed by Vulkan
|
\item \attr{externsync} - denotes that the member should be externally
|
||||||
\item \attr{optional} - whether this value can be omitted by providing \code{NULL} (for
|
synchronized when accessed by Vulkan
|
||||||
pointers), \code{VK_NULL_HANDLE} (for handles) or 0 (for bitmasks/values)
|
\item \attr{optional} - whether this value can be omitted by providing
|
||||||
\item \attr{noautovalidity} - prevents automatic validity language being generated
|
\code{NULL} (for pointers), \code{VK_NULL_HANDLE} (for handles) or 0
|
||||||
for the tagged item. Only suppresses item-specific validity - parenting issues
|
(for bitmasks/values)
|
||||||
etc. are still captured.
|
\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}
|
\end{itemize}
|
||||||
|
|
||||||
\paragraph{Contents of \tag{member} tags}
|
\paragraph{Contents of \tag{member} tags}
|
||||||
|
@ -663,6 +702,12 @@ command (function).
|
||||||
more of the terms \code{"compute"}, \code{"dma"}, and
|
more of the terms \code{"compute"}, \code{"dma"}, and
|
||||||
\code{"graphics"}, with multiple terms separated by commas
|
\code{"graphics"}, with multiple terms separated by commas
|
||||||
(\code{","}).
|
(\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
|
\item \attr{renderpass} - optional. A string identifying whether the
|
||||||
command can be issued only inside a render pass (\code{"inside"}),
|
command can be issued only inside a render pass (\code{"inside"}),
|
||||||
only outside a render pass (\code{"outside"}), or both
|
only outside a render pass (\code{"outside"}), or both
|
||||||
|
@ -751,16 +796,18 @@ members.
|
||||||
\label{tag:command:param:attr}
|
\label{tag:command:param:attr}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \attr{len} - if the param is an array, len may be one or more of the following
|
\item \attr{len} - if the param is an array, len may be one or more of the
|
||||||
things, separated by commas (one for each array indirection): another
|
following things, separated by commas (one for each array
|
||||||
param of that command, ``null-terminated'' for a string, ``1'' to indicate it's
|
indirection): another param of that command; ``null-terminated'' for a
|
||||||
just a pointer (used for nested pointers), or a latex equation (prefixed with
|
string; ``1'' to indicate it's just a pointer (used for nested
|
||||||
``latex:'')
|
pointers); or an equation (a simple expression prefixed with
|
||||||
\item \attr{optional} - whether this value can be omitted by providing \code{NULL} (for
|
``math:'')
|
||||||
pointers), \code{VK_NULL_HANDLE} (for handles) or 0 (for bitmasks/values)
|
\item \attr{optional} - whether this value can be omitted by providing
|
||||||
\item \attr{noautovalidity} - prevents automatic validity language being generated
|
\code{NULL} (for pointers), \code{VK_NULL_HANDLE} (for handles) or 0
|
||||||
for the tagged item. Only suppresses item-specific validity - parenting issues
|
(for bitmasks/values)
|
||||||
etc. are still captured.
|
\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
|
\item \attr{externsync} - optional. A boolean string, which must have the
|
||||||
value \code{"true"} if present, indicating that this parameter (e.g.
|
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
|
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}
|
\begin{verbatim}
|
||||||
|
|
||||||
#ifndef __vulkan_h_
|
#ifndef VULKAN_H_
|
||||||
#define __vulkan_h_ 1
|
#define VULKAN_H_ 1
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -1754,6 +1801,12 @@ log of this document (see section~\ref{changelog}). Changes to the
|
||||||
\label{changelog}
|
\label{changelog}
|
||||||
|
|
||||||
\begin{itemize}
|
\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 2016/02/07 - Add \attr{vendorids} tags for Khronos vendor IDs.
|
||||||
\item 2015/12/10 - Add \attr{author} and \attr{contact} attributes for
|
\item 2015/12/10 - Add \attr{author} and \attr{contact} attributes for
|
||||||
\tag{extension} tags.
|
\tag{extension} tags.
|
||||||
|
|
|
@ -49,11 +49,11 @@ Vendorids = element vendorids {
|
||||||
|
|
||||||
# <vendorid> defines a single vendor ID.
|
# <vendorid> defines a single vendor ID.
|
||||||
# name - author ID of the vendor
|
# name - author ID of the vendor
|
||||||
# id - Khronos vendor ID
|
# id - Khronos vendor ID (hexadecimal constant starting at 0x10000)
|
||||||
# comment - unused
|
# comment - unused
|
||||||
Tag = element tag {
|
Vendorid = element vendorid {
|
||||||
attribute name { text } ,
|
attribute name { text } ,
|
||||||
attribute author { text } ,
|
attribute id { text } ,
|
||||||
Comment ?
|
Comment ?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,6 +244,10 @@ Commands = element commands {
|
||||||
}
|
}
|
||||||
|
|
||||||
# <command> defines a single command
|
# <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
|
# <proto> is the C function prototype, including the return type
|
||||||
# <param> are function parameters, in order
|
# <param> are function parameters, in order
|
||||||
# len - if the member is an array, len may be one or more of the following
|
# 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.
|
# are related to them and also require external synchronization.
|
||||||
Command = element command {
|
Command = element command {
|
||||||
attribute queues { text } ? ,
|
attribute queues { text } ? ,
|
||||||
|
attribute successcodes { text } ? ,
|
||||||
|
attribute errorcodes { text } ? ,
|
||||||
attribute renderpass { text } ? ,
|
attribute renderpass { text } ? ,
|
||||||
attribute cmdbufferlevel { text } ? ,
|
attribute cmdbufferlevel { text } ? ,
|
||||||
Comment ? ,
|
Comment ? ,
|
||||||
|
@ -347,8 +353,7 @@ Extensions = element extensions {
|
||||||
# or "disabled" to never generate output.
|
# or "disabled" to never generate output.
|
||||||
# author - name of the author (usually a company or project name)
|
# author - name of the author (usually a company or project name)
|
||||||
# contact - contact responsible for the tag (name and contact information)
|
# contact - contact responsible for the tag (name and contact information)
|
||||||
# In addition, <require> / <remove> tags also support an
|
# In addition, <require> / <remove> tags also support an api attribute:
|
||||||
# api attribute:
|
|
||||||
# api - only require/remove these features for the matching API.
|
# api - only require/remove these features for the matching API.
|
||||||
# Not a regular expression.
|
# Not a regular expression.
|
||||||
Extension = element extension {
|
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 -->
|
<!-- SECTION: Vulkan vendor IDs for physical devices without PCI vendor IDs -->
|
||||||
<vendorids>
|
<vendorids>
|
||||||
<vendorid name="KHR" id="0x10000" comment="This is the next available Khronos vendor ID"/>
|
<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>
|
</vendorids>
|
||||||
|
|
||||||
<!-- SECTION: Vulkan vendor/author tags for extensions and layers -->
|
<!-- 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="NV" author="NVIDIA Corporation" contact="Daniel Koch @dgkoch"/>
|
||||||
<tag name="NVX" 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="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="KDAB" author="KDAB" contact="Sean Harmer @seanharmer"/>
|
||||||
<tag name="ANDROID" author="Google, Inc." contact="Jesse Hall @jessehall"/>
|
<tag name="ANDROID" author="Google, Inc." contact="Jesse Hall @jessehall"/>
|
||||||
<tag name="CHROMIUM" 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">#define <name>VK_VERSION_PATCH</name>(version) ((uint32_t)(version) & 0xfff)</type>
|
||||||
|
|
||||||
<type category="define">// Vulkan API version supported by this file
|
<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">
|
<type category="define">
|
||||||
|
@ -741,8 +744,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||||
<validity>
|
<validity>
|
||||||
<usage>The value of pname:offset must: be less than the size of pname:buffer</usage>
|
<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>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_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 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, 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>
|
<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>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
|
@ -760,8 +763,8 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||||
<validity>
|
<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: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>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_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 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, 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>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>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>
|
<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-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-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-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-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 VK_IMAGE_TYPE_3D, 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 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-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 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-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 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-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 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 <<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 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_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 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 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_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_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 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_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 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 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_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 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>
|
<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>
|
</validity>
|
||||||
</type>
|
</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>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
|
||||||
<member optional="true"><type>VkShaderModuleCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
<member optional="true"><type>VkShaderModuleCreateFlags</type> <name>flags</name></member> <!-- Reserved -->
|
||||||
<member><type>size_t</type> <name>codeSize</name></member> <!-- Specified in bytes -->
|
<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>
|
<validity>
|
||||||
<usage>pname:codeSize must: be greater than 0</usage>
|
<usage>pname:codeSize must: be greater than 0</usage>
|
||||||
<usage>pname:codeSize must: be a multiple of 4</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 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>
|
<member optional="true">const <type>VkSpecializationInfo</type>* <name>pSpecializationInfo</name></member>
|
||||||
<validity>
|
<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-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 pname:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or pname:VK_SHADER_STAGE_TESSELLATION_EVALUATION_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: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>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>
|
<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>
|
<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 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-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>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineTessellationStateCreateInfo">
|
<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>VkSampleCountFlagBits</type> <name>rasterizationSamples</name></member> <!-- Number of samples used for rasterization -->
|
||||||
<member><type>VkBool32</type> <name>sampleShadingEnable</name></member> <!-- optional (GL45) -->
|
<member><type>VkBool32</type> <name>sampleShadingEnable</name></member> <!-- optional (GL45) -->
|
||||||
<member><type>float</type> <name>minSampleShading</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>alphaToCoverageEnable</name></member>
|
||||||
<member><type>VkBool32</type> <name>alphaToOneEnable</name></member>
|
<member><type>VkBool32</type> <name>alphaToOneEnable</name></member>
|
||||||
<validity>
|
<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><type>VkBlendOp</type> <name>alphaBlendOp</name></member>
|
||||||
<member optional="true"><type>VkColorComponentFlags</type> <name>colorWriteMask</name></member>
|
<member optional="true"><type>VkColorComponentFlags</type> <name>colorWriteMask</name></member>
|
||||||
<validity>
|
<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: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 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 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 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 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 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 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>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkPipelineColorBlendStateCreateInfo">
|
<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: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 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 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>
|
<usage>If pname:compareEnable is ename:VK_TRUE, pname:compareOp must: be a valid elink:VkCompareOp value</usage>
|
||||||
</validity>
|
</validity>
|
||||||
</type>
|
</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>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>
|
<member optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></member>
|
||||||
<validity>
|
<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: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 pname: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 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: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 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 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 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>
|
<usage>The values of pname:srcSubpass and pname:dstSubpass mustnot: both be equal to ename:VK_SUBPASS_EXTERNAL</usage>
|
||||||
</validity>
|
</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>
|
<member len="signalSemaphoreCount">const <type>VkSemaphore</type>* <name>pSignalSemaphores</name></member>
|
||||||
<validity>
|
<validity>
|
||||||
<usage>Any given element of pname:pSignalSemaphores must: currently be unsignalled</usage>
|
<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>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 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>
|
<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 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 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>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-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 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, 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>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<!-- WSI extensions -->
|
<!-- WSI extensions -->
|
||||||
|
@ -2100,7 +2104,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||||
</validity>
|
</validity>
|
||||||
</type>
|
</type>
|
||||||
<type category="struct" name="VkDebugReportCallbackCreateInfoEXT">
|
<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>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>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-->
|
<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="1" name="VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT"/>
|
||||||
<enum value="2" name="VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"/>
|
<enum value="2" name="VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE"/>
|
||||||
<enum value="3" name="VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER"/>
|
<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>
|
||||||
<enums name="VkCompareOp" type="enum" expand="VK_COMPARE_OP">
|
<enums name="VkCompareOp" type="enum" expand="VK_COMPARE_OP">
|
||||||
<enum value="0" name="VK_COMPARE_OP_NEVER"/>
|
<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="7" name="VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"/>
|
||||||
<enum bitpos="8" name="VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"/>
|
<enum bitpos="8" name="VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR"/>
|
||||||
</enums>
|
</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="0" name="VK_DEBUG_REPORT_INFORMATION_BIT_EXT"/>
|
||||||
<enum bitpos="1" name="VK_DEBUG_REPORT_WARNING_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="2" name="VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT"/>
|
||||||
<enum bitpos="3" name="VK_DEBUG_REPORT_ERROR_BIT_EXT"/>
|
<enum bitpos="3" name="VK_DEBUG_REPORT_ERROR_BIT_EXT"/>
|
||||||
<enum bitpos="4" name="VK_DEBUG_REPORT_DEBUG_BIT_EXT"/>
|
<enum bitpos="4" name="VK_DEBUG_REPORT_DEBUG_BIT_EXT"/>
|
||||||
</enums>
|
</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="0" name="VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"/>
|
||||||
<enum value="1" name="VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"/>
|
<enum value="1" name="VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"/>
|
||||||
<enum value="2" name="VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_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="27" name="VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"/>
|
||||||
<enum value="28" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"/>
|
<enum value="28" name="VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"/>
|
||||||
</enums>
|
</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="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 -->
|
<enum value="1" name="VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT"/> <!-- Callbacks were not destroyed prior to calling DestroyInstance -->
|
||||||
</enums>
|
</enums>
|
||||||
|
@ -3187,7 +3191,7 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||||
<proto><type>void</type> <name>vkGetImageSparseMemoryRequirements</name></proto>
|
<proto><type>void</type> <name>vkGetImageSparseMemoryRequirements</name></proto>
|
||||||
<param><type>VkDevice</type> <name>device</name></param>
|
<param><type>VkDevice</type> <name>device</name></param>
|
||||||
<param><type>VkImage</type> <name>image</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>
|
<param optional="true" len="pSparseMemoryRequirementCount"><type>VkSparseImageMemoryRequirements</type>* <name>pSparseMemoryRequirements</name></param>
|
||||||
<validity>
|
<validity>
|
||||||
<usage>pname:image must: have been created with the ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag</usage>
|
<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: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 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>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:srcBuffer must: have been created with ename: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:dstBuffer must: have been created with ename:VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag</usage>
|
||||||
</validity>
|
</validity>
|
||||||
</command>
|
</command>
|
||||||
<command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
<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 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 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>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: 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: 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: 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 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>
|
<usage>The sample count of pname:srcImage and pname:dstImage must: match</usage>
|
||||||
</validity>
|
</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 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>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: 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: 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: 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: 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>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 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>
|
<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 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 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>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:srcBuffer must: have been created with ename: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: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: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: 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>
|
</validity>
|
||||||
</command>
|
</command>
|
||||||
<command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
<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 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 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>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: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: 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: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>
|
||||||
</validity>
|
</validity>
|
||||||
</command>
|
</command>
|
||||||
<command queues="transfer,graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
<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>VkBuffer</type> <name>dstBuffer</name></param>
|
||||||
<param><type>VkDeviceSize</type> <name>dstOffset</name></param>
|
<param><type>VkDeviceSize</type> <name>dstOffset</name></param>
|
||||||
<param><type>VkDeviceSize</type> <name>dataSize</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>
|
<validity>
|
||||||
<usage>The sum of pname:dstOffset and pname:dataSize must: be less than or equal to the size of pname:dstBuffer</usage>
|
<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: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 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>
|
<usage>The value of pname:dataSize must: be a multiple of `4`</usage>
|
||||||
</validity>
|
</validity>
|
||||||
</command>
|
</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>
|
<param><type>uint32_t</type> <name>data</name></param>
|
||||||
<validity>
|
<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>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>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>
|
<usage>If pname:size is not equal to ename:VK_WHOLE_SIZE, pname:size must: be a multiple of `4`</usage>
|
||||||
</validity>
|
</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><type>uint32_t</type> <name>rangeCount</name></param>
|
||||||
<param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param>
|
<param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param>
|
||||||
<validity>
|
<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: 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>
|
<usage>The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image</usage>
|
||||||
</validity>
|
</validity>
|
||||||
</command>
|
</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><type>uint32_t</type> <name>rangeCount</name></param>
|
||||||
<param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param>
|
<param len="rangeCount">const <type>VkImageSubresourceRange</type>* <name>pRanges</name></param>
|
||||||
<validity>
|
<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: 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>
|
<usage>The image range of any given element of pname:pRanges must: be a subresource range that is contained within pname:image</usage>
|
||||||
</validity>
|
</validity>
|
||||||
</command>
|
</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: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: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: 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: 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_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>
|
<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>VkEvent</type> <name>event</name></param>
|
||||||
<param><type>VkPipelineStageFlags</type> <name>stageMask</name></param>
|
<param><type>VkPipelineStageFlags</type> <name>stageMask</name></param>
|
||||||
<validity>
|
<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-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 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:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||||
</validity>
|
</validity>
|
||||||
</command>
|
</command>
|
||||||
<command queues="graphics,compute" renderpass="outside" cmdbufferlevel="primary,secondary">
|
<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>VkEvent</type> <name>event</name></param>
|
||||||
<param><type>VkPipelineStageFlags</type> <name>stageMask</name></param>
|
<param><type>VkPipelineStageFlags</type> <name>stageMask</name></param>
|
||||||
<validity>
|
<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-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 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:stageMask mustnot: contain ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT</usage>
|
||||||
</validity>
|
</validity>
|
||||||
</command>
|
</command>
|
||||||
<command queues="graphics,compute" renderpass="both" cmdbufferlevel="primary,secondary">
|
<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 optional="true"><type>uint32_t</type> <name>imageMemoryBarrierCount</name></param>
|
||||||
<param len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier</type>* <name>pImageMemoryBarriers</name></param>
|
<param len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier</type>* <name>pImageMemoryBarriers</name></param>
|
||||||
<validity>
|
<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>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 pname:VK_PIPELINE_STAGE_GEOMETRY_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 pname: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 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: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 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 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>
|
<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>
|
</validity>
|
||||||
</command>
|
</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 optional="true"><type>uint32_t</type> <name>imageMemoryBarrierCount</name></param>
|
||||||
<param len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier</type>* <name>pImageMemoryBarriers</name></param>
|
<param len="imageMemoryBarrierCount">const <type>VkImageMemoryBarrier</type>* <name>pImageMemoryBarriers</name></param>
|
||||||
<validity>
|
<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: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 pname: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 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: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 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 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>
|
<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>
|
</validity>
|
||||||
</command>
|
</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><type>uint32_t</type> <name>commandBufferCount</name></param>
|
||||||
<param len="commandBufferCount">const <type>VkCommandBuffer</type>* <name>pCommandBuffers</name></param>
|
<param len="commandBufferCount">const <type>VkCommandBuffer</type>* <name>pCommandBuffers</name></param>
|
||||||
<validity>
|
<validity>
|
||||||
<usage>pname:commandBuffer must: have been created with a pname:level value of VK_COMMAND_BUFFER_LEVEL_PRIMARY</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 VK_COMMAND_BUFFER_LEVEL_SECONDARY</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 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 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>
|
<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 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="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"/>
|
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"/>
|
||||||
|
<type name="VkDisplayPlaneAlphaFlagsKHR"/>
|
||||||
<type name="VkDisplayPlaneAlphaFlagBitsKHR"/>
|
<type name="VkDisplayPlaneAlphaFlagBitsKHR"/>
|
||||||
<type name="VkDisplayPropertiesKHR"/>
|
<type name="VkDisplayPropertiesKHR"/>
|
||||||
<type name="VkDisplayModeParametersKHR"/>
|
<type name="VkDisplayModeParametersKHR"/>
|
||||||
|
@ -5070,10 +5075,11 @@ maintained in the master branch of the Khronos Vulkan Github project.
|
||||||
</extension>
|
</extension>
|
||||||
<extension name="VK_EXT_debug_report" number="12" author="Google, Inc." contact="Courtney Goeltzenleuchter @courtney" supported="vulkan">
|
<extension name="VK_EXT_debug_report" number="12" author="Google, Inc." contact="Courtney Goeltzenleuchter @courtney" supported="vulkan">
|
||||||
<require>
|
<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 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 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="VkDebugReportObjectTypeEXT"/>
|
||||||
<type name="VkDebugReportErrorEXT"/>
|
<type name="VkDebugReportErrorEXT"/>
|
||||||
<command name="vkCreateDebugReportCallbackEXT"/>
|
<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"/>
|
<enum offset="0" dir="-" extends="VkResult" name="VK_NV_EXTENSION_1_ERROR"/>
|
||||||
</require>
|
</require>
|
||||||
</extension>
|
</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>
|
</extensions>
|
||||||
</registry>
|
</registry>
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef __VK_PLATFORM_H__
|
#ifndef VK_PLATFORM_H_
|
||||||
#define __VK_PLATFORM_H__
|
#define VK_PLATFORM_H_
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C"
|
extern "C"
|
||||||
|
@ -124,4 +124,4 @@ extern "C"
|
||||||
#include <xcb/xcb.h>
|
#include <xcb/xcb.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // __VK_PLATFORM_H__
|
#endif
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#ifndef __vulkan_h_
|
#ifndef VULKAN_H_
|
||||||
#define __vulkan_h_ 1
|
#define VULKAN_H_ 1
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -41,7 +41,7 @@ extern "C" {
|
||||||
(((major) << 22) | ((minor) << 12) | (patch))
|
(((major) << 22) | ((minor) << 12) | (patch))
|
||||||
|
|
||||||
// Vulkan API version supported by this file
|
// 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_MAJOR(version) ((uint32_t)(version) >> 22)
|
||||||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
#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_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
|
||||||
VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
|
VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
|
||||||
VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
|
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_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
|
||||||
VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_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),
|
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_CLAMP_TO_BORDER = 3,
|
||||||
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
|
VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
|
||||||
VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
|
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_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
|
||||||
VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
|
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
|
VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
|
||||||
} VkSamplerAddressMode;
|
} VkSamplerAddressMode;
|
||||||
|
|
||||||
|
@ -3326,8 +3326,8 @@ typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
|
||||||
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
|
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
|
||||||
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
|
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
|
||||||
} VkDisplayPlaneAlphaFlagBitsKHR;
|
} VkDisplayPlaneAlphaFlagBitsKHR;
|
||||||
typedef VkFlags VkDisplayModeCreateFlagsKHR;
|
|
||||||
typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
|
typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
|
||||||
|
typedef VkFlags VkDisplayModeCreateFlagsKHR;
|
||||||
typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
|
typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
|
||||||
|
|
||||||
typedef struct VkDisplayPropertiesKHR {
|
typedef struct VkDisplayPropertiesKHR {
|
||||||
|
@ -3667,11 +3667,17 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
|
||||||
#endif
|
#endif
|
||||||
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
#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
|
#define VK_EXT_debug_report 1
|
||||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
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_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 {
|
typedef enum VkDebugReportObjectTypeEXT {
|
||||||
|
|
Loading…
Reference in New Issue