Go to file
Ben Skeggs f6b1b5b7c9 nouveau: add interfaces to query information about supported classes
This will expose functionality supported by newer kernel interfaces.

Current userspace uses the chipset to determine which classes are likely
exposed, which generally works pretty well, but isn't as flexible as it
could be.

Unfortunately, the G98:GF100 video code in Mesa is still relying on the
kernel exposing incorrect vdec classes on some chipsets.  The ABI16
kernel interfaces have a workaround for this in place, but that will no
longer be available once libdrm supports NVIF.

To prevent a regression when NVIF support is added, if there's no kernel
support for NVIF, libdrm will magic up a class list containing correct
vdec classes anyway instead of failing with -ENODEV.

v2.
- add description of abi16/vdec workaround
- add description of sclass/mclass
- leave client-provided pointer unmodified on abi16_sclass() failure

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2015-12-22 13:22:14 +10:00
amdgpu amdgpu: Make amdgpu_cs_calculate_timeout() return something sensible on error 2015-11-20 19:21:48 -05:00
exynos exynos: bump version number 2015-12-18 17:42:54 +00:00
freedreno freedreno: debug msg cleanup 2015-09-19 12:12:27 -04:00
include/drm nouveau: import and install a selection of nvif headers from the kernel 2015-12-22 13:21:05 +10:00
intel intel: Add drm_intel_bo_set_softpin_offset to intel-symbol-check 2015-12-14 11:39:19 -08:00
libkms libkms: use static const for good measure 2015-09-04 21:39:06 +01:00
m4 build: Update autotools configuration 2011-03-21 13:43:43 +00:00
man man: remove .man_fixup workaround 2015-07-29 18:04:15 +01:00
nouveau nouveau: add interfaces to query information about supported classes 2015-12-22 13:22:14 +10:00
omap omap: Initialize DMA BUF file descriptor to -1 2015-08-26 15:15:54 +02:00
radeon radeon: Handle surface offsets exceeding 32 bits correctly 2015-11-10 18:06:57 +09:00
tegra drm: remove drm_public macro 2015-04-28 11:19:15 +01:00
tests tests: remove missleading comments 2015-12-18 17:44:27 +00:00
.gitignore tests/exynos: add fimg2d event test 2015-12-18 17:42:54 +00:00
Android.mk android: set the HAVE_VISIBILITY define 2015-04-29 17:29:37 +00:00
CleanSpec.mk tests: Split helpers into library 2015-12-18 17:43:40 +00:00
Makefile.am automake: set --enable-valgrind during make distcheck 2015-09-21 17:32:03 +01:00
Makefile.sources drm: add libdrm_amdgpu (v7) 2015-08-05 13:47:48 -04:00
README Update README 2009-11-20 17:08:28 -05:00
RELEASING RELEASING: Fix annouce typo 2015-03-20 15:55:23 +00:00
autogen.sh autogen.sh: handle out-of-tree invokation 2015-03-17 22:35:51 +00:00
configure.ac tests: Add libkms-test library 2015-12-18 17:44:05 +00:00
libdrm.pc.in Revert "Fix pkgconfig includes for /usr/include/drm" 2010-04-09 16:33:38 -04:00
libdrm_lists.h lists: add nicer+unsafe foreach, and list join macros 2012-04-14 02:47:04 +10:00
libdrm_macros.h drm: remove drm_public macro 2015-04-28 11:19:15 +01:00
util_double_list.h drm: consolidate common list implementations (v2) 2015-08-05 13:47:48 -04:00
util_math.h util_math: add MAX3 macro 2015-09-21 17:42:51 +01:00
xf86atomic.h Fix SunOS/NetBSD atomic macro 2015-09-21 17:43:14 +01:00
xf86drm.c xf86drm: Handle unrecognized subsystems safely in drmGetDevice[s]() 2015-10-20 18:45:23 +01:00
xf86drm.h xf86drm: add drm{Get,Free}Device 2015-09-21 17:43:08 +01:00
xf86drmHash.c drm: use correct printf modifiers 2015-04-05 15:33:33 +01:00
xf86drmHash.h tests/hash: extract test out of xf86drmHash.c 2015-04-05 15:19:42 +01:00
xf86drmMode.c xf86drmMode: smoke-test the atomic API 2015-09-21 17:32:03 +01:00
xf86drmMode.h remove usage of 'c_plusplus' preprocessor macro 2015-08-10 11:25:39 +03:00
xf86drmRandom.c drm: replace HASH_DEBUG with DEBUG 2015-04-05 15:33:33 +01:00
xf86drmRandom.h tests/random: extract test out of xf86drmRandom.c 2015-04-05 15:33:33 +01:00
xf86drmSL.c drm: replace HASH_DEBUG with DEBUG 2015-04-05 15:33:33 +01:00

README

libdrm - userspace library for drm

This  is libdrm,  a userspace  library for  accessing the  DRM, direct
rendering  manager, on  Linux,  BSD and  other  operating systes  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  is  a  standard  autotools  packages and  follows  the  normal
configure, build  and install steps.   The first step is  to configure
the package, which is done by running the configure shell script:

	./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 install into a system location, you will need to be root to
perform the install step.