aboutsummaryrefslogtreecommitdiff
path: root/layers/device_limits.cpp
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtneygo@google.com>2016-02-12 13:46:04 -0700
committerJon Ashburn <jon@lunarg.com>2016-02-18 14:48:57 -0700
commitec0cf1e96fb838397095358ab0db1f623791bf57 (patch)
tree04c871936dfa6b037a1bb6955321271aa6b14e87 /layers/device_limits.cpp
parentd2dd5425702556c111db4eb85230d16c204da723 (diff)
downloadusermoji-ec0cf1e96fb838397095358ab0db1f623791bf57.tar.xz
layers: MR221: Android needs Enumerate*Properties
Android queries information about layers and extensions from the layers via the Enumerate*Properties calls so need them to function correctly. This patch adds missing functions. ---------------------------
Diffstat (limited to 'layers/device_limits.cpp')
-rw-r--r--layers/device_limits.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/layers/device_limits.cpp b/layers/device_limits.cpp
index f363ed25..690a1617 100644
--- a/layers/device_limits.cpp
+++ b/layers/device_limits.cpp
@@ -163,6 +163,21 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionPrope
return util_GetExtensionProperties(1, instance_extensions, pCount, pProperties);
}
+VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL
+vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,
+ const char *pLayerName, uint32_t *pCount,
+ VkExtensionProperties *pProperties) {
+ if (pLayerName == NULL) {
+ dispatch_key key = get_dispatch_key(physicalDevice);
+ layer_data *my_data = get_my_data_ptr(key, layer_data_map);
+ return my_data->instance_dispatch_table
+ ->EnumerateDeviceExtensionProperties(physicalDevice, NULL, pCount,
+ pProperties);
+ } else {
+ return util_GetExtensionProperties(0, nullptr, pCount, pProperties);
+ }
+}
+
static const VkLayerProperties dl_global_layers[] = {
{
"VK_LAYER_LUNARG_device_limits",
@@ -181,6 +196,13 @@ VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerPropertie
pCount, pProperties);
}
+VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
+ VkPhysicalDevice physicalDevice, uint32_t *pCount,
+ VkLayerProperties *pProperties) {
+ return util_GetLayerProperties(ARRAY_SIZE(dl_global_layers),
+ dl_global_layers, pCount, pProperties);
+}
+
VK_LAYER_EXPORT VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance)
{
VkLayerInstanceCreateInfo *chain_info = get_chain_info(pCreateInfo, VK_LAYER_LINK_INFO);
@@ -812,8 +834,12 @@ VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(V
return (PFN_vkVoidFunction) vkGetPhysicalDeviceSparseImageFormatProperties;
if (!strcmp(funcName, "vkEnumerateInstanceLayerProperties"))
return (PFN_vkVoidFunction) vkEnumerateInstanceLayerProperties;
+ if (!strcmp(funcName, "vkEnumerateDeviceLayerProperties"))
+ return (PFN_vkVoidFunction)vkEnumerateDeviceLayerProperties;
if (!strcmp(funcName, "vkEnumerateInstanceExtensionProperties"))
return (PFN_vkVoidFunction) vkEnumerateInstanceExtensionProperties;
+ if (!strcmp(funcName, "vkEnumerateInstanceDeviceProperties"))
+ return (PFN_vkVoidFunction)vkEnumerateDeviceExtensionProperties;
if (!instance) return NULL;