blob: 4077046ac97099e01f44c1f995da7067a2fa5f04 [file] [log] [blame] [view]
Jens Owen00266782014-12-18 07:08:39 -07001This sample driver implementation provide multiple subcomponents required to build and test an Installable Client Driver (ICD):
2- [Common Infrastructure](common)
3- [Implementation for Intel GPUs](intel)
David Pinedo0257fbf2015-02-02 18:02:40 -07004- [Null driver](nulldrv)
Jens Owen00266782014-12-18 07:08:39 -07005- [*Sample Driver Tests*](../tests)
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -06006 - Now includes Golden images to verify vk_render_tests rendering.
Jens Owen00266782014-12-18 07:08:39 -07007
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -06008common/ provides helper and utility functions, as well as all VK entry points
9except vkInitAndEnumerateGpus. Hardware drivers are required to provide that
Jon Ashburn301c5f02015-04-06 10:58:22 -060010function, and to embed a "VkLayerDispatchTable *" as the first member of
Courtney Goeltzenleuchter382489d2015-04-10 08:34:15 -060011VkPhysicalGpu and all VkBaseObject.
Chia-I Wu1f440452014-08-06 12:46:51 +080012
13Thread safety
14
15 We have these static variables
16
17 - common/icd.c:static struct icd icd;
18 - intel/gpu.c:static struct intel_gpu *intel_gpus;
19
20 They require that there is no other thread calling the ICD when these
21 functions are called
22
Courtney Goeltzenleuchter9cc421e2015-04-08 15:36:08 -060023 - vkInitAndEnumerateGpus
24 - vkDbgRegisterMsgCallback
25 - vkDbgUnregisterMsgCallback
26 - vkDbgSetGlobalOption