C Specification
To enumerate the supported cooperative matrix types and operations, call:
// Provided by VK_EXT_cooperative_matrix_maintenance1
VkResult vkGetPhysicalDeviceCooperativeMatrixProperties2EXT(
VkPhysicalDevice physicalDevice,
const VkPhysicalDeviceCooperativeMatrixInfo2EXT* pCooperativeMatrixInfo,
uint32_t* pPropertyCount,
VkCooperativeMatrixProperties2EXT* pProperties);
Parameters
-
physicalDeviceis the physical device. -
pCooperativeMatrixInfois a pointer to a VkPhysicalDeviceCooperativeMatrixInfo2EXT structure describing which cooperative matrix properties to query. -
pPropertyCountis a pointer to an integer related to the number of cooperative matrix properties available or queried. -
pPropertiesis eitherNULLor a pointer to an array of VkCooperativeMatrixProperties2EXT structures.
Description
If pProperties is NULL, then the number of cooperative matrix
properties available is returned in pPropertyCount.
Otherwise, pPropertyCount must point to a variable set by the
application to the number of elements in the pProperties array, and on
return the variable is overwritten with the number of structures actually
written to pProperties.
If pPropertyCount is less than the number of cooperative matrix
properties available, at most pPropertyCount structures will be
written, and VK_INCOMPLETE will be returned instead of
VK_SUCCESS, to indicate that not all the available cooperative matrix
properties were returned.
The implementation must not return pPropertyCount equal to 0 for
the following parameters, when
VkPhysicalDeviceCooperativeMatrixInfo2EXT::flags does not
contain VK_COOPERATIVE_MATRIX_SATURATING_ACCUMULATION_BIT_EXT:
-
scopeequals VK_SCOPE_SUBGROUP_KHR andsubgroupSizeis0 -
scopeequals VK_SCOPE_SUBGROUP_KHR andsubgroupSizeis equal to VkPhysicalDeviceSubgroupProperties::subgroupSize -
if the VkPhysicalDeviceCooperativeMatrix2FeaturesNV::
cooperativeMatrixWorkgroupScopefeature is supported:scopeequals VK_SCOPE_WORKGROUP_KHR,invocationsis any power of two between VkPhysicalDeviceSubgroupProperties::subgroupSizeandcooperativeMatrixWorkgroupScopeMaxWorkgroupSizeinclusive, andsubgroupSizeis either0or equal to VkPhysicalDeviceSubgroupProperties::subgroupSize
For each of the above required parameters, at least one property must be returned for each of the following combinations of component types:
-
ATypeandBTypeare VK_COMPONENT_TYPE_FLOAT16_KHR,CTypeandResultTypeare either both VK_COMPONENT_TYPE_FLOAT16_KHR or both VK_COMPONENT_TYPE_FLOAT32_KHR -
ATypeandBTypeare VK_COMPONENT_TYPE_UINT8_KHR,CTypeandResultTypeare either both VK_COMPONENT_TYPE_UINT32_KHR or both VK_COMPONENT_TYPE_SINT32_KHR -
ATypeandBTypeare VK_COMPONENT_TYPE_SINT8_KHR,CTypeandResultTypeare VK_COMPONENT_TYPE_SINT32_KHR
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.