# vkCmdConvertCooperativeVectorMatrixNV(3) Manual Page

## Name

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

Loading… please wait.

## 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` and `dstData`::`deviceAddress` must be valid device addresses

- 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

## 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-2025 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0