Merge changes Ifeba21da,Ie7982790,I02bb34b7 into nyc-dev
* changes:
vulkan: silence a warning when layers are enabled
vulkan: fix "vkinfo -validate"
vulkan: fix vkinfo with layer extensions
diff --git a/vulkan/libvulkan/driver.cpp b/vulkan/libvulkan/driver.cpp
index 17ccc72..b02f5b4 100644
--- a/vulkan/libvulkan/driver.cpp
+++ b/vulkan/libvulkan/driver.cpp
@@ -480,17 +480,20 @@
if (hook->type == ProcHook::GLOBAL)
return hook->proc;
+ // v0 layers expect
+ //
+ // vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkCreateDevice");
+ //
+ // to work.
+ if (strcmp(pName, "vkCreateDevice") == 0)
+ return hook->proc;
+
ALOGE(
"Invalid use of vkGetInstanceProcAddr to query %s without an "
"instance",
pName);
- // Some naughty layers expect
- //
- // vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkCreateDevice");
- //
- // to work.
- return (strcmp(pName, "vkCreateDevice") == 0) ? hook->proc : nullptr;
+ return nullptr;
}
PFN_vkVoidFunction proc;
diff --git a/vulkan/tools/vkinfo.cpp b/vulkan/tools/vkinfo.cpp
index e97e5f5..62d8240 100644
--- a/vulkan/tools/vkinfo.cpp
+++ b/vulkan/tools/vkinfo.cpp
@@ -162,8 +162,11 @@
uint32_t num_extensions = 0;
for (const auto& desired_ext : kDesiredExtensions) {
bool available = HasExtension(info.extensions, desired_ext);
- for (size_t i = 0; !available && i < info.layer_extensions.size(); i++)
- available = HasExtension(info.layer_extensions[i], desired_ext);
+ if (options.validate) {
+ for (size_t i = 0; !available && i < info.layer_extensions.size();
+ i++)
+ available = HasExtension(info.layer_extensions[i], desired_ext);
+ }
if (available)
extensions[num_extensions++] = desired_ext;
}
@@ -179,12 +182,11 @@
// clang-format off
const char *kValidationLayers[] = {
"VK_LAYER_GOOGLE_threading",
+ "VK_LAYER_LUNARG_parameter_validation",
"VK_LAYER_LUNARG_device_limits",
- "VK_LAYER_LUNARG_draw_state",
- "VK_LAYER_LUNARG_image",
- "VK_LAYER_LUNARG_mem_tracker",
"VK_LAYER_LUNARG_object_tracker",
- "VK_LAYER_LUNARG_param_checker",
+ "VK_LAYER_LUNARG_image",
+ "VK_LAYER_LUNARG_core_validation",
"VK_LAYER_LUNARG_swapchain",
"VK_LAYER_GOOGLE_unique_objects"
};
@@ -236,8 +238,12 @@
uint32_t num_extensions = 0;
for (const auto& desired_ext : kDesiredExtensions) {
bool available = HasExtension(info->extensions, desired_ext);
- for (size_t i = 0; !available && i < info->layer_extensions.size(); i++)
- available = HasExtension(info->layer_extensions[i], desired_ext);
+ if (options.validate) {
+ for (size_t i = 0; !available && i < info->layer_extensions.size();
+ i++)
+ available =
+ HasExtension(info->layer_extensions[i], desired_ext);
+ }
if (available)
extensions[num_extensions++] = desired_ext;
}
@@ -245,12 +251,11 @@
// clang-format off
const char *kValidationLayers[] = {
"VK_LAYER_GOOGLE_threading",
+ "VK_LAYER_LUNARG_parameter_validation",
"VK_LAYER_LUNARG_device_limits",
- "VK_LAYER_LUNARG_draw_state",
- "VK_LAYER_LUNARG_image",
- "VK_LAYER_LUNARG_mem_tracker",
"VK_LAYER_LUNARG_object_tracker",
- "VK_LAYER_LUNARG_param_checker",
+ "VK_LAYER_LUNARG_image",
+ "VK_LAYER_LUNARG_core_validation",
"VK_LAYER_LUNARG_swapchain",
"VK_LAYER_GOOGLE_unique_objects"
};