}
}
+static uint32_t
+get_allocation_count(VkObjectType objType)
+{
+ switch (objType) {
+ case VK_OBJECT_TYPE_BUFFER:
+ case VK_OBJECT_TYPE_IMAGE:
+ return 1;
+ default:
+ return 0;
+ }
+}
+
VkResult anv_GetObjectInfo(
VkDevice _device,
VkObjectType objType,
void* pData)
{
VkMemoryRequirements memory_requirements;
+ uint32_t count;
switch (infoType) {
case VK_OBJECT_INFO_TYPE_MEMORY_REQUIREMENTS:
fill_memory_requirements(objType, object, &memory_requirements);
memcpy(pData, &memory_requirements,
MIN2(*pDataSize, sizeof(memory_requirements)));
- *pDataSize = sizeof(memory_requirements);
return VK_SUCCESS;
case VK_OBJECT_INFO_TYPE_MEMORY_ALLOCATION_COUNT:
+ *pDataSize = sizeof(count);
+ if (pData == NULL)
+ return VK_SUCCESS;
+
+ count = get_allocation_count(objType);
+ return VK_SUCCESS;
+
default:
return VK_UNSUPPORTED;
}