From a3597eb47ee384b8506c33560aa14078aaa06c30 Mon Sep 17 00:00:00 2001 From: Tobin Ehlis Date: Thu, 23 Oct 2014 08:44:44 -0600 Subject: layers : Updates to layers README --- layers/README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/layers/README.md b/layers/README.md index 75a0d283..039fe0e1 100644 --- a/layers/README.md +++ b/layers/README.md @@ -6,17 +6,19 @@ Layer libraries can be written to intercept or hook XGL entrypoints for various debug and validation purpose. One or more XGL entrypoints can be defined in your Layer library. Undefined entrypoints in the Layer library will be passed to the next Layer which may be the driver. Multiple layer libraries can be chained (actually a hierarchy) together. -xglEnumerateLayer can be called to list the available layer libraries. xglGetProcAddr i +xglEnumerateLayer can be called to list the available layer libraries. xglGetProcAddr is used internally by the Layers and ICD Loader to initialize dispatch tables. Layers are activated at xglCreateDevice time. xglCreateDevice createInfo struct is extended to allow a list of layers to be activated. Layer libraries can alternatively be LD_PRELOADed. Layer library example code: -layer/basic_plugin.c - simple example -/layer/generic_layer.c - auto generated example wrapping all XGL entrypoints +layer/basic_plugin.c - simple example +/layer/generic_layer.c - auto generated example wrapping all XGL entrypoints +/layer/api_dump.c - print out API calls along with parameter values +/layer/object_track.c - Print object CREATE/USE/DESTROY stats Using Layers:: -Build XGL loader and i965 icd driver using normal steps (cmake and make) +Build XGL loader and i965 icd driver using normal steps (cmake and make) Place libXGLLayer.so in the same directory as your XGL test or app: cp build/layer/libXGLLayerBasic.so build/layer/libXGLLayerGeneric.so build/tests @@ -32,7 +34,7 @@ Current Features: -xglEnumerateLayers and xglGetProcAddr supported APIs in xgl.h, ICD loader and i965 driver -multiple layers in a hierarchy supported -layer enumeration works --layers activated per gpu and per icd driver: separate dispatch table and layer library +-layers activated per gpu and per icd driver: separate dispatch table and layer library list in loader for each gpu or icd driver -activation via xglCreateDevice extension struct in CreateInfo or via env var (LIBXGL_LAYER_LIBS) @@ -40,8 +42,8 @@ Current Features: Current known issues: -layer libraries don't support multiple dispatch tables for multi-gpus --layers with extension APIs not yet tested or supported --layer libraries not yet include loader init functionality for full LD_PRELOAD of +-layers with extension APIs not yet tested or supported +-layer libraries not yet include loader init functionality for full LD_PRELOAD of entire API including xglInitAndEnumerate -no support for apps registering layers, must be discovered via initial scan -no support for Loader discovering from layer and driver which layers support which -- cgit v1.2.3