# VkCooperativeVectorPropertiesNV(3) Manual Page

## Name

VkCooperativeVectorPropertiesNV - Structure specifying cooperative vector properties

Loading… please wait.

## C Specification

Each `VkCooperativeVectorPropertiesNV` structure describes a single supported combination of types for a matrix-vector multiply (or multiply-add) operation (`OpCooperativeVectorMatrixMulNV` or `OpCooperativeVectorMatrixMulAddNV`).

The `VkCooperativeVectorPropertiesNV` structure is defined as:

    // Provided by VK_NV_cooperative_vector
    typedef struct VkCooperativeVectorPropertiesNV {
        VkStructureType       sType;
        void*                 pNext;
        VkComponentTypeKHR    inputType;
        VkComponentTypeKHR    inputInterpretation;
        VkComponentTypeKHR    matrixInterpretation;
        VkComponentTypeKHR    biasInterpretation;
        VkComponentTypeKHR    resultType;
        VkBool32              transpose;
    } VkCooperativeVectorPropertiesNV;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `inputType` is the component type of vector `Input`, of type VkComponentTypeKHR.

- `inputInterpretation` is the value of `InputInterpretation`, of type VkComponentTypeKHR.

- `matrixInterpretation` is the value of `MatrixInterpretation`, of type VkComponentTypeKHR.

- `biasInterpretation` is the value of `BiasInterpretation`, of type VkComponentTypeKHR.

- `resultType` is the component type of `Result` `Type`, of type VkComponentTypeKHR.

- `transpose` is a boolean indicating whether opaque layout matrices with this combination of input and output types supports transposition.

## Description

`VK_COMPONENT_TYPE_SINT8_PACKED_NV` and `VK_COMPONENT_TYPE_UINT8_PACKED_NV` must not be used for members other than `inputInterpretation`.

The following combinations must be supported (each row is a required combination):

inputType | inputInterpretation | matrixInterpretation | biasInterpretation | resultType
--- | --- | --- | --- | ---
FLOAT16 | FLOAT16 | FLOAT16 | FLOAT16 | FLOAT16
UINT32 | SINT8_PACKED | SINT8 | SINT32 | SINT32
SINT8 | SINT8 | SINT8 | SINT32 | SINT32
FLOAT32 | SINT8 | SINT8 | SINT32 | SINT32
FLOAT16 | FLOAT_E4M3 | FLOAT_E4M3 | FLOAT16 | FLOAT16
FLOAT16 | FLOAT_E5M2 | FLOAT_E5M2 | FLOAT16 | FLOAT16

Valid Usage (Implicit)

- VUID-VkCooperativeVectorPropertiesNV-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV`

- VUID-VkCooperativeVectorPropertiesNV-pNext-pNext
  `pNext` must be `NULL`

- VUID-VkCooperativeVectorPropertiesNV-inputType-parameter
  `inputType` must be a valid VkComponentTypeKHR value

- VUID-VkCooperativeVectorPropertiesNV-inputInterpretation-parameter
  `inputInterpretation` must be a valid VkComponentTypeKHR value

- VUID-VkCooperativeVectorPropertiesNV-matrixInterpretation-parameter
  `matrixInterpretation` must be a valid VkComponentTypeKHR value

- VUID-VkCooperativeVectorPropertiesNV-biasInterpretation-parameter
  `biasInterpretation` must be a valid VkComponentTypeKHR value

- VUID-VkCooperativeVectorPropertiesNV-resultType-parameter
  `resultType` must be a valid VkComponentTypeKHR value

## See Also

VK_NV_cooperative_vector, VkBool32, VkComponentTypeKHR, VkStructureType, vkGetPhysicalDeviceCooperativeVectorPropertiesNV

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