vkGetPhysicalDeviceCooperativeMatrixProperties2EXT
To enumerate the supported cooperative matrix types and operations, call:
VkResult vkGetPhysicalDeviceCooperativeMatrixProperties2EXT(
VkPhysicalDevice physicalDevice,
const VkPhysicalDeviceCooperativeMatrixInfo2EXT* pCooperativeMatrixInfo,
uint32_t* pPropertyCount,
VkCooperativeMatrixProperties2EXT* pProperties);
pub fn get_physical_device_cooperative_matrix_properties2_ext(
physical_device: vk::PhysicalDevice,
p_cooperative_matrix_info: *const vk::PhysicalDeviceCooperativeMatrixInfo2EXT,
p_property_count: *mut u32,
p_properties: *mut vk::CooperativeMatrixProperties2EXT,
) -> vk::Result;
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.
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:
scopeequalsVK_SCOPE_SUBGROUP_KHRandsubgroupSizeis0scopeequalsVK_SCOPE_SUBGROUP_KHRandsubgroupSizeis equal to VkPhysicalDeviceSubgroupProperties::subgroupSize- if the [VkPhysicalDeviceCooperativeMatrix2FeaturesNV::
cooperativeMatrixWorkgroupScope](xref::features-cooperativeMatrixWorkgroupScope) feature is supported:scopeequalsVK_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:
ATypeandBTypeareVK_COMPONENT_TYPE_FLOAT16_KHR,CTypeandResultTypeare either bothVK_COMPONENT_TYPE_FLOAT16_KHRor bothVK_COMPONENT_TYPE_FLOAT32_KHRATypeandBTypeareVK_COMPONENT_TYPE_UINT8_KHR,CTypeandResultTypeare either bothVK_COMPONENT_TYPE_UINT32_KHRor bothVK_COMPONENT_TYPE_SINT32_KHRATypeandBTypeareVK_COMPONENT_TYPE_SINT8_KHR,CTypeandResultTypeareVK_COMPONENT_TYPE_SINT32_KHR
Valid Usage
VUID-vkGetPhysicalDeviceCooperativeMatrixProperties2EXT-cooperativeMatrixProperties2-13371
The
cooperativeMatrixProperties2
feature must be supported by physicalDevice
Valid Usage (Implicit)
VUID-vkGetPhysicalDeviceCooperativeMatrixProperties2EXT-physicalDevice-parameter
physicalDevice must be a valid VkPhysicalDevice handle
VUID-vkGetPhysicalDeviceCooperativeMatrixProperties2EXT-pCooperativeMatrixInfo-parameter
pCooperativeMatrixInfo must be a valid pointer to a valid VkPhysicalDeviceCooperativeMatrixInfo2EXT structure
VUID-vkGetPhysicalDeviceCooperativeMatrixProperties2EXT-pPropertyCount-parameter
pPropertyCount must be a valid pointer to a uint32_t value
VUID-vkGetPhysicalDeviceCooperativeMatrixProperties2EXT-pProperties-parameter
If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixProperties2EXT structures