| Jens Owen | 0026678 | 2014-12-18 07:08:39 -0700 | [diff] [blame] | 1 | This 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 Pinedo | 0257fbf | 2015-02-02 18:02:40 -0700 | [diff] [blame^] | 4 | - [Null driver](nulldrv) |
| Jens Owen | 0026678 | 2014-12-18 07:08:39 -0700 | [diff] [blame] | 5 | - [*Sample Driver Tests*](../tests) |
| 6 | - Now includes Golden images to verify xgl_render_tests rendering. |
| 7 | |
| Chia-I Wu | 84dace9 | 2014-08-03 09:55:18 +0800 | [diff] [blame] | 8 | common/ provides helper and utility functions, as well as all XGL entry points |
| 9 | except xglInitAndEnumerateGpus. Hardware drivers are required to provide that |
| Jon Ashburn | 70f9724 | 2014-12-03 11:13:40 -0700 | [diff] [blame] | 10 | function, and to embed a "XGL_LAYER_DISPATCH_TABLE *" as the first member of |
| Chia-I Wu | 84dace9 | 2014-08-03 09:55:18 +0800 | [diff] [blame] | 11 | XGL_PHYSICAL_GPU and all XGL_BASE_OBJECT. |
| Chia-I Wu | 1f44045 | 2014-08-06 12:46:51 +0800 | [diff] [blame] | 12 | |
| 13 | Thread 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 |