Structures

VkCooperativeMatrixPropertiesKHR

Structure specifying cooperative matrix properties

The VkCooperativeMatrixPropertiesKHR structure is defined as:

typedef struct VkCooperativeMatrixPropertiesKHR {
    VkStructureType sType;
    void* pNext;
    uint32_t MSize;
    uint32_t NSize;
    uint32_t KSize;
    VkComponentTypeKHR AType;
    VkComponentTypeKHR BType;
    VkComponentTypeKHR CType;
    VkComponentTypeKHR ResultType;
    VkBool32 saturatingAccumulation;
    VkScopeKHR scope;
} VkCooperativeMatrixPropertiesKHR;
  • 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 Result.
  • KSize is the number of columns in matrix A and rows in matrix B.
  • NSize is the number of columns in matrices B, C, Result.
  • AType is the component type of matrix A, of type VkComponentTypeKHR.
  • BType is the component type of matrix B, of type VkComponentTypeKHR.
  • CType is the component type of matrix C, of type VkComponentTypeKHR.
  • ResultType is the component type of matrix Result, of type VkComponentTypeKHR.
  • saturatingAccumulation indicates whether the SaturatingAccumulation operand to OpCooperativeMatrixMulAddKHRmust be present or not. If it is VK_TRUE, the SaturatingAccumulation operand must be present. If it is VK_FALSE, the SaturatingAccumulation operand must not be present.
  • scope is the scope of all the matrix types, of type VkScopeKHR.

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

At least one entry in the list must have power of two values for all of MSize, KSize, and NSize.

scope must be VK_SCOPE_SUBGROUP_KHR.

Valid Usage (Implicit)

VUID-VkCooperativeMatrixPropertiesKHR-sType-sType

sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR