2009-11-20 15:08:28 -07:00
|
|
|
libdrm - userspace library for drm
|
2018-11-07 09:15:32 -07:00
|
|
|
----------------------------------
|
2005-07-10 16:42:42 -06:00
|
|
|
|
2018-11-07 09:15:32 -07:00
|
|
|
This is libdrm, a userspace library for accessing the DRM, direct rendering
|
|
|
|
manager, on Linux, BSD and other operating systems that support the ioctl
|
|
|
|
interface.
|
|
|
|
The library provides wrapper functions for the ioctls to avoid exposing the
|
|
|
|
kernel interface directly, and for chipsets with drm memory manager, support
|
|
|
|
for tracking relocations and buffers.
|
|
|
|
New functionality in the kernel DRM drivers typically requires a new libdrm,
|
|
|
|
but a new libdrm will always work with an older kernel.
|
|
|
|
|
|
|
|
libdrm is a low-level library, typically used by graphics drivers such as
|
|
|
|
the Mesa drivers, the X drivers, libva and similar projects.
|
2007-04-25 14:52:29 -06:00
|
|
|
|
2021-02-11 04:08:05 -07:00
|
|
|
Syncing with the Linux kernel headers
|
|
|
|
-------------------------------------
|
|
|
|
|
|
|
|
The library should be regularly updated to match the recent changes in the
|
|
|
|
`include/uapi/drm/`.
|
|
|
|
|
|
|
|
libdrm maintains a human-readable version for the token format modifier, with
|
|
|
|
the simpler ones being extracted automatically from `drm_fourcc.h` header file
|
|
|
|
with the help of a python script. This might not always possible, as some of
|
|
|
|
the vendors require decoding/extracting them programmatically. For that
|
|
|
|
reason one can enhance the current vendor functions to include/provide the
|
|
|
|
newly added token formats, or, in case there's no such decoding
|
|
|
|
function, to add one that performs the tasks of extracting them.
|
|
|
|
|
|
|
|
For simpler format modifier tokens there's a script (gen_table_fourcc.py) that
|
|
|
|
creates a static table, by going over `drm_fourcc.h` header file. The script
|
|
|
|
could be further modified if it can't handle new (simpler) token format
|
|
|
|
modifiers instead of the generated static table.
|
2007-04-25 14:52:29 -06:00
|
|
|
|
|
|
|
Compiling
|
|
|
|
---------
|
|
|
|
|
2019-10-18 11:05:45 -06:00
|
|
|
To set up meson:
|
2017-12-15 15:40:29 -07:00
|
|
|
|
|
|
|
meson builddir/
|
|
|
|
|
|
|
|
By default this will install into /usr/local, you can change your prefix
|
|
|
|
with --prefix=/usr (or `meson configure builddir/ -Dprefix=/usr` after
|
|
|
|
the initial meson setup).
|
|
|
|
|
|
|
|
Then use ninja to build and install:
|
|
|
|
|
|
|
|
ninja -C builddir/ install
|
|
|
|
|
|
|
|
If you are installing into a system location you will need to run install
|
|
|
|
separately, and as root.
|