VkConvertCooperativeVectorMatrixInfoNV(3)

Name

VkConvertCooperativeVectorMatrixInfoNV - Structure specifying a request to convert the layout and type of a cooperative vector matrix

C Specification

Each VkConvertCooperativeVectorMatrixInfoNV structure describes a request to convert the layout and type of a cooperative vector matrix.

The VkConvertCooperativeVectorMatrixInfoNV structure is defined as:

// Provided by VK_NV_cooperative_vector
typedef struct VkConvertCooperativeVectorMatrixInfoNV {
    VkStructureType                      sType;
    const void*                          pNext;
    size_t                               srcSize;
    VkDeviceOrHostAddressConstKHR        srcData;
    size_t*                              pDstSize;
    VkDeviceOrHostAddressKHR             dstData;
    VkComponentTypeKHR                   srcComponentType;
    VkComponentTypeKHR                   dstComponentType;
    uint32_t                             numRows;
    uint32_t                             numColumns;
    VkCooperativeVectorMatrixLayoutNV    srcLayout;
    size_t                               srcStride;
    VkCooperativeVectorMatrixLayoutNV    dstLayout;
    size_t                               dstStride;
} VkConvertCooperativeVectorMatrixInfoNV;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • srcSize is the length in bytes of srcData.

  • srcData is either NULL or a pointer to the source data in the source layout.

  • pDstSize is a pointer to an integer related to the number of bytes required or requested to convert.

  • dstData is either NULL or a pointer to the destination data in the destination layout.

  • srcComponentType is the type of a source matrix element.

  • dstComponentType is the type of a destination matrix element.

  • numRows is the number of rows in the matrix.

  • numColumns is the number of columns in the matrix.

  • srcLayout is the layout of the source matrix.

  • srcStride is the number of bytes between a consecutive row or column (depending on srcLayout) of the source matrix, if it is row-major or column-major.

  • dstLayout is the layout the matrix is converted to.

  • dstStride is the number of bytes between a consecutive row or column (depending on dstLayout) of destination matrix, if it is row-major or column-major.

Description

When called from vkCmdConvertCooperativeVectorMatrixNV, the deviceAddress members of srcData and dstData are used. When called from vkConvertCooperativeVectorMatrixNV, the hostAddress members of srcData and dstData are used.

For each of the source and destination matrix, if the layout is not either VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV or VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV, then the corresponding stride parameter is ignored.

The size of the destination is only a function of the destination layout information, and does not depend on the source layout information.

Conversion can be used to convert between VK_COMPONENT_TYPE_FLOAT32_KHR or VK_COMPONENT_TYPE_FLOAT16_KHR and any supported lower-precision floating-point type. In this case, the conversion uses round-to-nearest-even rounding.

Valid Usage
Valid Usage (Implicit)
  • VUID-VkConvertCooperativeVectorMatrixInfoNV-sType-sType
    sType must be VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV

  • VUID-VkConvertCooperativeVectorMatrixInfoNV-pNext-pNext
    pNext must be NULL

  • VUID-VkConvertCooperativeVectorMatrixInfoNV-srcData-parameter
    srcData must be a valid VkDeviceOrHostAddressConstKHR union

  • VUID-VkConvertCooperativeVectorMatrixInfoNV-pDstSize-parameter
    pDstSize must be a valid pointer to a size_t value

  • VUID-VkConvertCooperativeVectorMatrixInfoNV-dstData-parameter
    dstData must be a valid VkDeviceOrHostAddressKHR union

  • VUID-VkConvertCooperativeVectorMatrixInfoNV-srcComponentType-parameter
    srcComponentType must be a valid VkComponentTypeKHR value

  • VUID-VkConvertCooperativeVectorMatrixInfoNV-dstComponentType-parameter
    dstComponentType must be a valid VkComponentTypeKHR value

  • VUID-VkConvertCooperativeVectorMatrixInfoNV-srcLayout-parameter
    srcLayout must be a valid VkCooperativeVectorMatrixLayoutNV value

  • VUID-VkConvertCooperativeVectorMatrixInfoNV-dstLayout-parameter
    dstLayout must be a valid VkCooperativeVectorMatrixLayoutNV value

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.