X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=README;h=44a5ec466775d7273dd09706dba5d37df2213533;hb=4fa82547c347cf28c84c1c17414de249bff5faaa;hp=493dabeefa5b5557da5e88b5ade0c63225ba84d1;hpb=a1d138560ab8452709f51ae64800ff60ceae2b5d;p=profile%2Fivi%2Flayer-management.git diff --git a/README b/README index 493dabe..44a5ec4 100644 --- a/README +++ b/README @@ -3,7 +3,8 @@ Sections in this file describe: - Component Overview - Required platform capabilities - How to build on different platforms - +- Change the environment during Runtime +- Running Testapplications Introduction ==================================== @@ -71,15 +72,16 @@ Extensions have to be supported by the TargetPlatform : X11 Extensions: x-composite : This extension should support redirecting of egl Surfaces to x11 pixmaps too. +x-damage EGL / OpenGL ES 2.0: -EGL_IMAGE_KHR : +EGL_IMAGE_KHR: The following functions should be supported by the vendor specific graphic driver glEGLImageTargetTexture2DOES eglCreateImageKHR eglDestroyImageKHR -Furthermore it should be supported to create an egl image from an x11 pixmap. +Furthermore it should be supported to create an egl image from an x11 pixmap. Platform with X11 and OpenGL === @@ -90,6 +92,7 @@ Extensions have to be supported by the TargetPlatform : X11 Extensions: x-composite : This extension should support redirecting of egl Surfaces to x11 pixmaps too. +x-damage : This extension is required to render surfaces only, if there content has changed. GLX / OpenGL : @@ -98,39 +101,6 @@ The following functions should be supported by the vendor specific graphic drive Furthermore it should be supported to create an texture from an x11 pixmap. -Beagle board platform -=== - -If you have choosen the BeagleRenderer as rendering backend, than the following -kernel module must be available too : - -CMEM Module is needed, it can be downloaded from - -http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/linuxutils/index.html - -The EGL implementation on the beagle board should support the following egl config: - -EGL_SURFACE_TYPE = EGL_WINDOW_BIT | EGL_PIXMAP_BIT -EGL_RENDERABLE_TYPE = EGL_OPENGL_ES2_BIT, -EGL_RED_SIZE = 8 -EGL_ALPHA_SIZE = 8 -EGL_BIND_TO_TEXTURE_RGBA = EGL_TRUE - -Furthermore the application which should be rendered by the layermanagement, should initialize egl -by the following steps: - -1. Get EGL Display -2. Initialize EGL -3. Bind API -4. Choose EGL Config -5. Allocate native pixmap Structure -6. Allocate native pixmap space by CMEM_alloc -7. Get physical address of native pixmap using the CMEM module, and assign the address to the native pixmap structure. -8. Create egl pixmap surface using the allocated native pixmap. -9. Create egl context. -10. Make egl context with the surface as current. - - How to build on different platforms ==================================== @@ -155,8 +125,8 @@ Building the LayerManager breaks down to the following steps: Example: cd cmake [optional_build_options] - - For a full list of available build options in [optional_build_options] see "Supported Build Options" + + For a full list of available build options in [optional_build_options] see "Supported Build Options" 4. Start the build. @@ -176,7 +146,7 @@ You need both development packages and libraries for LayerManagerService -- -libdbus +libdbus-1-dev X11GLESRenderer: -- @@ -188,7 +158,7 @@ build an EGL Image from X11Pixmap Vendor specific OpenGL ES 2.0 Libraries, with JIT compiler to support shader which are delivered as source code -X11Renderer: +GLXRenderer: --- Core X11 libraries X11 Composite libraries @@ -199,42 +169,136 @@ GLX Supported Build Options === -- Build configuration: - Option: -DCMAKE_BUILD_TYPE=DEBUG or - -DCMAKE_BUILD_TYPE=RELEASE +Build Flag Default Value Description + +WITH_CLIENTEXAMPLES ON Build examples for client library usage +WITH_CLIENT_LIB ON Build LayerManagement client library +WITH_DESKTOP OFF Build renderer plugin for OpenGL/X11 based platforms +WITH_CONTROL_BIN ON Build LayerManagerControl binary +WITH_CONTROL_LIB OFF Build LayerManagement control library +WITH_DLT OFF Build with DLT logging support +WITH_DOCUMENTATION OFF Generate documentation during build (requires doxygen) +WITH_EGL_EXAMPLE ON Build examples for GLES/X11 based platforms +WITH_EXAMPLE_SCENE_PROVIDER OFF Build scene provider plugin to run example applications +WITH_FORCE_COPY OFF Force Software Copy of Pixmaps (compatibility for VMs) +WITH_GENERIC_COMMUNICATOR ON Build Generic Communicator Plugin based on IpcModules +WITH_GLESv2_LIB OFF Build development library for GLES/X11 based renderers +WITH_GLX_EXAMPLE OFF Build examples for OpenGL/X11 based platforms +WITH_GLX_LIB OFF Build development library for OpenGL/X11 based renderers +WITH_SERVICE_BIN ON Build LayerManagerService binary +WITH_STATIC_LIBRARIES OFF Link all plugins and libraries statically +WITH_STYLE_CHECKING OFF Report styleguide problems during build (requires python) +WITH_SYSTEMD_HEALTH_MONITOR OFF Build plugin for systemd based health monitoring +WITH_TESTS OFF Build unit test binaries for all enabled components +WITH_TEXT_RENDERER OFF Build renderer plugin with pure logging (no rendering) +WITH_WAYLAND_X11 OFF Build renderer plugin for GLES/Wayland with X11 backend +WITH_WAYLAND_X11_LIB OFF Build development library for GLES/Wayland X11 based renderers +WITH_WAYLAND_DRM OFF Build renderer plugin for GLES/Wayland with DRM backend +WITH_WAYLAND_DRM_LIB OFF Build development library for GLES/Wayland DRM based renderers +WITH_WAYLAND_FBDEV OFF Build renderer plugin for GLES/Wayland with FBDEV backend +WITH_WAYLAND_FBDEV_LIB OFF Build development library for GLES/Wayland FBDEV based renderers +WITH_WL_EXAMPLE OFF Build examples for GLES/Wayland based platforms +WITH_X11_GLES ON Build renderer plugin for GLES/X11 based platforms + +You can set either of them during cmake execution, e.g. + + cmake -DWITH_FORCE_COPY=ON -DWITH_EGL_EXAMPLE=OFF + +or you can update your CmakeCache variables afterwards using tools like ccmake. + +Build for different Platforms +=== -- Build for X11 Desktop with GLX Renderer - Option: -DWITH_DESKTOP=ON or - -DWITH_DESKTOP=OFF + You have the choice to use GLXRenderer or X11GLESRenderer. -- Build for X11 with OpenGL ES 2.0 Renderer - Option: -DWITH_X11_GLES=ON or - -DWITH_X11_GLES=OFF - -- Build EGL examples - Option: -DWITH_EGL_EXAMPLE=ON or - -DWITH_EGL_EXAMPLE=OFF + GLXRenderer (X11Renderer.so) which is normaly used for a Desktop, VMWare Image and GMA500 based Headunits -- Build GLX examples - Option: -DWITH_GLX_EXAMPLE=ON or - -DWITH_GLX_EXAMPLE=OFF + cmake / -DWITH_DESKTOP=ON -DWITH_GLX_EXAMPLE=ON -DWITH_TESTS=OFF -DWITH_EGL_EXAMPLE=OFF -DWITH_X11_GLES=OFF -- Build available tests - Option: -DWITH_TESTS=ON or - -DWITH_TESTS=OFF + X11GLESRenderer which is used on more embedded device which are supporting EGL and OpenGL ES 2.0 - Remark: Test File are currently not upstreamed. + cmake / -DWITH_DESKTOP=OFF -DWITH_GLX_EXAMPLE=OFF -DWITH_TESTS=OFF -DWITH_EGL_EXAMPLE=ON -DWITH_X11_GLES=ON -- Build for diferent Platforms +Change the Environment during Runtime +===================================== +The following environments can be set to change the runtime behaviour. - You have the choice to use GLXRenderer or X11GLESRenderer. +LM_PLUGIN_PATH set the path for the location of communicator and renderer PlugIns + default : /usr/lib/layermanager + Example : export LM_PLUGIN_PATH= /usr/local/lib/layermanager - GLXRenderer (X11Renderer.so) which is normaly used for a Desktop, VMWare Image and GMA500 based Headunits +LM_USE_SESSION_BUS enables the DBUS communication to run on Session bus instead of Systembus + default : disabled run on system bus + Example : export LM_USE_SESSION_BUS=enable - cmake / -DWITH_DESKTOP=ON -DWITH_GLX_EXAMPLE=ON -DWITH_TESTS=OFF -DWITH_EGL_EXAMPLE=OFF -DWITH_X11_GLES=OFF +Commandline parameter : +LayerManagerService : -w - default 1280 + -h - default 480 + -c - default 2 (only errors and info) + -f - default 0 (disabled) log file location is /tmp/LayerManagerService.log + possible debug levels : 0 disabled + 1 errors + 2 info,errors + 3 info,errors, warnings + 4 info,errors, warnings,debug + -v shows version of layermanager - X11GLESRenderer which is used on more embedded device which are supporting EGL and OpenGL ES 2.0 +Running Testapplications +===================================== - cmake / -DWITH_DESKTOP=OFF -DWITH_GLX_EXAMPLE=OFF -DWITH_TESTS=OFF -DWITH_EGL_EXAMPLE=ON -DWITH_X11_GLES=ON +1. Starting the service + +precondition : + +install prefix is /usr/local +no compositing manager is running like openbox xfce metacity, kill these if needed + +run: +#> export DISPLAY=:0 +#> export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib +#> export LM_PLUGIN_PATH=/usr/local/lib/layermanager +#> LayerManagerService & + +2. Running OpenGL / OpenGL ES 2.0 Example Applications + +precondition : + +install prefix is /usr/local +LayerManagerService Running + +run: +#> export DISPLAY=:0 +#> export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib +OpenGL ES Example +#> EGLX11ApplicationExample & +OpenGL Example +#> GLX11ApplicationExample & + +3. Running LayerManagerControl + +The LayerManagerControl can be used to change and debug +the runtime behaviour of the service. + +Please Call : +LayerManagerControl without arguments to see a list of supported commands + +Examples + LayerManagerControl get scene + LayerManagerControl get layers + LayerManagerControl get layer 1000 + LayerManagerControl get surfaces + LayerManagerControl get surface 0xa + LayerManagerControl analyze surface 10 + LayerManagerControl scatter + LayerManagerControl watch surface 0xa + +precondition : + +install prefix is /usr/local +LayerManagerService Running +run: +#> export DISPLAY=:0 +#> export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib +#> LayerManagerControl [command]