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

  • physicalDevice is the physical device.

  • pCooperativeMatrixInfo is a pointer to a VkPhysicalDeviceCooperativeMatrixInfo2EXT structure describing which cooperative matrix properties to query.

  • pPropertyCount is a pointer to an integer related to the number of cooperative matrix properties available or queried.

  • pProperties is either NULL or 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:

For each of the above required parameters, at least one property must be returned for each of the following combinations of component types:

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

Return Codes

See Also

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.

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0