C Specification

The VkDeviceImageMemoryRequirementsKHR structure is defined as:

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


  • 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::flags has VK_IMAGE_CREATE_DISJOINT_BIT or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT set.


Valid Usage
  • VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416
    The pCreateInfo::pNext chain must not contain a VkImageSwapchainCreateInfoKHR structure

  • VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417
    If pCreateInfo::flags has VK_IMAGE_CREATE_DISJOINT_BIT set then planAspect must not be zero

  • VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06418
    If pCreateInfo::flags has VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT set then planAspect must not be zero

  • 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::flags has VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT set and the 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-VkDeviceImageMemoryRequirementsKHR-sType-sType

  • VUID-VkDeviceImageMemoryRequirementsKHR-pNext-pNext
    pNext must be NULL

  • VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-parameter
    pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure

  • VUID-VkDeviceImageMemoryRequirementsKHR-planeAspect-parameter
    planeAspect must be a valid VkImageAspectFlagBits value

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

SPDX-License-Identifier: CC-BY-4.0