blob: 2c0b009a0bfac640af3012a13cdf10ce48528c8b [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)
6 - Now includes Golden images to verify xgl_render_tests rendering.
7
Chia-I Wu84dace92014-08-03 09:55:18 +08008common/ provides helper and utility functions, as well as all XGL entry points
9except xglInitAndEnumerateGpus. Hardware drivers are required to provide that
Jon Ashburn70f97242014-12-03 11:13:40 -070010function, and to embed a "XGL_LAYER_DISPATCH_TABLE *" as the first member of
Chia-I Wu84dace92014-08-03 09:55:18 +080011XGL_PHYSICAL_GPU and all XGL_BASE_OBJECT.
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
23 - xglInitAndEnumerateGpus
24 - xglDbgRegisterMsgCallback
25 - xglDbgUnregisterMsgCallback
26 - xglDbgSetGlobalOption