Structures

# VkCooperativeMatrixPropertiesNV

Structure specifying cooperative matrix properties

The `VkCooperativeMatrixPropertiesNV`

structure is defined as:

```
typedef struct VkCooperativeMatrixPropertiesNV {
VkStructureType sType;
void* pNext;
uint32_t MSize;
uint32_t NSize;
uint32_t KSize;
VkComponentTypeNV AType;
VkComponentTypeNV BType;
VkComponentTypeNV CType;
VkComponentTypeNV DType;
VkScopeNV scope;
} VkCooperativeMatrixPropertiesNV;
```

`sType`

is a VkStructureType value identifying this structure.`pNext`

is`NULL`

or a pointer to a structure extending this structure.`MSize`

is the number of rows in matrices A, C, and D.`KSize`

is the number of columns in matrix A and rows in matrix B.`NSize`

is the number of columns in matrices B, C, D.`AType`

is the component type of matrix A, of type VkComponentTypeNV.`BType`

is the component type of matrix B, of type VkComponentTypeNV.`CType`

is the component type of matrix C, of type VkComponentTypeNV.`DType`

is the component type of matrix D, of type VkComponentTypeNV.`scope`

is the scope of all the matrix types, of type VkScopeNV.

If some types are preferred over other types (e.g. for performance), they should appear earlier in the list enumerated by vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.

At least one entry in the list must have power of two values for all of
`MSize`

, `KSize`

, and `NSize`

.

### Valid Usage (Implicit)

#### VUID-VkCooperativeMatrixPropertiesNV-sType-sType

`sType`

must be `VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV`

#### VUID-VkCooperativeMatrixPropertiesNV-pNext-pNext

`pNext`

must be `NULL`