vkCmdConvertCooperativeVectorMatrixNV(3)

# vkCmdConvertCooperativeVectorMatrixNV(3) Manual Page

## 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 VK_QUEUE_COMPUTE_BIT, or VK_QUEUE_GRAPHICS_BIT operations

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

- VUID-vkCmdConvertCooperativeVectorMatrixNV-suspended
  This command must not be called between suspended render pass instances

- 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 | VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BIT | Action

Conditional Rendering

vkCmdConvertCooperativeVectorMatrixNV is not affected by conditional rendering

## See Also

VK_NV_cooperative_vector, VkCommandBuffer, VkConvertCooperativeVectorMatrixInfoNV

## 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.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0