aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobin Ehlis <tobin@lunarg.com>2014-10-23 08:44:44 -0600
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2014-10-29 18:02:02 -0600
commita3597eb47ee384b8506c33560aa14078aaa06c30 (patch)
tree98e72913c8db80bc7d38ff3edece6bda126f0c14
parent357786477d06aebf0a60c7f959bbbb85999f60c8 (diff)
downloadusermoji-a3597eb47ee384b8506c33560aa14078aaa06c30.tar.xz
layers : Updates to layers README
-rw-r--r--layers/README.md16
1 files 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
-<build dir>/layer/generic_layer.c - auto generated example wrapping all XGL entrypoints
+layer/basic_plugin.c - simple example
+<build dir>/layer/generic_layer.c - auto generated example wrapping all XGL entrypoints
+<build dir>/layer/api_dump.c - print out API calls along with parameter values
+<build dir>/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<name>.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