tree: fed60a03ff0c3bcd8dc9ef84b8cfcbebb14c961b [path history] [tgz]
  1. common/
  2. intel/
  3. nulldrv/
  4. CMakeLists.txt
  5. README.md
icd/README.md

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

  • common/icd.c:static struct icd icd;
  • intel/gpu.c:static struct intel_gpu *intel_gpus;

They require that there is no other thread calling the ICD when these functions are called

  • vkInitAndEnumerateGpus
  • vkDbgRegisterMsgCallback
  • vkDbgUnregisterMsgCallback
  • vkDbgSetGlobalOption