VkDeviceImageMemoryRequirements(3)

# 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 the type of 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-VkDeviceImageMemoryRequirementsKHR-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-VkDeviceImageMemoryRequirementsKHR-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-VkDeviceImageMemoryRequirementsKHR-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 format plane for the image (that is, for a two-plane image `planeAspect` must be `VK_IMAGE_ASPECT_PLANE_0_BIT` or `VK_IMAGE_ASPECT_PLANE_1_BIT`, and for a three-plane image `planeAspect` must be `VK_IMAGE_ASPECT_PLANE_0_BIT`, `VK_IMAGE_ASPECT_PLANE_1_BIT` or `VK_IMAGE_ASPECT_PLANE_2_BIT`)

- VUID-VkDeviceImageMemoryRequirementsKHR-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-2022 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0