vulkan.h: V108 -- Static Types, Bug# 13919
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 099a6b2..7aebf42 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -969,41 +969,22 @@
}
};
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
- VkExtensionInfoType infoType,
- uint32_t extensionIndex,
- size_t *pDataSize,
- void *pData)
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
+ uint32_t extensionIndex,
+ VkExtensionProperties* pData)
{
- // This entrypoint is NOT going to init its own dispatch table since loader calls here early
- uint32_t *count;
+ /* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- if (pDataSize == NULL) {
- return VK_ERROR_INVALID_POINTER;
- }
+ if (extensionIndex >= MEM_TRACKER_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy((VkExtensionProperties *) pData, &mtExts[extensionIndex], sizeof(VkExtensionProperties));
- switch (infoType) {
- case VK_EXTENSION_INFO_TYPE_COUNT:
- *pDataSize = sizeof(uint32_t);
- if (pData == NULL) {
- return VK_SUCCESS;
- }
- count = (uint32_t *) pData;
- *count = MEM_TRACKER_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL) {
- return VK_SUCCESS;
- }
- if (extensionIndex >= MEM_TRACKER_LAYER_EXT_ARRAY_SIZE) {
- return VK_ERROR_INVALID_VALUE;
- }
- memcpy((VkExtensionProperties *) pData, &mtExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ return VK_SUCCESS;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(uint32_t* pCount)
+{
+ *pCount = MEM_TRACKER_LAYER_EXT_ARRAY_SIZE;
return VK_SUCCESS;
}
@@ -1030,41 +1011,23 @@
}
};
-VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
- VkPhysicalDevice physical_device,
- VkExtensionInfoType infoType,
- uint32_t extensionIndex,
- size_t *pDataSize,
- void *pData)
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
+ VkPhysicalDevice gpu,
+ uint32_t* pCount)
{
- uint32_t *count;
+ *pCount = MEM_TRACKER_LAYER_DEV_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
- if (pDataSize == NULL) {
- return VK_ERROR_INVALID_POINTER;
- }
-
- switch (infoType) {
- case VK_EXTENSION_INFO_TYPE_COUNT:
- *pDataSize = sizeof(uint32_t);
- if (pData == NULL) {
- return VK_SUCCESS;
- }
- count = (uint32_t *) pData;
- *count = MEM_TRACKER_LAYER_DEV_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL) {
- return VK_SUCCESS;
- }
- if (extensionIndex >= MEM_TRACKER_LAYER_DEV_EXT_ARRAY_SIZE) {
- return VK_ERROR_INVALID_VALUE;
- }
- memcpy((VkExtensionProperties *) pData, &mtDevExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- }
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
+ VkPhysicalDevice gpu,
+ uint32_t extensionIndex,
+ VkExtensionProperties* pProperties)
+{
+ if (extensionIndex >= MEM_TRACKER_LAYER_DEV_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &mtDevExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
@@ -1219,19 +1182,17 @@
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkGetObjectInfo(
- VkDevice device,
- VkObjectType objType,
- VkObject object,
- VkObjectInfoType infoType,
- size_t *pDataSize,
- void *pData)
+VK_LAYER_EXPORT VkResult VKAPI vkGetObjectMemoryRequirements(
+ VkDevice device,
+ VkObjectType objType,
+ VkObject object,
+ VkMemoryRequirements* pRequirements)
{
// TODO : What to track here?
// Could potentially save returned mem requirements and validate values passed into BindObjectMemory for this object
// From spec : The only objects that are guaranteed to have no external memory requirements are devices, queues,
// command buffers, shaders and memory objects.
- VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->GetObjectInfo(device, objType, object, infoType, pDataSize, pData);
+ VkResult result = get_dispatch_table(mem_tracker_device_table_map, device)->GetObjectMemoryRequirements(device, objType, object, pRequirements);
return result;
}
@@ -2207,8 +2168,8 @@
return (void*) vkUnmapMemory;
if (!strcmp(funcName, "vkDestroyObject"))
return (void*) vkDestroyObject;
- if (!strcmp(funcName, "vkGetObjectInfo"))
- return (void*) vkGetObjectInfo;
+ if (!strcmp(funcName, "vkGetObjectMemoryRequirements"))
+ return (void*) vkGetObjectMemoryRequirements;
if (!strcmp(funcName, "vkBindObjectMemory"))
return (void*) vkBindObjectMemory;
if (!strcmp(funcName, "vkQueueBindSparseBufferMemory"))
@@ -2309,6 +2270,10 @@
return (void*) vkCmdResetQueryPool;
if (!strcmp(funcName, "vkGetDeviceQueue"))
return (void*) vkGetDeviceQueue;
+ if (!strcmp(funcName, "vkGetGlobalExtensionCount"))
+ return (void*) vkGetGlobalExtensionCount;
+ if (!strcmp(funcName, "vkGetGlobalExtensionProperties"))
+ return (void*) vkGetGlobalExtensionProperties;
VkLayerDispatchTable *pDisp = get_dispatch_table(mem_tracker_device_table_map, dev);
if (deviceExtMap.size() == 0 || deviceExtMap[pDisp].wsi_lunarg_enabled)
@@ -2349,6 +2314,10 @@
return (void*) vkCreateInstance;
if (!strcmp(funcName, "vkCreateDevice"))
return (void*) vkCreateDevice;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionCount"))
+ return (void*) vkGetGlobalExtensionCount;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionProperties"))
+ return (void*) vkGetGlobalExtensionProperties;
layer_data *my_data = get_my_data_ptr(get_dispatch_key(instance), layer_data_map);
fptr = debug_report_get_instance_proc_addr(my_data->report_data, funcName);