71 lines
6.6 KiB
Plaintext
71 lines
6.6 KiB
Plaintext
// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
|
|
ifndef::doctype-manpage[]
|
|
.Valid Usage
|
|
********************************************************************************
|
|
endif::doctype-manpage[]
|
|
ifdef::doctype-manpage[]
|
|
Valid Usage
|
|
-----------
|
|
endif::doctype-manpage[]
|
|
* pname:commandBuffer must: be a valid sname:VkCommandBuffer handle
|
|
* pname:buffer must: be a valid sname:VkBuffer handle
|
|
* pname:commandBuffer must: be in the recording state
|
|
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support graphics operations
|
|
* This command must: only be called inside of a render pass instance
|
|
* Each of pname:commandBuffer and pname:buffer must: have been created, allocated or retrieved from the same sname:VkDevice
|
|
* The value of pname:offset must: be a multiple of `4`
|
|
* If pname:drawCount is greater than `1`, the value of pname:stride must: be a multiple of `4` and must: be greater than or equal to sizeof(sname:VkDrawIndexedIndirectCommand)
|
|
* If the <<features-features-multiDrawIndirect,multi-draw indirect>> feature is not enabled, the value of pname:drawCount must: be `0` or `1`
|
|
* If the <<features-features-drawIndirectFirstInstance,drawIndirectFirstInstance>> feature is not enabled, all the pname:firstInstance members of the sname:VkDrawIndexedIndirectCommand structures accessed by this command must: be code:0
|
|
* For each set _n_ that is statically used by the sname:VkPipeline currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS, a descriptor set must: have been bound to _n_ at ename:VK_PIPELINE_BIND_POINT_GRAPHICS, with a sname:VkPipelineLayout that is compatible for set _n_, with the sname:VkPipelineLayout used to create the current sname:VkPipeline, as described in <<descriptorsets-compatibility>>
|
|
* For each push constant that is statically used by the sname:VkPipeline currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS, a push constant value must: have been set for ename:VK_PIPELINE_BIND_POINT_GRAPHICS, with a sname:VkPipelineLayout that is compatible for push constants, with the sname:VkPipelineLayout used to create the current sname:VkPipeline, as described in <<descriptorsets-compatibility>>
|
|
* Descriptors in each bound descriptor set, specified via fname:vkCmdBindDescriptorSets, must: be valid if they are statically used by the currently bound sname:VkPipeline object, specified via fname:vkCmdBindPipeline
|
|
* All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point's interface must: have valid buffers bound
|
|
* A valid graphics pipeline must: be bound to the current command buffer with ename:VK_PIPELINE_BIND_POINT_GRAPHICS
|
|
* If the sname:VkPipeline object currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS requires any dynamic state, that state must: have been set on the current command buffer
|
|
* If pname:drawCount is equal to `1`, the total value of (pname:offset + sizeof(sname:VkDrawIndexedIndirectCommand)) must: be less than or equal to the size of pname:buffer
|
|
* If pname:drawCount is greater than `1`, the total value of (pname:stride x (pname:drawCount - 1) + pname:offset + sizeof(sname:VkDrawIndexedIndirectCommand)) must: be less than or equal to the size of pname:buffer
|
|
* pname:drawCount must: be less than or equal to sname:VkPhysicalDeviceLimits::pname:maxDrawIndirectCount
|
|
* Every input attachment used by the current subpass must: be bound to the pipeline via a descriptor set
|
|
* If any sname:VkSampler object that is accessed from a shader by the sname:VkPipeline currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it mustnot: be used to sample from any sname:VkImage with a sname:VkImageView of the type ename:VK_IMAGE_VIEW_TYPE_3D, ename:VK_IMAGE_VIEW_TYPE_CUBE, ename:VK_IMAGE_VIEW_TYPE_1D_ARRAY, ename:VK_IMAGE_VIEW_TYPE_2D_ARRAY or ename:VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage
|
|
* If any sname:VkSampler object that is accessed from a shader by the sname:VkPipeline currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it mustnot: be used with any of the SPIR-V `OpImageSample*` or `OpImageSparseSample*` instructions with code:ImplicitLod, code:Dref or code:Proj in their name, in any shader stage
|
|
* If any sname:VkSampler object that is accessed from a shader by the sname:VkPipeline currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it mustnot: be used with any of the SPIR-V `OpImageSample*` or `OpImageSparseSample*` instructions that includes a lod bias or any offset values, in any shader stage
|
|
* If the <<features-features-robustBufferAccess,robust buffer access>> feature is not enabled, and any shader stage in the sname:VkPipeline object currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it mustnot: access values outside of the range of that buffer specified in the currently bound descriptor set
|
|
* If the <<features-features-robustBufferAccess,robust buffer access>> feature is not enabled, and any shader stage in the sname:VkPipeline object currently bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it mustnot: access values outside of the range of that buffer specified in the currently bound descriptor set
|
|
* Any slink:VkImage being sampled with ename:VK_FILTER_LINEAR as a result of this command must: be of a format which supports linear filtering, as specified by the ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in sname:VkFormatProperties::pname:linearTilingFeatures returned by fname:vkGetPhysicalDeviceFormatProperties
|
|
ifndef::doctype-manpage[]
|
|
********************************************************************************
|
|
endif::doctype-manpage[]
|
|
|
|
ifndef::doctype-manpage[]
|
|
.Host Synchronization
|
|
********************************************************************************
|
|
endif::doctype-manpage[]
|
|
ifdef::doctype-manpage[]
|
|
Host Synchronization
|
|
--------------------
|
|
endif::doctype-manpage[]
|
|
* Host access to pname:commandBuffer must: be externally synchronized
|
|
ifndef::doctype-manpage[]
|
|
********************************************************************************
|
|
endif::doctype-manpage[]
|
|
|
|
ifndef::doctype-manpage[]
|
|
.Command Properties
|
|
********************************************************************************
|
|
endif::doctype-manpage[]
|
|
ifdef::doctype-manpage[]
|
|
Command Properties
|
|
------------------
|
|
endif::doctype-manpage[]
|
|
[options="header", width="100%"]
|
|
|=====================
|
|
|Command Buffer Levels|Render Pass Scope|Supported Queue Types
|
|
|Primary +
|
|
Secondary|Inside|GRAPHICS
|
|
|=====================
|
|
ifndef::doctype-manpage[]
|
|
********************************************************************************
|
|
endif::doctype-manpage[]
|
|
|