Loader wasn't properly inserting the wrapped gpu objects for activated layers
into the chain of objects. This was a problem for any calls that used
the wrapped gpu object chain after activation of layers.
With layers the loaders dispatch table is used instead of the drivers dispatch
table. The gpu objects were reflecting this change but not subsequent objects.
Tell the icd driver about the loader's dispatch table so it will use it on
object creation rather than the default driver dispatch table.
Includes an auto generated layer (GenericLayer) that wraps all api calls.
Includes a basic handwritten layer (basicLayer) that wraps a few apis.
Adds xglGetProcAddr as a new api, which is used to chain layers together.
All layers and loader implement a dispatch table.
loader_icd_scan now scans the system default libraries
/usr/lib/i386-linux-gnu/xgl:/usr/lib/x86_64-linux-gnu/xgl
or the LIBXGL_DRIVERS_PATH environment variable looking
for a file of the form libXGL_. When found it will try to
dlopen the library and call the initialization and DbgRegister
calls to setup the ICD. The ICD is responsible for figuring out
what, if any, HW is on the system that it can manage.