VkPhysicalDeviceImageDrmFormatModifierInfoEXT(3)

# VkPhysicalDeviceImageDrmFormatModifierInfoEXT(3) Manual Page

## Name

VkPhysicalDeviceImageDrmFormatModifierInfoEXT - Structure specifying a DRM format modifier as image creation parameter

## C Specification

To query the image capabilities that are compatible with a Linux DRM format modifier, set VkPhysicalDeviceImageFormatInfo2::`tiling` to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and add a VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure to the `pNext` chain of VkPhysicalDeviceImageFormatInfo2.

The VkPhysicalDeviceImageDrmFormatModifierInfoEXT structure is defined as:

    // Provided by VK_EXT_image_drm_format_modifier
    typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
        VkStructureType    sType;
        const void*        pNext;
        uint64_t           drmFormatModifier;
        VkSharingMode      sharingMode;
        uint32_t           queueFamilyIndexCount;
        const uint32_t*    pQueueFamilyIndices;
    } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;

## Members

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

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

- `drmFormatModifier` is the image’s Linux DRM format modifier, corresponding to VkImageDrmFormatModifierExplicitCreateInfoEXT::`drmFormatModifier` or to VkImageDrmFormatModifierListCreateInfoEXT::`pDrmFormatModifiers`.

- `sharingMode` specifies how the image will be accessed by multiple queue families.

- `queueFamilyIndexCount` is the number of entries in the `pQueueFamilyIndices` array.

- `pQueueFamilyIndices` is a pointer to an array of queue families that will access the image. It is ignored if `sharingMode` is not VK_SHARING_MODE_CONCURRENT.

## Description

If the `drmFormatModifier` is incompatible with the parameters specified in VkPhysicalDeviceImageFormatInfo2 and its `pNext` chain, then vkGetPhysicalDeviceImageFormatProperties2 returns VK_ERROR_FORMAT_NOT_SUPPORTED. The implementation must support the query of any `drmFormatModifier`, including unknown and invalid modifier values.

Valid Usage

- VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314
  If `sharingMode` is VK_SHARING_MODE_CONCURRENT, then `pQueueFamilyIndices` must be a valid pointer to an array of `queueFamilyIndexCount` `uint32_t` values

- VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-maintenance11-13351
  If the `maintenance11` feature is supported and `sharingMode` is VK_SHARING_MODE_CONCURRENT, then `queueFamilyIndexCount` must be greater than `0`

- VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315
  If the `maintenance11` feature is not supported and `sharingMode` is VK_SHARING_MODE_CONCURRENT, then `queueFamilyIndexCount` must be greater than `1`

- VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316
  If `sharingMode` is VK_SHARING_MODE_CONCURRENT, each element of `pQueueFamilyIndices` must be unique and must be less than the `pQueueFamilyPropertyCount` returned by vkGetPhysicalDeviceQueueFamilyProperties2 for the `physicalDevice` that was used to create `device`

Valid Usage (Implicit)

- VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sType
  `sType` must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT

- VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-parameter
  `sharingMode` must be a valid VkSharingMode value

Structure Chaining

Extends the structure

  - VkPhysicalDeviceImageFormatInfo2

## See Also

VK_EXT_image_drm_format_modifier, VkSharingMode, 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-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0