mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-04-29 06:00:40 +02:00
read-only mirror of https://gitlab.freedesktop.org/mesa/drm
The existing format modifier definitions were merged prematurely, and
recent work has unveiled that the definitions are suboptimal in several
ways:
- The format specifiers, except for one, are not Tegra specific, but
the names don't reflect that.
- The number space is split into two, reserving 32 bits for some
"parameter" which most of the modifiers are not going to have.
- Symbolic names for the modifiers are not using the standard
DRM_FORMAT_MOD_* prefix, which makes them awkward to use.
- The vendor prefix NV is somewhat ambiguous.
Fortunately, nobody's started using these modifiers, so we can still fix
the above issues. Do so by using the standard prefix. Also, remove TEGRA
from the name of those modifiers that exist on NVIDIA GPUs as well. In
case of the block linear modifiers, make the "parameter" smaller (4
bits, though only 6 values are valid) and don't let that leak into any
of the other modifiers.
Finally, also use the more canonical NVIDIA instead of the ambiguous NV
prefix.
This is based on commit 5843f4e02fbe86a59981e35adc6cabebee46fdc0 from
Linux v4.16-rc1 and also updates modetest to use the new defines.
Acked-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
|
||
|---|---|---|
| amdgpu | ||
| android | ||
| data | ||
| etnaviv | ||
| exynos | ||
| freedreno | ||
| include/drm | ||
| intel | ||
| libkms | ||
| m4 | ||
| man | ||
| nouveau | ||
| omap | ||
| radeon | ||
| tegra | ||
| tests | ||
| vc4 | ||
| .editorconfig | ||
| .gitignore | ||
| Android.common.mk | ||
| Android.mk | ||
| autogen.sh | ||
| CleanSpec.mk | ||
| configure.ac | ||
| libdrm.pc.in | ||
| libdrm_lists.h | ||
| libdrm_macros.h | ||
| libsync.h | ||
| Makefile.am | ||
| Makefile.sources | ||
| meson.build | ||
| meson_options.txt | ||
| README | ||
| RELEASING | ||
| util_double_list.h | ||
| util_math.h | ||
| xf86atomic.h | ||
| xf86drm.c | ||
| xf86drm.h | ||
| xf86drmHash.c | ||
| xf86drmHash.h | ||
| xf86drmMode.c | ||
| xf86drmMode.h | ||
| xf86drmRandom.c | ||
| xf86drmRandom.h | ||
| xf86drmSL.c | ||
libdrm - userspace library for drm
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. libdrm is a low-level library, typically used by
graphics drivers such as the Mesa DRI drivers, the X drivers, libva
and similar projects. New functionality in the kernel DRM drivers
typically requires a new libdrm, but a new libdrm will always work
with an older kernel.
Compiling
---------
libdrm has two build systems, a legacy autotools build system, and a newer
meson build system. The meson build system is much faster, and offers a
slightly different interface, but otherwise provides an equivalent feature set.
To use it:
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.
Alternatively you can invoke autotools configure:
./configure
By default, libdrm will install into the /usr/local/ prefix. If you
want to install this DRM to replace your system copy, pass
--prefix=/usr and --exec-prefix=/ to configure. If you are building
libdrm from a git checkout, you first need to run the autogen.sh
script. You can pass any options to autogen.sh that you would other
wise pass to configure, or you can just re-run configure with the
options you need once autogen.sh finishes.
Next step is to build libdrm:
make
and once make finishes successfully, install the package using
make install
If you are installing into a system location, you will need to be root
to perform the install step.