2009-11-20 17:08:28 -05:00
|
|
|
libdrm - userspace library for drm
|
2018-11-07 16:15:32 +00:00
|
|
|
----------------------------------
|
2005-07-10 22:42:42 +00:00
|
|
|
|
2018-11-07 16:15:32 +00: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 13:08:05 +02: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 18:05:45 +01:00
|
|
|
To set up meson:
|
2017-12-15 14:40:29 -08: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.
|
2022-11-02 15:48:07 +01:00
|
|
|
|
|
|
|
|
AMDGPU ASIC table file
|
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
|
|
The AMDGPU driver requires the `amdgpu.ids` file. It is usually located at
|
2025-11-17 16:13:02 +01:00
|
|
|
`$PREFIX/share/libdrm`, but it is possible to specify a set of alternative
|
2025-12-03 10:53:38 +01:00
|
|
|
paths at runtime by setting the `AMDGPU_ASIC_ID_TABLE_PATHS` environment
|
2025-11-17 16:13:02 +01:00
|
|
|
variable with one or more colon-separated paths where to search for the
|
|
|
|
|
`amdgpu.ids` file.
|
2025-12-09 10:36:14 +01:00
|
|
|
|
|
|
|
|
For this option to be available, the C library must support secure_getenv()
|
|
|
|
|
function. In systems without it (like NetBSD), this option won't be available.
|