Vulkan-Docs/doc/specs/vulkan/man/vkCmdDrawIndirect.txt

63 lines
1.9 KiB
Plaintext
Raw Normal View History

2016-02-16 09:53:44 +00:00
vkCmdDrawIndirect(3)
====================
Name
----
vkCmdDrawIndirect - Issue an indirect draw into a command buffer.
C Specification
---------------
include::../protos/vkCmdDrawIndirect.txt[]
Parameters
----------
pname:commandBuffer::
Specifies the command buffer into which to insert the draw command.
pname:buffer::
Specifies a handle of a buffer object containing parameters forming individual draw commands.
pname:offset::
Specifies offset, in bytes, within the buffer object represented by pname:buffer at which the drawing command parameters begin.
pname:drawCount::
Specifies the number of indirect draws to consume from the specified
memory object.
pname:stride::
Specifies the distance, in bytes, between the start of each indirect draw in the memory object. This parameter
may be zero to indicate that the array of indirect draw commands is tightly packed.
Description
-----------
fname:vkCmdDrawIndirect issues an indirect draw into a command bufer. Each
indirect command consumes pname:drawCount structures, stored at pname:offset
bytes into the buffer object whose handle is specified in pname:buffer.
The beginning of each structure is pname:stride bytes from the previous.
The data structures have the a layout in memory which may be represented by
Change log for April 22, 2016 Vulkan 1.0.11 spec update: * Bump API patch number and header version number to 11 for this update. Github Issues: * Clarify the WSI extension language by switching from the fuzzier "ownership" language to more-consistent "acquire" language (public issue 117). * Clarify that memory barriers apply to all commands in the dependency chains in the flink:vkGetRenderAreaGranularity command and the <<synchronization-execution-and-memory-dependencies,Execution And Memory Dependencies>> section (public issue 132). * Clarify that a queue family is a set of queues in the <<fundamentals-execmodel,Execution Model>> section (public issue 166). * Removed requirement from valid usage language that VkPresentInfoKHR::waitSemaphoreCount must be greater than 0 (public issue 171). * Fix broken internal links, describe structures consistently, use consistent style for SPIR-V codewords, and tag normative terms that were missing asciidoc tags (public issue 183 and ancillary markup/normative language fixes). * Fix typos for slink:VkPhysicalDeviceLimits member names in slink:VkImageCreateInfo validity language (public issue 184). Internal Issues: * Document that the requested patch version number specified as part of slink:VkApplicationInfo::pname:apiVersion is ignored when creating an instance (internal issue 176). * Clarify handling of extension structs in the <<fundamentals-validusageValid Usage>> section (internal issue 254). * Update required slink:VkImageFormatProperties::pname:maxMipLevels to be limited to the maximum allowed mipmap pyramid size corresponding to the actual maximum supported size for the format (internal issue 256). * Modify the <<features-extentperimagetype,Allowed Extent Values Based On Image Type>> section so the allowed maximum extent is the maximum image dimension supported for each dimension of the type of texture being queried (internal issue 257). * Clarify in the <<spirvenv-module-validation,Validation Rules within a Module>> section that at least one of the code:LocalSize execution mode or code:WorkgroupSize decoration is required for each compute shader entry point in a shader module (internal issue 279). * Add validity rules for formats in flink:vkCmdClearColorImage and flink:vkCmdClearDepthStencilImage (internal issue 283). * Clarify that slink:VkImageFormatProperties::pname:maxResourceSize is an upper bound, and that it may not be possible to create an image anywhere near that size (internal issue 284). Other Commits: * Fix various minor markup errors reported by validation scripts. * Change copyright from Khronos Free Use License to Apache 2.0 license on relevant script/XML/header files. This does not affect the specification source copyright.
2016-04-21 08:08:38 +00:00
the slink:VkDrawIndirectCommand structure, the definition of which is:
2016-02-16 09:53:44 +00:00
include::../structs/VkDrawIndirectCommand.txt[]
If pname:stride is zero, the array of slink:VkDrawIndirectCommand structures is
assumed to be tightly packed.
include::../validity/protos/vkCmdDrawIndirect.txt[]
Notes
-----
Although fname:vkCmdDrawIndirect does not generate errors or return a value, enabled
validation layers may detect possible error conditions or potentially undefined
behavior and report this via some other means.
See Also
--------
flink:vkCmdDraw, flink:vkCmdDrawIndexed, flink:vkCmdDrawIndexedIndirect
include::footer.txt[]