跳转至

vkGetImageMemoryRequirements

函数原型

1
2
3
4
void vkGetImageMemoryRequirements(
    VkDevice                                    device,
    VkImage                                     image,
    VkMemoryRequirements*                       pMemoryRequirements);

描述

查询图像资源的内存需求。

参数

  • device : 拥有该image的逻辑设备。
  • image : 想要查询的image。
  • pMemoryRequirements : VkMemoryRequirements结构体指针,返回了图像对象的内存需求。

补充

VkMemoryRequirements 结构体定义:

1
2
3
4
5
typedef struct VkMemoryRequirements {
    VkDeviceSize    size;               //资源所需的内存大小
    VkDeviceSize    alignment;      //资源分配时的对齐大小
    uint32_t        memoryTypeBits; //位掩码,标记资源支持的每个内存类型位。
} VkMemoryRequirements;

返回值

代码示例

1
2
3
4
5
6
7
8
/* Create image */
VkImageCreateInfo image_info = ...
VkImage image;
vkCreateImage(device, &image_info, NULL, &image);

/* Get image memory requirement */
VkMemoryRequirements mem_reqs;
vkGetImageMemoryRequirements(device, image, &mem_reqs);