C Specification
The VkCooperativeMatrixFlexibleDimensionsPropertiesNV structure is
defined as:
// Provided by VK_NV_cooperative_matrix2
typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
    VkStructureType       sType;
    void*                 pNext;
    uint32_t              MGranularity;
    uint32_t              NGranularity;
    uint32_t              KGranularity;
    VkComponentTypeKHR    AType;
    VkComponentTypeKHR    BType;
    VkComponentTypeKHR    CType;
    VkComponentTypeKHR    ResultType;
    VkBool32              saturatingAccumulation;
    VkScopeKHR            scope;
    uint32_t              workgroupInvocations;
} VkCooperativeMatrixFlexibleDimensionsPropertiesNV;Members
- 
sTypeis a VkStructureType value identifying this structure.
- 
pNextisNULLor a pointer to a structure extending this structure.
- 
MGranularityis the granularity of the number of rows in matricesA,C, andResult. The rows must be an integer multiple of this value.
- 
KGranularityis the granularity of columns in matrixAand rows in matrixB. The columns/rows must be an integer multiple of this value.
- 
NGranularityis the granularity of columns in matricesB,C,Result. The columns must be an integer multiple of this value.
- 
ATypeis the component type of matrixA, of type VkComponentTypeKHR.
- 
BTypeis the component type of matrixB, of type VkComponentTypeKHR.
- 
CTypeis the component type of matrixC, of type VkComponentTypeKHR.
- 
ResultTypeis the component type of matrixResult, of type VkComponentTypeKHR.
- 
saturatingAccumulationindicates whether theSaturatingAccumulationoperand toOpCooperativeMatrixMulAddKHRmust be present or not. If it isVK_TRUE, theSaturatingAccumulationoperand must be present. If it isVK_FALSE, theSaturatingAccumulationoperand must not be present.
- 
scopeis the scope of all the matrix types, of type VkScopeKHR.
- 
workgroupInvocationsis the number of invocations in the local workgroup when this combination of values is supported.
Description
Rather than explicitly enumerating a list of supported sizes,
VkCooperativeMatrixFlexibleDimensionsPropertiesNV advertises size
granularities, where the matrix must be a multiple of the advertised size.
The M and K granularities apply to rows and columns of matrices with
Use of MatrixA, K, and N apply to rows and columns of matrices
with Use of MatrixB, M, and N apply to rows and columns of
matrices with Use of MatrixAccumulator.
For a given type combination, if multiple workgroup sizes are supported
there may be multiple
VkCooperativeMatrixFlexibleDimensionsPropertiesNV structures with
different granularities.
All granularity values must be powers of two.
| Note | Different A/B types may require different granularities but share the same accumulator type. In such a case, the supported granularity for a matrix with the accumulator type would be the smallest advertised granularity. | 
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.