# VkPhysicalDeviceCooperativeMatrix2FeaturesNV(3) Manual Page

## Name

VkPhysicalDeviceCooperativeMatrix2FeaturesNV - Structure describing cooperative matrix features that can be supported by an implementation

Loading… please wait.

## C Specification

The `VkPhysicalDeviceCooperativeMatrix2FeaturesNV` structure is defined as:

    // Provided by VK_NV_cooperative_matrix2
    typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
        VkStructureType    sType;
        void*              pNext;
        VkBool32           cooperativeMatrixWorkgroupScope;
        VkBool32           cooperativeMatrixFlexibleDimensions;
        VkBool32           cooperativeMatrixReductions;
        VkBool32           cooperativeMatrixConversions;
        VkBool32           cooperativeMatrixPerElementOperations;
        VkBool32           cooperativeMatrixTensorAddressing;
        VkBool32           cooperativeMatrixBlockLoads;
    } VkPhysicalDeviceCooperativeMatrix2FeaturesNV;

## Members

This structure describes the following features:

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `cooperativeMatrixWorkgroupScope` indicates that the implementation supports workgroup scope cooperative matrices.

- `cooperativeMatrixFlexibleDimensions` indicates that the implementation supports cooperative matrix sizes that are a multiple of the granularity advertised in VkCooperativeMatrixFlexibleDimensionsPropertiesNV.

- `cooperativeMatrixReductions` indicates that the implementation supports the `CooperativeMatrixReductionsNV` SPIR-V capability. This allows performing (row, column, 2x2, or all element) reductions on matrices.

- `cooperativeMatrixConversions` indicates that the implementation supports the `CooperativeMatrixConversionsNV` SPIR-V capability. This allows converting accumulator matrices to A or B matrices.

- `cooperativeMatrixPerElementOperations` indicates that the implementation supports the `CooperativeMatrixPerElementOperationsNV` SPIR-V capability. This allows performing element-wise operations on matrix elements using a callback function.

- `cooperativeMatrixTensorAddressing` indicates that the implementation supports the `TensorAddressingNV` and `CooperativeMatrixTensorAddressingNV` SPIR-V capabilities. This allows using tensor layout and tensor view types for matrix loads and stores.

- `cooperativeMatrixBlockLoads` indicates that the implementation supports the `CooperativeMatrixBlockLoadsNV` SPIR-V capability. This allows setting block size for loads and using a callback function to decode block elements.

## Description

If the `VkPhysicalDeviceCooperativeMatrix2FeaturesNV` structure is included in the `pNext` chain of the VkPhysicalDeviceFeatures2 structure passed to vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. `VkPhysicalDeviceCooperativeMatrix2FeaturesNV` can also be used in the `pNext` chain of VkDeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

- VUID-VkPhysicalDeviceCooperativeMatrix2FeaturesNV-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV`

## See Also

VK_NV_cooperative_matrix2, VkBool32, VkStructureType

## 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

Copyright 2014-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0