This sample driver implementation provide multiple subcomponents required to build and test an Installable Client Driver (ICD):
common/ provides helper and utility functions, as well as all VK entry points except vkInitAndEnumerateGpus. Hardware drivers are required to provide that function, and to embed a "VkLayerDispatchTable *" as the first member of VkPhysicalDevice and all VkBaseObject.
Thread safety
We have these static variables
They require that there is no other thread calling the ICD when these functions are called