Home | History | Annotate | only in /external/libkmsxx
Up to higher level directory
NameDateSize
.gitmodules22-Oct-202094
.travis.yml22-Oct-20201.7K
Android.bp22-Oct-20201.6K
CMakeLists.txt22-Oct-20202.5K
ext/22-Oct-2020
kms++/22-Oct-2020
kms++util/22-Oct-2020
kmscube/22-Oct-2020
LICENSE22-Oct-202017.9K
LTO.cmake22-Oct-2020791
METADATA22-Oct-2020558
MODULE_LICENSE_MPL222-Oct-20200
NOTICE22-Oct-202017.9K
OWNERS22-Oct-2020141
py/22-Oct-2020
README.md22-Oct-20202.8K
scripts/22-Oct-2020
TODO22-Oct-2020203
utils/22-Oct-2020

README.md

      1 [![Build Status](https://travis-ci.org/tomba/kmsxx.svg?branch=master)](https://travis-ci.org/tomba/kmsxx)
      2 
      3 # kms++ - C++ library for kernel mode setting
      4 
      5 kms++ is a C++11 library for kernel mode setting.
      6 
      7 Also included are some simple utilities for KMS and python bindings for kms++.
      8 
      9 ## Utilities
     10 
     11 - kmstest - set modes and planes and show test pattern on crtcs/planes, and test page flips
     12 - kmsprint - print information about DRM objects
     13 - kmsview - view raw images
     14 - kmscube - rotating 3D cube on crtcs/planes
     15 - kmscapture - show captured frames from a camera on screen
     16 
     17 ## Dependencies:
     18 
     19 - libdrm
     20 - Python 3.x (for python bindings)
     21 
     22 ## Build instructions:
     23 
     24 To build the Python bindings you need to set up the git-submodule for pybind11:
     25 
     26 ```
     27 git submodule update --init
     28 ```
     29 
     30 And to compile:
     31 
     32 ```
     33 $ mkdir build
     34 $ cd build
     35 $ cmake ..
     36 $ make -j4
     37 ```
     38 
     39 ## Cross compiling instructions:
     40 
     41 Directions for cross compiling depend on your environment.
     42 
     43 These are for mine with buildroot:
     44 
     45 ```
     46 $ mkdir build
     47 $ cd build
     48 $ cmake -DCMAKE_TOOLCHAIN_FILE=<buildrootpath>/output/host/usr/share/buildroot/toolchainfile.cmake ..
     49 $ make -j4
     50 ```
     51 
     52 Your environment may provide similar toolchainfile. If not, you can create a toolchainfile of your own, something along these lines:
     53 
     54 ```
     55 SET(CMAKE_SYSTEM_NAME Linux)
     56 
     57 SET(BROOT "<buildroot>/output/")
     58 
     59 # specify the cross compiler
     60 SET(CMAKE_C_COMPILER   ${BROOT}/host/usr/bin/arm-buildroot-linux-gnueabihf-gcc)
     61 SET(CMAKE_CXX_COMPILER ${BROOT}/host/usr/bin/arm-buildroot-linux-gnueabihf-g++)
     62 
     63 # where is the target environment
     64 SET(CMAKE_FIND_ROOT_PATH ${BROOT}/target ${BROOT}/host)
     65 
     66 SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
     67 SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
     68 SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
     69 ```
     70 
     71 ## Build options
     72 
     73 You can use the following cmake flags to control the build. Use `-DFLAG=VALUE` to set them.
     74 
     75 Option name           | Values          | Default         | Notes
     76 --------------------- | -------------   | --------------- | --------
     77 CMAKE_BUILD_TYPE      | Release/Debug   | Release         |
     78 BUILD_SHARED_LIBS     | ON/OFF          | OFF             |
     79 KMSXX_ENABLE_PYTHON   | ON/OFF          | ON              |
     80 KMSXX_ENABLE_KMSCUBE  | ON/OFF          | OFF             |
     81 KMSXX_PYTHON_VERSION  | python3/python2 | python3;python2 | Name of the python pkgconfig file
     82 
     83 ## Env variables
     84 
     85 You can use the following runtime environmental variables to control the behavior of kms++.
     86 
     87 Variable                          | Description
     88 --------------------------------- | -------------
     89 KMSXX_DISABLE_UNIVERSAL_PLANES    | Set to disable the use of universal planes
     90 KMSXX_DISABLE_ATOMIC              | Set to disable the use of atomic modesetting
     91 
     92 ## Python notes
     93 
     94 You can run the python code directly from the build dir by defining PYTHONPATH env variable. For example:
     95 
     96 ```
     97 PYTHONPATH=build/py py/tests/hpd.py
     98 
     99 ```
    100