aboutsummaryrefslogtreecommitdiff
path: root/layers/device_limits.cpp
diff options
context:
space:
mode:
authorTobin Ehlis <tobin@lunarg.com>2015-09-29 12:26:00 -0600
committerTobin Ehlis <tobin@lunarg.com>2015-09-29 12:26:00 -0600
commita466ce25c943b487fb1dd9a20364a5a076b335c4 (patch)
treee9a8be9aa179b5e7ed0a22befa9838cc7794886b /layers/device_limits.cpp
parent8d03b7c546d057e281fe3c24337ed0faf51790ec (diff)
downloadusermoji-a466ce25c943b487fb1dd9a20364a5a076b335c4.tar.xz
layers: Intercept vkEnumerateInstance[Layer|Extension]Properties() funcs in DeviceLimits
Diffstat (limited to 'layers/device_limits.cpp')
-rw-r--r--layers/device_limits.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/layers/device_limits.cpp b/layers/device_limits.cpp
index 8cb8b6b5..b6025103 100644
--- a/layers/device_limits.cpp
+++ b/layers/device_limits.cpp
@@ -127,6 +127,32 @@ static void init_device_limits(layer_data *my_data)
globalLockInitialized = 1;
}
}
+/* DeviceLimits does not have any global extensions */
+VK_LAYER_EXPORT VkResult VKAPI vkEnumerateInstanceExtensionProperties(
+ const char *pLayerName,
+ uint32_t *pCount,
+ VkExtensionProperties* pProperties)
+{
+ return util_GetExtensionProperties(0, NULL, pCount, pProperties);
+}
+
+static const VkLayerProperties dl_global_layers[] = {
+ {
+ "DeviceLimits",
+ VK_API_VERSION,
+ VK_MAKE_VERSION(0, 1, 0),
+ "Validation layer: Device Limits",
+ }
+};
+
+VK_LAYER_EXPORT VkResult VKAPI vkEnumerateInstanceLayerProperties(
+ uint32_t *pCount,
+ VkLayerProperties* pProperties)
+{
+ return util_GetLayerProperties(ARRAY_SIZE(dl_global_layers),
+ dl_global_layers,
+ pCount, pProperties);
+}
VK_LAYER_EXPORT VkResult VKAPI vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance)
{
@@ -522,7 +548,6 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateImage(
return result;
}
-
VK_LAYER_EXPORT VkResult VKAPI vkDbgCreateMsgCallback(
VkInstance instance,
VkFlags msgFlags,
@@ -618,6 +643,10 @@ VK_LAYER_EXPORT PFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(VkInstance instan
return (PFN_vkVoidFunction) vkGetPhysicalDeviceMemoryProperties;
if (!strcmp(funcName, "vkGetPhysicalDeviceSparseImageFormatProperties"))
return (PFN_vkVoidFunction) vkGetPhysicalDeviceSparseImageFormatProperties;
+ if (!strcmp(funcName, "vkEnumerateInstanceLayerProperties"))
+ return (PFN_vkVoidFunction) vkEnumerateInstanceLayerProperties;
+ if (!strcmp(funcName, "vkEnumerateInstanceExtensionProperties"))
+ return (PFN_vkVoidFunction) vkEnumerateInstanceExtensionProperties;
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);