C Specification

The list of Linux DRM format modifiers compatible with a VkFormat can be obtained by adding a VkDrmFormatModifierPropertiesList2EXT structure to the pNext chain of VkFormatProperties2.

The VkDrmFormatModifierPropertiesList2EXT structure is defined as:

// Provided by VK_EXT_image_drm_format_modifier with VK_KHR_format_feature_flags2 or VK_VERSION_1_3
typedef struct VkDrmFormatModifierPropertiesList2EXT {
    VkStructureType                       sType;
    void*                                 pNext;
    uint32_t                              drmFormatModifierCount;
    VkDrmFormatModifierProperties2EXT*    pDrmFormatModifierProperties;
} VkDrmFormatModifierPropertiesList2EXT;

Members

  • sType is a VkStructureType value identifying this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • drmFormatModifierCount is an inout parameter related to the number of modifiers compatible with the format, as described below.

  • pDrmFormatModifierProperties is either NULL or a pointer to an array of VkDrmFormatModifierProperties2EXT structures.

Description

If pDrmFormatModifierProperties is NULL, the number of modifiers compatible with the queried format is returned in drmFormatModifierCount. Otherwise, the application must set drmFormatModifierCount to the length of the array pDrmFormatModifierProperties; the function will write at most drmFormatModifierCount elements to the array, and will return in drmFormatModifierCount the number of elements written.

Among the elements in array pDrmFormatModifierProperties, each returned drmFormatModifier must be unique.

Among the elements in array pDrmFormatModifierProperties, the bits reported in drmFormatModifierTilingFeatures must include the bits reported in the corresponding element of VkDrmFormatModifierPropertiesListEXT::pDrmFormatModifierProperties.

Valid Usage (Implicit)
  • VUID-VkDrmFormatModifierPropertiesList2EXT-sType-sType
    sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT

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-2024 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0