# VkDeviceImageMemoryRequirements(3) Manual Page

## Name

VkDeviceImageMemoryRequirements - (None)

Loading… please wait.

## C Specification

The `VkDeviceImageMemoryRequirements` structure is defined as:

    // Provided by VK_VERSION_1_3
    typedef struct VkDeviceImageMemoryRequirements {
        VkStructureType             sType;
        const void*                 pNext;
        const VkImageCreateInfo*    pCreateInfo;
        VkImageAspectFlagBits       planeAspect;
    } VkDeviceImageMemoryRequirements;

or the equivalent

    // Provided by VK_KHR_maintenance4
    typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;

## Members

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

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

- `pCreateInfo` is a pointer to a VkImageCreateInfo structure containing parameters affecting creation of the image to query.

- `planeAspect` is a VkImageAspectFlagBits value specifying the aspect corresponding to the image plane to query. This parameter is ignored unless `pCreateInfo->tiling` is `VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT`, or `pCreateInfo->flags` has `VK_IMAGE_CREATE_DISJOINT_BIT` set.

## Description

Valid Usage

- VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06416
  The `pCreateInfo->pNext` chain must not contain a VkImageSwapchainCreateInfoKHR structure

- VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06776
  The `pCreateInfo->pNext` chain must not contain a VkImageDrmFormatModifierExplicitCreateInfoEXT structure

- VUID-VkDeviceImageMemoryRequirements-pNext-06996
  Applications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose `pNext` chain includes a VkExternalFormatANDROID structure with non-zero `externalFormat`

- VUID-VkDeviceImageMemoryRequirements-pNext-08962
  Applications also must not call vkGetDeviceImageMemoryRequirements with a VkImageCreateInfo whose `pNext` chain includes a VkExternalFormatQNX structure with non-zero `externalFormat`

- VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06417
  If `pCreateInfo->format` specifies a multi-planar format and `pCreateInfo->flags` has `VK_IMAGE_CREATE_DISJOINT_BIT` set then `planeAspect` must not be `VK_IMAGE_ASPECT_NONE_KHR`

- VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06419
  If `pCreateInfo->flags` has `VK_IMAGE_CREATE_DISJOINT_BIT` set and if the `pCreateInfo->tiling` is `VK_IMAGE_TILING_LINEAR` or `VK_IMAGE_TILING_OPTIMAL`, then `planeAspect` must be a single valid multi-planar aspect mask bit

- VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06420
  If `pCreateInfo->tiling` is `VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT`, then `planeAspect` must be a single valid memory plane for the image (that is, `aspectMask` must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::`drmFormatModifierPlaneCount` associated with the image’s `format` and VkImageDrmFormatModifierPropertiesEXT::`drmFormatModifier`)

Valid Usage (Implicit)

- VUID-VkDeviceImageMemoryRequirements-sType-sType
  `sType` must be `VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS`

- VUID-VkDeviceImageMemoryRequirements-pNext-pNext
  `pNext` must be `NULL`

- VUID-VkDeviceImageMemoryRequirements-pCreateInfo-parameter
  `pCreateInfo` must be a valid pointer to a valid VkImageCreateInfo structure

- VUID-VkDeviceImageMemoryRequirements-planeAspect-parameter
  If `planeAspect` is not `0`, `planeAspect` must be a valid VkImageAspectFlagBits value

## See Also

VK_KHR_maintenance4, VK_VERSION_1_3, VkImageAspectFlagBits, VkImageCreateInfo, VkStructureType, vkGetDeviceImageMemoryRequirements, vkGetDeviceImageMemoryRequirementsKHR, vkGetDeviceImageSparseMemoryRequirements, vkGetDeviceImageSparseMemoryRequirementsKHR

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