loader: Update the loader to 1.0.39
Add new extensions for 1.0.39. Also, updated layers to include
minimal set of functionality for 1.0.39 extensions. Extensions include:
- VK_KHR_get_physical_device_properties2
- VK_KHR_shader_draw_parameters
- VK_EXT_direct_mode_display
- VK_EXT_display_surface_counter
- VK_EXT_display_control
Also, redo the LoaderAndLayerIf document.
Change-Id: I10412086da7a798afe832a3892e18f606259b5af
diff --git a/loader/gpa_helper.h b/loader/gpa_helper.h
index 5089b59..c7e7ba2 100644
--- a/loader/gpa_helper.h
+++ b/loader/gpa_helper.h
@@ -308,6 +308,11 @@
if (extension_instance_gpa(inst, funcName, &addr))
return addr;
+ // Unknown physical device extensions
+ if (loader_phys_dev_ext_gpa(inst, funcName, true, &addr, NULL))
+ return addr;
+
+ // Unknown device extensions
addr = loader_dev_ext_gpa(inst, funcName);
return addr;
}
@@ -327,36 +332,6 @@
return NULL;
}
-/* These functions require special handling by the loader.
-* They are not just generic trampoline code entrypoints.
-* Thus GPA must return loader entrypoint for these instead of first function
-* in the chain. */
-static inline void *loader_non_passthrough_gipa(const char *name) {
- if (!name || name[0] != 'v' || name[1] != 'k')
- return NULL;
-
- name += 2;
- if (!strcmp(name, "CreateInstance"))
- return (void *)vkCreateInstance;
- if (!strcmp(name, "DestroyInstance"))
- return (void *)vkDestroyInstance;
- if (!strcmp(name, "GetDeviceProcAddr"))
- return (void *)vkGetDeviceProcAddr;
- // remove once no longer locks
- if (!strcmp(name, "EnumeratePhysicalDevices"))
- return (void *)vkEnumeratePhysicalDevices;
- if (!strcmp(name, "EnumerateDeviceExtensionProperties"))
- return (void *)vkEnumerateDeviceExtensionProperties;
- if (!strcmp(name, "EnumerateDeviceLayerProperties"))
- return (void *)vkEnumerateDeviceLayerProperties;
- if (!strcmp(name, "GetInstanceProcAddr"))
- return (void *)vkGetInstanceProcAddr;
- if (!strcmp(name, "CreateDevice"))
- return (void *)vkCreateDevice;
-
- return NULL;
-}
-
static inline void *loader_non_passthrough_gdpa(const char *name) {
if (!name || name[0] != 'v' || name[1] != 'k')
return NULL;