vkCmdConvertCooperativeVectorMatrixNV(3)

Name

vkCmdConvertCooperativeVectorMatrixNV - Convert a cooperative vector matrix from one layout and type to another

C Specification

To convert a matrix to another layout and type, call:

// Provided by VK_NV_cooperative_vector
void vkCmdConvertCooperativeVectorMatrixNV(
    VkCommandBuffer                             commandBuffer,
    uint32_t                                    infoCount,
    const VkConvertCooperativeVectorMatrixInfoNV* pInfos);

Parameters

  • commandBuffer is the command buffer into which the command will be recorded.

  • infoCount is the number of layout conversions to perform.

  • pInfos is a pointer to an array of VkConvertCooperativeVectorMatrixInfoNV structures containing information about the layout conversion.

Description

This command does the same conversions as vkConvertCooperativeVectorMatrixNV, but executes on the device. One conversion is performed for each of the infoCount elements of pInfos.

This command’s execution is synchronized using VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV.

Valid Usage
  • VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10083
    For each element of pInfo, srcData.deviceAddress must be a valid VkDeviceAddress

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10895
    For each element of pInfo, dstData.deviceAddress must be a valid VkDeviceAddress

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10084
    For each element of pInfo, srcData.deviceAddress must be 64 byte aligned

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10085
    For each element of pInfo, dstData.deviceAddress must be 64 byte aligned

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10086
    For each element of pInfo, srcSize must be large enough to contain the source matrix, based either on the standard matrix layout or based on the size filled out by vkConvertCooperativeVectorMatrixNV

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10087
    For each element of pInfo, the value pointed to by pDstSize must be large enough to contain the destination matrix, based either on the standard matrix layout or based on the size filled out by vkConvertCooperativeVectorMatrixNV

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-None-10088
    Memory accessed by the sources and destinations of all of the conversions must not overlap

Valid Usage (Implicit)
  • VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-parameter
    commandBuffer must be a valid VkCommandBuffer handle

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfos-parameter
    pInfos must be a valid pointer to an array of infoCount valid VkConvertCooperativeVectorMatrixInfoNV structures

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-recording
    commandBuffer must be in the recording state

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-cmdpool
    The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-renderpass
    This command must only be called outside of a render pass instance

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-videocoding
    This command must only be called outside of a video coding scope

  • VUID-vkCmdConvertCooperativeVectorMatrixNV-infoCount-arraylength
    infoCount must be greater than 0

Host Synchronization
  • Host access to commandBuffer must be externally synchronized

  • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties
Command Buffer Levels Render Pass Scope Video Coding Scope Supported Queue Types Command Type

Primary
Secondary

Outside

Outside

Graphics
Compute

Action

Conditional Rendering

vkCmdConvertCooperativeVectorMatrixNV is not affected by conditional rendering

Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.