testpat: atomic commit
1 file changed
tree: 93084e5998bee2cacbdd2f6704a427fbb7a576b7
  1. ext/
  2. kmscube/
  3. libkms++/
  4. libkms++util/
  5. py/
  6. utils/
  7. .gitignore
  8. .gitmodules
  9. CMakeLists.txt
  10. LICENSE
  11. README.md
  12. TODO
README.md

libkms++ - C++ library for kernel mode setting

libkms++ is a C++11 library for kernel mode setting.

Also included are some simple utilities for KMS and python bindings for libkms++.

Utilities

  • testpat - set modes and planes and show test pattern on crtcs/planes
  • kmsprint - print information about DRM objects
  • kmsview - view raw images
  • db - simple double-buffering test
  • kmscube - rotating 3D cube on crtcs/planes
  • kmscapture - show captured frames from a camera on screen

Dependencies:

  • libdrm
  • Python 3.x (for python bindings)

Build instructions:

To build the Python bindings you need to set up the git-submodule for pybind11:

git submodule update --init

And to compile:

$ mkdir build
$ cd build
$ cmake ..
$ make -j4

Cross compiling instructions:

Directions for cross compiling depend on your environment.

These are for mine with buildroot:

$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=<buildrootpath>/output/host/usr/share/buildroot/toolchainfile.cmake ..
$ make -j4

Build options

You can use the following cmake flags to control the build. Use -DFLAG=VALUE to set them.

Option nameValuesDefaultNotes
CMAKE_BUILD_TYPERelease/DebugRelease
LIBKMS_ENABLE_PYTHONON/OFFON
LIBKMS_ENABLE_KMSCUBEĀ ON/OFFOFF

Env variables

You can use the following runtime environmental variables to control the behavior of libkms.

VariableDescription
LIBKMSXX_DISABLE_UNIVERSAL_PLANESSet to disable the use of universal planes
LIBKMSXX_DISABLE_ATOMICSet to disable the use of atomic modesetting