vulkan.h: V108 -- Static Types, Bug# 13919
diff --git a/layers/basic.cpp b/layers/basic.cpp
index 59ec08d..990f669 100644
--- a/layers/basic.cpp
+++ b/layers/basic.cpp
@@ -61,38 +61,23 @@
}
};
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
- VkExtensionInfoType infoType,
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+ VkExtensionProperties* pData)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
uint32_t *count;
- if (pDataSize == NULL)
- return VK_ERROR_INVALID_POINTER;
+ if (extensionIndex >= BASIC_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy((VkExtensionProperties *) pData, &basicExts[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 = BASIC_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= BASIC_LAYER_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &basicExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ return VK_SUCCESS;
+}
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(uint32_t* pCount)
+{
+ *pCount = BASIC_LAYER_EXT_ARRAY_SIZE;
return VK_SUCCESS;
}
@@ -181,8 +166,10 @@
return (void *) vkDestroyInstance;
if (!strcmp("vkEnumeratePhysicalDevices", pName))
return (void*) vkEnumeratePhysicalDevices;
- if (!strcmp("vkGetGlobalExtensionInfo", pName))
- return (void*) vkGetGlobalExtensionInfo;
+ if (!strcmp("vkGetGlobalExtensionCount", pName))
+ return (void*) vkGetGlobalExtensionCount;
+ if (!strcmp("vkGetGlobalExtensionProperties", pName))
+ return (void*) vkGetGlobalExtensionProperties;
if (!strcmp("vkCreateDevice", pName))
return (void *) vkCreateDevice;
else
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 3d6cccf..94c471f 100644
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1641,41 +1641,22 @@
};
//TODO add DEBUG_MARKER to device extension list
-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 = DRAW_STATE_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 = DRAW_STATE_LAYER_DEV_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL) {
- return VK_SUCCESS;
- }
- if (extensionIndex >= DRAW_STATE_LAYER_DEV_EXT_ARRAY_SIZE) {
- return VK_ERROR_INVALID_VALUE;
- }
- memcpy((VkExtensionProperties *) pData, &dsDevExts[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 >= DRAW_STATE_LAYER_DEV_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &dsDevExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
@@ -1695,38 +1676,22 @@
"Sample layer: DrawState",
}
};
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(
+ uint32_t* pCount)
+{
+ *pCount = DRAW_STATE_LAYER_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
- VkExtensionInfoType infoType,
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+ VkExtensionProperties* pProperties)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- uint32_t *count;
+ if (extensionIndex >= DRAW_STATE_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
- 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 = DRAW_STATE_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= DRAW_STATE_LAYER_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &dsExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ memcpy(pProperties, &dsExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
@@ -2931,6 +2896,10 @@
return (void*) vkEndCommandBuffer;
if (!strcmp(funcName, "vkResetCommandBuffer"))
return (void*) vkResetCommandBuffer;
+ if (!strcmp(funcName, "vkGetGlobalExtensionCount"))
+ return (void*) vkGetGlobalExtensionCount;
+ if (!strcmp(funcName, "vkGetGlobalExtensionProperties"))
+ return (void*) vkGetGlobalExtensionProperties;
if (!strcmp(funcName, "vkCmdBindPipeline"))
return (void*) vkCmdBindPipeline;
if (!strcmp(funcName, "vkCmdBindDynamicStateObject"))
@@ -3044,6 +3013,10 @@
return (void *) vkDestroyInstance;
if (!strcmp(funcName, "vkCreateDevice"))
return (void*) vkCreateDevice;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionCount"))
+ return (void*) vkGetPhysicalDeviceExtensionCount;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionProperties"))
+ return (void*) vkGetPhysicalDeviceExtensionProperties;
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);
diff --git a/layers/image.cpp b/layers/image.cpp
index b1fc81f..bde0a95 100644
--- a/layers/image.cpp
+++ b/layers/image.cpp
@@ -215,78 +215,44 @@
"Sample layer: Image",
}
};
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(
+ uint32_t* pCount)
+{
+ *pCount = IMAGE_LAYER_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
- VkExtensionInfoType infoType,
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+ VkExtensionProperties* pProperties)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- uint32_t *count = NULL;
- 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 = IMAGE_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= IMAGE_LAYER_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &pcExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ if (extensionIndex >= IMAGE_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &pcExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
-VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
VkPhysicalDevice gpu,
- VkExtensionInfoType infoType,
+ uint32_t* pCount)
+{
+ *pCount = IMAGE_LAYER_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
+ VkPhysicalDevice gpu,
uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+ VkExtensionProperties* pProperties)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- uint32_t *count = NULL;
- 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 = IMAGE_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= IMAGE_LAYER_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &pcExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ if (extensionIndex >= IMAGE_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &pcExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
@@ -426,6 +392,10 @@
return (void*) vkCreateImage;
if (!strcmp(funcName, "vkCreateRenderPass"))
return (void*) vkCreateRenderPass;
+ if (!strcmp(funcName, "vkGetGlobalExtensionProperties"))
+ return (void*) vkGetGlobalExtensionProperties;
+ if (!strcmp(funcName, "vkGetGlobalExtensionCount"))
+ return (void*) vkGetGlobalExtensionCount;
{
if (get_dispatch_table(image_device_table_map, device)->GetDeviceProcAddr == NULL)
@@ -452,10 +422,10 @@
return (void *) vkDestroyInstance;
if (!strcmp(funcName, "vkCreateDevice"))
return (void*) vkCreateDevice;
- if (!strcmp(funcName, "vkGetGlobalExtensionInfo"))
- return (void*) vkGetGlobalExtensionInfo;
- if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionInfo"))
- return (void*) vkGetPhysicalDeviceExtensionInfo;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionProperties"))
+ return (void*) vkGetPhysicalDeviceExtensionProperties;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionCount"))
+ return (void*) vkGetPhysicalDeviceExtensionCount;
layer_data *data = get_my_data_ptr(get_dispatch_key(instance), layer_data_map);
void* fptr = debug_report_get_instance_proc_addr(data->report_data, funcName);
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);
diff --git a/layers/multi.cpp b/layers/multi.cpp
index fc0bb38..5f86b88 100644
--- a/layers/multi.cpp
+++ b/layers/multi.cpp
@@ -199,8 +199,10 @@
}
if (!strcmp("vkDestroyInstance", pName))
return (void *) multi1DestroyInstance;
- if (!strcmp("GetGlobalExtensionInfo", pName))
- return (void*) vkGetGlobalExtensionInfo;
+ if (!strcmp("GetGlobalExtensionProperties", pName))
+ return (void*) vkGetGlobalExtensionProperties;
+ if (!strcmp("GetGlobalExtensionCount", pName))
+ return (void*) vkGetGlobalExtensionCount;
else {
VkLayerInstanceDispatchTable **ppDisp = (VkLayerInstanceDispatchTable **) inst;
VkLayerInstanceDispatchTable* pTable = instance_dispatch_table1(inst);
@@ -376,8 +378,10 @@
return (void *) multi2DestroyInstance;
if (!strcmp("vkCreateDevice", pName))
return (void *) multi2CreateDevice;
- else if (!strcmp("GetGlobalExtensionInfo", pName))
- return (void*) vkGetGlobalExtensionInfo;
+ else if (!strcmp("GetGlobalExtensionProperties", pName))
+ return (void*) vkGetGlobalExtensionProperties;
+ else if (!strcmp("GetGlobalExtensionCount", pName))
+ return (void*) vkGetGlobalExtensionCount;
else {
VkLayerInstanceDispatchTable **ppDisp = (VkLayerInstanceDispatchTable **) inst;
VkLayerInstanceDispatchTable* pTable = instance_dispatch_table2(inst);
@@ -414,37 +418,22 @@
}
};
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
- VkExtensionInfoType infoType,
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(
+ uint32_t* pCount)
+{
+ *pCount = MULTI_LAYER_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+ VkExtensionProperties* pProperties)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- uint32_t *count;
+ if (extensionIndex >= MULTI_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
- 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 = MULTI_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= MULTI_LAYER_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &multiExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ memcpy(pProperties, &multiExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
diff --git a/layers/object_track.h b/layers/object_track.h
index 428bee3..c52862f 100644
--- a/layers/object_track.h
+++ b/layers/object_track.h
@@ -350,13 +350,13 @@
static void
setGpuQueueInfoState(
- size_t *pDataSize,
- void *pData)
+ uint32_t count,
+ void *pData)
{
- queueCount = ((uint32_t)*pDataSize / sizeof(VkPhysicalDeviceQueueProperties));
- queueInfo = (VkPhysicalDeviceQueueProperties*)realloc((void*)queueInfo, *pDataSize);
+ queueCount = count;
+ queueInfo = (VkPhysicalDeviceQueueProperties*)realloc((void*)queueInfo, count * sizeof(VkPhysicalDeviceQueueProperties));
if (queueInfo != NULL) {
- memcpy(queueInfo, pData, *pDataSize);
+ memcpy(queueInfo, pData, count * sizeof(VkPhysicalDeviceQueueProperties));
}
}
@@ -519,20 +519,16 @@
}
VkResult
-explicit_GetPhysicalDeviceInfo(
- VkPhysicalDevice gpu,
- VkPhysicalDeviceInfoType infoType,
- size_t *pDataSize,
- void *pData)
+explicit_GetPhysicalDeviceQueueProperties(
+ VkPhysicalDevice gpu,
+ uint32_t count,
+ VkPhysicalDeviceQueueProperties* pProperties)
{
- VkResult result = get_dispatch_table(ObjectTracker_instance_table_map, gpu)->GetPhysicalDeviceInfo(gpu, infoType, pDataSize, pData);
- if (infoType == VK_PHYSICAL_DEVICE_INFO_TYPE_QUEUE_PROPERTIES) {
- if (pData != NULL) {
- loader_platform_thread_lock_mutex(&objLock);
- setGpuQueueInfoState(pDataSize, pData);
- loader_platform_thread_unlock_mutex(&objLock);
- }
- }
+ VkResult result = get_dispatch_table(ObjectTracker_instance_table_map, gpu)->GetPhysicalDeviceQueueProperties(gpu, count, pProperties);
+
+ loader_platform_thread_lock_mutex(&objLock);
+ setGpuQueueInfoState(count, pProperties);
+ loader_platform_thread_unlock_mutex(&objLock);
return result;
}
@@ -685,21 +681,19 @@
}
VkResult
-explicit_GetObjectInfo(
- VkDevice device,
- VkObjectType objType,
- VkObject object,
- VkObjectInfoType infoType,
- size_t *pDataSize,
- void *pData)
+explicit_GetObjectMemoryRequirements(
+ VkDevice device,
+ VkObjectType objType,
+ VkObject object,
+ VkMemoryRequirements* pMemoryRequirements)
{
loader_platform_thread_lock_mutex(&objLock);
- validateObjectType(device, "vkGetObjectInfo", objType, object);
+ validateObjectType(device, "vkGetObjectMemoryRequirements", objType, object);
validate_object(device, device);
validate_object(device, object);
loader_platform_thread_unlock_mutex(&objLock);
- VkResult result = get_dispatch_table(ObjectTracker_device_table_map, device)->GetObjectInfo(device, objType, object, infoType, pDataSize, pData);
+ VkResult result = get_dispatch_table(ObjectTracker_device_table_map, device)->GetObjectMemoryRequirements(device, objType, object, pMemoryRequirements);
return result;
}
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 0bed869..e845c4c 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -153,17 +153,6 @@
return res;
}
-VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceInfo(VkPhysicalDevice gpu, VkPhysicalDeviceInfoType infoType, size_t* pDataSize, void* pData)
-{
- char str[1024];
- if (!validate_VkPhysicalDeviceInfoType(infoType)) {
- sprintf(str, "Parameter infoType to function GetPhysicalDeviceInfo has invalid value of %i.", (int)infoType);
- layerCbMsg(VK_DBG_REPORT_ERROR_BIT, (VkObjectType) 0, NULL, 0, 1, "PARAMCHECK", str);
- }
- VkResult result = instance_dispatch_table(gpu)->GetPhysicalDeviceInfo(gpu, infoType, pDataSize, pData);
- return result;
-}
-
void PreCreateDevice(VkPhysicalDevice gpu, const VkDeviceCreateInfo* pCreateInfo)
{
if(gpu == nullptr)
@@ -295,37 +284,22 @@
}
};
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
- VkExtensionInfoType infoType,
- uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(
+ uint32_t* pCount)
+{
+ *pCount = PARAM_CHECKER_LAYER_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
+ uint32_t extensionIndex,
+ VkExtensionProperties* pProperties)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- uint32_t *count;
- 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 = PARAM_CHECKER_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= PARAM_CHECKER_LAYER_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &pcExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ if (extensionIndex >= PARAM_CHECKER_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &pcExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
@@ -357,38 +331,25 @@
"Sample layer: ParamChecker",
}
};
-VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
VkPhysicalDevice gpu,
- VkExtensionInfoType infoType,
+ uint32_t* pCount)
+{
+ *pCount = PARAM_CHECKER_LAYER_DEV_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
+ VkPhysicalDevice gpu,
uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+ VkExtensionProperties* pProperties)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- uint32_t *count;
- 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 = PARAM_CHECKER_LAYER_DEV_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= PARAM_CHECKER_LAYER_DEV_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &pcDevExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ if (extensionIndex >= PARAM_CHECKER_LAYER_DEV_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &pcDevExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
@@ -481,14 +442,9 @@
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* pData)
{
- char str[1024];
- if (!validate_VkObjectInfoType(infoType)) {
- sprintf(str, "Parameter infoType to function GetObjectInfo has invalid value of %i.", (int)infoType);
- layerCbMsg(VK_DBG_REPORT_ERROR_BIT, (VkObjectType) 0, NULL, 0, 1, "PARAMCHECK", str);
- }
- VkResult result = device_dispatch_table(device)->GetObjectInfo(device, objType, object, infoType, pDataSize, pData);
+ VkResult result = device_dispatch_table(device)->GetObjectMemoryRequirements(device, objType, object, pData);
return result;
}
@@ -785,21 +741,18 @@
return result;
}
-VK_LAYER_EXPORT VkResult VKAPI vkGetImageSubresourceInfo(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceInfoType infoType, size_t* pDataSize, void* pData)
+VK_LAYER_EXPORT VkResult VKAPI vkGetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout)
{
char str[1024];
if (!pSubresource) {
- sprintf(str, "Struct ptr parameter pSubresource to function GetImageSubresourceInfo is NULL.");
+ sprintf(str, "Struct ptr parameter pSubresource to function GetImageSubresourceLayout is NULL.");
layerCbMsg(VK_DBG_REPORT_INFO_BIT, (VkObjectType) 0, NULL, 0, 1, "PARAMCHECK", str);
} else if (!vk_validate_vkimagesubresource(pSubresource)) {
- sprintf(str, "Parameter pSubresource to function GetImageSubresourceInfo contains an invalid value.");
+ sprintf(str, "Parameter pSubresource to function GetImageSubresourceLayout contains an invalid value.");
layerCbMsg(VK_DBG_REPORT_ERROR_BIT, (VkObjectType) 0, NULL, 0, 1, "PARAMCHECK", str);
}
- if (!validate_VkSubresourceInfoType(infoType)) {
- sprintf(str, "Parameter infoType to function GetImageSubresourceInfo has invalid value of %i.", (int)infoType);
- layerCbMsg(VK_DBG_REPORT_ERROR_BIT, (VkObjectType) 0, NULL, 0, 1, "PARAMCHECK", str);
- }
- VkResult result = device_dispatch_table(device)->GetImageSubresourceInfo(device, image, pSubresource, infoType, pDataSize, pData);
+
+ VkResult result = device_dispatch_table(device)->GetImageSubresourceLayout(device, image, pSubresource, pLayout);
return result;
}
@@ -1922,8 +1875,8 @@
return (void*) vkInvalidateMappedMemoryRanges;
if (!strcmp(name, "DestroyObject"))
return (void*) vkDestroyObject;
- if (!strcmp(name, "GetObjectInfo"))
- return (void*) vkGetObjectInfo;
+ if (!strcmp(name, "GetObjectMemoryRequirements"))
+ return (void*) vkGetObjectMemoryRequirements;
if (!strcmp(name, "CreateFence"))
return (void*) vkCreateFence;
if (!strcmp(name, "ResetFences"))
@@ -1956,8 +1909,8 @@
return (void*) vkCreateBufferView;
if (!strcmp(name, "CreateImage"))
return (void*) vkCreateImage;
- if (!strcmp(name, "GetImageSubresourceInfo"))
- return (void*) vkGetImageSubresourceInfo;
+ if (!strcmp(name, "GetImageSubresourceLayout"))
+ return (void*) vkGetImageSubresourceLayout;
if (!strcmp(name, "CreateImageView"))
return (void*) vkCreateImageView;
if (!strcmp(name, "CreateColorAttachmentView"))
@@ -2006,6 +1959,10 @@
return (void*) vkEndCommandBuffer;
if (!strcmp(name, "ResetCommandBuffer"))
return (void*) vkResetCommandBuffer;
+ if (!strcmp(name, "GetGlobalExtensionProperties"))
+ return (void*) vkGetGlobalExtensionProperties;
+ if (!strcmp(name, "GetGlobalExtensionCount"))
+ return (void*) vkGetGlobalExtensionCount;
if (!strcmp(name, "CmdBindPipeline"))
return (void*) vkCmdBindPipeline;
if (!strcmp(name, "CmdBindDynamicStateObject"))
@@ -2094,16 +2051,14 @@
return (void*) vkCreateInstance;
if (!strcmp(name, "DestroyInstance"))
return (void*) vkDestroyInstance;
- if (!strcmp(name, "GetPhysicalDeviceInfo"))
- return (void*) vkGetPhysicalDeviceInfo;
if (!strcmp(name, "CreateDevice"))
return (void*) vkCreateDevice;
- if (!strcmp(name, "GetGlobalExtensionInfo"))
- return (void*) vkGetGlobalExtensionInfo;
- if (!strcmp(name, "GetPhysicalDeviceExtensionInfo"))
- return (void*) vkGetPhysicalDeviceExtensionInfo;
if (!strcmp(name, "GetPhysicalDeviceFormatInfo"))
return (void*) vkGetPhysicalDeviceFormatInfo;
+ if (!strcmp(name, "GetPhysicalDeviceExtensionProperties"))
+ return (void*) vkGetPhysicalDeviceExtensionProperties;
+ if (!strcmp(name, "GetPhysicalDeviceExtensionCount"))
+ return (void*) vkGetPhysicalDeviceExtensionCount;
return NULL;
}
diff --git a/layers/screenshot.cpp b/layers/screenshot.cpp
index 757c00c..a102169 100644
--- a/layers/screenshot.cpp
+++ b/layers/screenshot.cpp
@@ -119,7 +119,6 @@
VkFormat format = imageMap[image1]->format;
const VkImageSubresource sr = {VK_IMAGE_ASPECT_COLOR, 0, 0};
VkSubresourceLayout sr_layout;
- size_t data_size = sizeof(sr_layout);
const VkImageCreateInfo imgCreateInfo = {
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
NULL,
@@ -162,7 +161,6 @@
{width, height, 1}
};
VkMemoryRequirements memRequirements;
- size_t memRequirementsSize = sizeof(memRequirements);
uint32_t num_allocations = 0;
size_t num_alloc_size = sizeof(num_allocations);
VkLayerDispatchTable* pTableDevice = screenshot_device_table_map[device];
@@ -183,10 +181,9 @@
err = pTableDevice->CreateImage(device, &imgCreateInfo, &image2);
assert(!err);
- err = pTableDevice->GetObjectInfo(device,
+ err = pTableDevice->GetObjectMemoryRequirements(device,
VK_OBJECT_TYPE_IMAGE, image2,
- VK_OBJECT_INFO_TYPE_MEMORY_REQUIREMENTS,
- &memRequirementsSize, &memRequirements);
+ &memRequirements);
assert(!err);
memAllocInfo.allocationSize = memRequirements.size;
@@ -220,9 +217,7 @@
err = pTableDevice->DeviceWaitIdle(device);
assert(!err);
- err = pTableDevice->GetImageSubresourceInfo(device, image2, &sr,
- VK_SUBRESOURCE_INFO_TYPE_LAYOUT,
- &data_size, &sr_layout);
+ err = pTableDevice->GetImageSubresourceLayout(device, image2, &sr, &sr_layout);
assert(!err);
err = pTableDevice->MapMemory(device, mem2, 0, 0, 0, (void **) &ptr );
@@ -342,81 +337,43 @@
}
};
-
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
- VkExtensionInfoType infoType,
- uint32_t extensionIndex,
- size_t *pDataSize,
- void *pData)
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(
+ uint32_t* pCount)
{
- // This entrypoint is NOT going to init its own dispatch table since loader calls here early
- uint32_t *count;
-
- 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 = SCREENSHOT_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL) {
- return VK_SUCCESS;
- }
- if (extensionIndex >= SCREENSHOT_LAYER_EXT_ARRAY_SIZE) {
- return VK_ERROR_INVALID_VALUE;
- }
- memcpy((VkExtensionProperties *) pData, &ssExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
-
+ *pCount = SCREENSHOT_LAYER_EXT_ARRAY_SIZE;
return VK_SUCCESS;
}
-VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
- VkPhysicalDevice physical_device,
- VkExtensionInfoType infoType,
- uint32_t extensionIndex,
- size_t *pDataSize,
- void *pData)
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
+ uint32_t extensionIndex,
+ VkExtensionProperties* pProperties)
{
- uint32_t *count;
+ /* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
+ if (extensionIndex >= SCREENSHOT_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
- if (pDataSize == NULL) {
- return VK_ERROR_INVALID_POINTER;
- }
+ memcpy(pProperties, &ssExts[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 = SCREENSHOT_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL) {
- return VK_SUCCESS;
- }
- if (extensionIndex >= SCREENSHOT_LAYER_EXT_ARRAY_SIZE) {
- return VK_ERROR_INVALID_VALUE;
- }
- memcpy((VkExtensionProperties *) pData, &ssExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- }
+ return VK_SUCCESS;
+}
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
+ VkPhysicalDevice gpu,
+ uint32_t* pCount)
+{
+ *pCount = SCREENSHOT_LAYER_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
+ VkPhysicalDevice gpu,
+ uint32_t extensionIndex,
+ VkExtensionProperties* pProperties)
+{
+ /* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
+
+ if (extensionIndex >= SCREENSHOT_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &ssExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
@@ -613,6 +570,18 @@
if (!strcmp(funcName, "vkGetDeviceQueue"))
return (void*) vkGetDeviceQueue;
+ if (!strcmp(funcName, "vkGetGlobalExtensionCount"))
+ return (void*) vkGetGlobalExtensionCount;
+
+ if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionCount"))
+ return (void*) vkGetPhysicalDeviceExtensionCount;
+
+ if (!strcmp(funcName, "vkGetGlobalExtensionProperties"))
+ return (void*) vkGetGlobalExtensionProperties;
+
+ if (!strcmp(funcName, "vkGetPhysicalDeviceExtensionProperties"))
+ return (void*) vkGetPhysicalDeviceExtensionProperties;
+
VkLayerDispatchTable *pDisp = get_dispatch_table(screenshot_device_table_map, dev);
if (deviceExtMap.size() == 0 || deviceExtMap[pDisp].wsi_lunarg_enabled)
{
diff --git a/layers/shader_checker.cpp b/layers/shader_checker.cpp
index 4ab46c3..6251122 100644
--- a/layers/shader_checker.cpp
+++ b/layers/shader_checker.cpp
@@ -157,74 +157,44 @@
"Sample layer: ShaderChecker",
}
};
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionCount(
+ uint32_t* pCount)
+{
+ *pCount = SHADER_CHECKER_LAYER_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
-VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionInfo(
- VkExtensionInfoType infoType,
+VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(
uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+ VkExtensionProperties* pProperties)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- uint32_t *count;
- 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 = SHADER_CHECKER_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= SHADER_CHECKER_LAYER_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &shaderCheckerExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ if (extensionIndex >= SHADER_CHECKER_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &shaderCheckerExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
-VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionInfo(
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
VkPhysicalDevice gpu,
- VkExtensionInfoType infoType,
+ uint32_t* pCount)
+{
+ *pCount = SHADER_CHECKER_LAYER_EXT_ARRAY_SIZE;
+ return VK_SUCCESS;
+}
+
+VK_LAYER_EXPORT VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
+ VkPhysicalDevice gpu,
uint32_t extensionIndex,
- size_t* pDataSize,
- void* pData)
+ VkExtensionProperties* pProperties)
{
/* This entrypoint is NOT going to init it's own dispatch table since loader calls here early */
- uint32_t *count;
- 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 = SHADER_CHECKER_LAYER_EXT_ARRAY_SIZE;
- break;
- case VK_EXTENSION_INFO_TYPE_PROPERTIES:
- *pDataSize = sizeof(VkExtensionProperties);
- if (pData == NULL)
- return VK_SUCCESS;
- if (extensionIndex >= SHADER_CHECKER_LAYER_EXT_ARRAY_SIZE)
- return VK_ERROR_INVALID_VALUE;
- memcpy((VkExtensionProperties *) pData, &shaderCheckerExts[extensionIndex], sizeof(VkExtensionProperties));
- break;
- default:
- return VK_ERROR_INVALID_VALUE;
- };
+ if (extensionIndex >= SHADER_CHECKER_LAYER_EXT_ARRAY_SIZE)
+ return VK_ERROR_INVALID_VALUE;
+ memcpy(pProperties, &shaderCheckerExts[extensionIndex], sizeof(VkExtensionProperties));
return VK_SUCCESS;
}
@@ -1029,8 +999,10 @@
ADD_HOOK(vkCreateInstance);
ADD_HOOK(vkDestroyInstance);
- ADD_HOOK(vkGetGlobalExtensionInfo);
- ADD_HOOK(vkGetPhysicalDeviceExtensionInfo);
+ ADD_HOOK(vkGetGlobalExtensionProperties);
+ ADD_HOOK(vkGetGlobalExtensionCount);
+ ADD_HOOK(vkGetPhysicalDeviceExtensionProperties);
+ ADD_HOOK(vkGetPhysicalDeviceExtensionCount);
#undef ADD_HOOK
fptr = msg_callback_get_proc_addr(pName);