From: Kristian Høgsberg Date: Mon, 18 May 2015 02:25:28 +0000 (-0700) Subject: vk: Implement allocation count query X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b7fac7a7d1f07ee36029084cc29b83b5a52f726c;p=mesa.git vk: Implement allocation count query --- diff --git a/src/vulkan/device.c b/src/vulkan/device.c index c76a8f73c4e..6faa0b04eb4 100644 --- a/src/vulkan/device.c +++ b/src/vulkan/device.c @@ -999,6 +999,18 @@ fill_memory_requirements( } } +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, @@ -1008,6 +1020,7 @@ VkResult anv_GetObjectInfo( void* pData) { VkMemoryRequirements memory_requirements; + uint32_t count; switch (infoType) { case VK_OBJECT_INFO_TYPE_MEMORY_REQUIREMENTS: @@ -1018,10 +1031,16 @@ VkResult anv_GetObjectInfo( 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; }