mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-01-21 03:40:21 +00:00
5de77cf663
* Bump API patch number and header version number to 16 for this update. Github Issues: * Clarify that integer border values are meant to be 0/1, and that integer texture lookups are sign-extended in the <<textures-format-conversion,Format Conversion>> and <<textures-texel-replacement,Texel Replacement>> sections (public issue 52). * Add logic to generate spec boilerplate without using the 'git' command-line client, needed when building from a tarball or another source of the Vulkan tree rather than a cloned git repo. Remove boilerplate as part of 'clean' target (public issue 195). * Document that color writes and clears to unused attachments have no effect for slink:VkClearAttachment and elink:VkColorComponentFlagBits (public issue 198). * Fixed flink:vkCmdExecuteCommands validity statement for sname:VkCommandBufferInheritanceInfo::pname:framebuffer. If used, it must match the framebuffer in the current renderpass instance (public issue 226). * Added valid usage language to require for all functions that set dynamic state that the currently bound graphics pipeline has the corresponding dynamic state enabled (public issue 235). Internal Issues: * Clarify for flink:vkEnumerateInstanceExtensionProperties, in the <<extended-functionality-instance-extensions-and-devices, Instance Extensions and Device Extensions>> section, and in the <<glossary,Glossary>> section when functionality should be exposed as an instance extension, as a device extension, or as both (internal issue 109). * Place WorkgroupSize in alphabetical order in the <<interfaces-builtin-variables,Built-in Variables>> section (internal issue 323). * Corrects valid usage in vkEndRenderPass to only affect primary render passes, as secondaries may be entirely within a render pass, and should be able to be ended (previous language disallowed that) (internal issue 338). * Fix relational operator from <= to >= in the <<features-extentperimagetype,Allowed Extent Values>> section (internal issue 343). * Disallow recursion under SPIR-V entry points in the <<spirvenv-module-validation,Validation Rules within a Module>> section (internal SPIR-V issue 37). Other Commits: * Use standard Python ElementTree package instead of lxml.etree in header / validation layer / include autogeneration from XML, reducing platform dependencies.
68 lines
5.2 KiB
Plaintext
68 lines
5.2 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:pCommandBuffers must: be a pointer to an array of pname:commandBufferCount valid sname:VkCommandBuffer handles
|
|
* pname:commandBuffer must: be in the recording state
|
|
* The sname:VkCommandPool that pname:commandBuffer was allocated from must: support transfer, graphics or compute operations
|
|
* pname:commandBuffer must: be a primary sname:VkCommandBuffer
|
|
* pname:commandBufferCount must: be greater than `0`
|
|
* Each of pname:commandBuffer and the elements of pname:pCommandBuffers must: have been created, allocated or retrieved from the same sname:VkDevice
|
|
* pname:commandBuffer must: have been created with a pname:level of ename:VK_COMMAND_BUFFER_LEVEL_PRIMARY
|
|
* Any given element of pname:pCommandBuffers must: have been created with a pname:level of ename:VK_COMMAND_BUFFER_LEVEL_SECONDARY
|
|
* Any given element of pname:pCommandBuffers mustnot: be already pending execution in pname:commandBuffer, or appear twice in pname:pCommandBuffers, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag
|
|
* Any given element of pname:pCommandBuffers mustnot: be already pending execution in any other sname:VkCommandBuffer, unless it was created with the ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag
|
|
* Any given element of pname:pCommandBuffers must: be in the executable state
|
|
* If fname:vkCmdExecuteCommands is being called within a render pass instance, that render pass instance must: have been begun with the pname:contents parameter of fname:vkCmdBeginRenderPass set to ename:VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS
|
|
* If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with the ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT
|
|
* If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with sname:VkCommandBufferInheritanceInfo::pname:subpass set to the index of the subpass which the given command buffer will be executed in
|
|
* If fname:vkCmdExecuteCommands is being called within a render pass instance, any given element of pname:pCommandBuffers must: have been recorded with a render pass that is compatible with the current render pass - see <<renderpass-compatibility>>
|
|
* If fname:vkCmdExecuteCommands is being called within a render pass instance, and any given element of pname:pCommandBuffers was recorded with sname:VkCommandBufferInheritanceInfo::pname:framebuffer not equal to sname:VK_NULL_HANDLE, that sname:VkFramebuffer must: match the sname:VkFramebuffer used in the current render pass instance
|
|
* If the <<features-features-inheritedQueries,inherited queries>> feature is not enabled, pname:commandBuffer mustnot: have any queries <<queries-operation-active,active>>
|
|
* If pname:commandBuffer has a ename:VK_QUERY_TYPE_OCCLUSION query <<queries-operation-active,active>>, then each element of pname:pCommandBuffers must: have been recorded with sname:VkCommandBufferInheritanceInfo::pname:occlusionQueryEnable set to ename:VK_TRUE
|
|
* If pname:commandBuffer has a ename:VK_QUERY_TYPE_OCCLUSION query <<queries-operation-active,active>>, then each element of pname:pCommandBuffers must: have been recorded with sname:VkCommandBufferInheritanceInfo::pname:queryFlags having all bits set that are set for the query
|
|
* If pname:commandBuffer has a ename:VK_QUERY_TYPE_PIPELINE_STATISTICS query <<queries-operation-active,active>>, then each element of pname:pCommandBuffers must: have been recorded with sname:VkCommandBufferInheritanceInfo::pname:pipelineStatistics having all bits set that are set in the sname:VkQueryPool the query uses
|
|
* Any given element of pname:pCommandBuffers mustnot: begin any query types that are <<queries-operation-active,active>> in pname:commandBuffer
|
|
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|Both|TRANSFER +
|
|
GRAPHICS +
|
|
COMPUTE
|
|
|=====================
|
|
ifndef::doctype-manpage[]
|
|
********************************************************************************
|
|
endif::doctype-manpage[]
|
|
|