Vulkan-Docs/doc/specs/vulkan/man/vkQueueBindSparse.txt
Jon Leech 3b32b240f6 Change log for April 15, 2016 Vulkan 1.0.10 spec update:
* Bump API patch number and header version number to 10 for this
    update.

Github Issues:

  * Slightly tweak the <<memory-allocation,Host Memory>> allocator language
    so that an application wrapping the standard C alloc/free/realloc
    functions is still correct - the previous language was too strong with
    regards to freeing memory. Also made certain scenarios clearer - an
    implementation may now continue without error if an allocation failed
    and it is able to continue correctly (public issue 21).
  * Require that etext:VK_*_CREATE_SPARSE_BINDING_BIT is set when the
    corresponding etext:VK_*_CREATE_SPARSE_RESIDENCY_BIT is used, in the
    <<sparsememory-miptail,Mip Tail Regions>> section and related commands
    flink:vkCreateBuffer and flink:vkCreateImage (public issue 84).
  * Update the <<features,Features, Limits, and Formats>> chapter to clarify
    interactions between optional features and dynamic state for the
    pname:depthBiasClamp and pname:wideLines features (public issue 89).
  * Describe the code:WorkgroupSize builtin in the
    <<interfaces-builtin-variables,Built-In Variables>> section, and update
    the <<compute-shaders,Compute Shaders>> section to further clarify how
    to set the number of workgroups to execute in a compute shader (public
    issue 145).
  * Use the term *image subresource* everywhere instead of *subresource*,
    except for the special case of *host-accessible subresource*, which may
    be either an image subresource or buffer range (public issue 120)
  * Add a note to the <<features,Features, Limits, and Formats>> section
    about extensibility of structures (Public issue 165).
  * Fix return code flink:vkAcquireNextImageKHR when the timeout parameter
    is 0 to ename:VK_NOT_READY instead of ename:VK_TIMEOUT (public issue
    170).
  * Fix typo in slink:VkLayerProperties::pname:apiVersion field (public
    issue 172).

Internal Issues:

  * Fix a few minor internally-detected typos.
  * Minor formatting tweaks to pseudocode in the <<resources,Resource
    Creation>> chapter (internal issue 179).
  * Fix typo in the definition of point sampling for
    elink:VkCullModeFlagBits (internal issue 268).
2016-04-14 01:58:49 -07:00

163 lines
7.1 KiB
Plaintext

vkQueueBindSparse(3)
====================
Name
----
vkQueueBindSparse - Bind device memory to a sparse resource object.
C Specification
---------------
include::../protos/vkQueueBindSparse.txt[]
Parameters
----------
pname:queue::
The queue upon which to perform the operation.
pname:bindInfoCount::
The number of binding operations to perform.
pname:pBindInfo::
A pointer to an array of pname:bindInfoCount data structures describing
the binding operations to perform.
pname:fence::
A handle to a fence object that will be signaled when the binding
operation completes.
Description
-----------
fname:vkQueueBindSparse binds memory to sparse resources. The number of
binding operations to perform is specified in pname:bindInfoCount and
the binding operation takes place on the queue specified in pname:queue.
pname:queue must be the handle to a queue that is a member of a family
that supports the ename:VK_QUEUE_SPARSE_MEMMGR_BIT capability.
pname:pBindInfo is a pointer to an array of pname:bindInfoCount
slink:VkBindSparseInfo structures describing each of the binding operations.
The definition of slink:VkBindSparseInfo is:
include::../structs/VkBindSparseInfo.txt[]
The pname:sType member of slink:VkBindSparseInfo should be
ename:VK_STRUCTURE_TYPE_BIND_SPARSE_INFO. The pname:pNext member is reserved
for use by extensions and should be set to code:NULL.
The pname:waitSemaphoreCount member specifies the number of semaphores
that should be waited on before the binding operation takes place.
pname:pWaitSemaphores is a pointer to an array of basetype:VkSemaphore
objects to wait on. If pname:waitSemaphoreCount is zero then the value
of pname:pWaitSemaphores is ignored and the command will not wait before
performing the bind operations.
The pname:bufferBindCount parameter specifies the number of binding
operations to apply to buffer objects. The pname:pBufferBinds parameter
is a pointer to an array of pname:bufferBindCount slink:VkSparseBufferMemoryBindInfo
structures describing the binding operations for buffers to be performed
by the command. The definition of slink:VkSparseBufferMemoryBindInfo is:
include::../structs/VkSparseBufferMemoryBindInfo.txt[]
The pname:buffer member of slink:VkSparseBufferMemoryBindInfo specifies the
target buffer, pname:bindCount specifies the number of binding operations
to apply to that buffer, and pname:pBinds is a pointer to an array of
slink:VkSparseMemoryBind structures describing the bindings. If
pname:bindCount is zero then the value of pname:pBinds is ignored and no
bindings are performed. The definition of slink:VkSparseMemoryBind is:
include::../structs/VkSparseMemoryBind.txt[]
For each element of the array of slink:VkSparseMemoryBind structures,
pname:resourceOffset and pname:size specify the starting offset
and size of the region in the buffer. Both are specified in bytes.
pname:memoryOffset specifies the offset of the region of the memory
object specified by pname:memory that is to be bound to the specified region
in the buffer object. pname:memoryOffset is also specified in bytes.
pname:resourceOffset, pname:size and pname:memoryOffset must each satisfy
the alignment requirements of the buffer. This is returned in the
ptext:alignment field of the slink:VkMemoryRequirements structure filled by a call to
flink:vkGetBufferMemoryRequirements.
The pname:flags member of the slink:VkSparseMemoryBind structure is a
bitfield comprising members of the elink:VkSparseMemoryBindFlagBits
enumeration, the definition of which is:
include::../enums/VkSparseMemoryBindFlagBits.txt[]
All other bits in pname:flags are reserved and should be set to zero.
The ptext:imageOpaqueBindCount member specifies the number of opaque
image memory binding operations to execute and ptext:pImageOpaqueBinds
is a pointer to an array of ptext:imageOpaqueBindCount
slink:VkSparseImageOpaqueMemoryBindInfo structures describing those
operations. If ptext:imageOpaqueBindCount is zero then the value of
ptext:pImageOpaqueBinds is ignored and no binding operations are performed.
The definition of slink:VkSparseImageOpaqueMemoryBindInfo is:
include::../structs/VkSparseImageOpaqueMemoryBindInfo.txt[]
The pname:image member of the slink:VkSparseImageOpaqueMemoryBindInfo structure
specifies the image that is the target of the binding operation. pname:bindCount
specifies the number of binding operations to be applied to pname:image and
pname:pBinds is a pointer to an array of slink:VkSparseMemoryBind structures
describing those operations. If pname:bindCount is zero then the value of
pname:pBinds is ignored. Opaque memory binding operations are expressed
in terms of byte offsets. The slink:VkSparseMemoryBind structures pointed
to by the pname:pBinds member of slink:VkSparseImageOpaqueMemoryBindInfo
are interpreted as described for buffers above.
The ptext:imageBindCount member of the slink:VkBindSparseInfo specifies the
number of non-opaque image bindings to perform, and the ptext:pImageBinds
member of the structure is a pointer to an array of ptext:imageBindCount
slink:VkSparseImageMemoryBindInfo structures describing those operations.
If ptext:imageBindCount is zero then the value of ptext:pImageBinds is
ignored. The definition of slink:VkSparseImageMemoryBindInfo is:
include::../structs/VkSparseImageMemoryBindInfo.txt[]
Within slink:VkSparseImageMemoryBindInfo, the pname:image member specifies
the image that is to be the target of the binding operation. pname:bindCount
specifies the number of binding operations to execute and pname:pBinds
is a pointer to an array of pname:bindCount slink:VkSparseImageMemoryBind
structes describing those operations. The definition of
slink:VkSparseImageMemoryBind is:
include::../structs/VkSparseImageMemoryBind.txt[]
The pname:subresource member of slink:VkSparseImageMemoryBind specifies the
image subresource within the image to bind memory to. The pname:offset and
pname:extent members specify the region within the image subresource
to bind memory to. pname:offset and pname:extent are instances of the
slink:VkOffset3D and slink:VkExtent3D structures, respectively, and are
expressed in texels. The pname:memoryOffset member specifies the offset within
the memory object specified by pname:memory from which to bind memory.
pname:memoryOffset is expressed in bytes. Its value and the values contained
in pname:offset and pname:extent must satisfy device-specific alignment
requirements.
The pname:flags member within slink:VkSparseImageMemoryBind has the same
interpretation as the similarly named member in slink:VkSparseMemoryBind.
The ptext:signalSemaphoreCount parameter specifies the number of semaphores
to signal after the binding operations are complete. ptext:pSignalSemaphores
is a pointer to an array of ptext:signalSemaphoreCount basetype:VkSemaphore
objects to signal at this point. If ptext:signalSemaphoreCount is zero
then the value of ptext:pSignalSemaphores is ignored and no semaphores are
signaled as a result of the operation.
include::../validity/protos/vkQueueBindSparse.txt[]
See Also
--------
flink:vkQueueSubmit,
flink:vkBindBufferMemory,
flink:vkGetBufferMemoryRequirements,
flink:vkGetImageMemoryRequirements,
flink:vkBindImageMemory
include::footer.txt[]