Go to file
Ander Conselvan de Oliveira 890d43a6a8 Add CRTC ID to vblank event
When using the atomic API, one request can span multiple CRTCs, however
one event is generated per CRTC. As we cannot disambiguate the CRTC with
user data (since we only have one piece of user data to pass in), newer
kernels can include the CRTC ID in the page flip event.

Add a new vfunc to dispatch vblank events carrying a CRTC ID to clients
who negotiate a higher interface version.

[daniels: Rebased, include new cap, call page_flip_handler if it is set
          but page_flip_handler2 isn't even on newer contexts, write a
	  commit message.]

v2: Split into separate commit.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@intel.com>
2017-04-06 20:32:43 +01:00
amdgpu amdgpu: add amdgpu_bo_va_op_raw to the symbol check 2017-04-03 17:46:06 +01:00
etnaviv etnaviv: remove struct etna_specs 2017-04-01 17:12:02 +02:00
exynos exynos/fimg2d: remove unused-function build warning 2017-04-03 17:46:06 +01:00
freedreno freedreno: fix device close issues 2017-03-23 15:22:30 -04:00
include/drm Headers: Sync drm{,_mode}.h with the kernel 2017-04-06 20:32:43 +01:00
intel intel: Add handle to hashtable before freeing along an error path 2017-03-08 21:03:22 +00:00
libkms android: introduce Android.common.mk to reduce boilerplate 2017-01-27 15:48:16 +00:00
m4 build: Update autotools configuration 2011-03-21 13:43:43 +00:00
man man: fix bug report instructions (third time's the charm) 2017-04-04 18:07:29 +01:00
nouveau android: introduce Android.common.mk to reduce boilerplate 2017-01-27 15:48:16 +00:00
omap omap: Initialize DMA BUF file descriptor to -1 2015-08-26 15:15:54 +02:00
radeon android: introduce Android.common.mk to reduce boilerplate 2017-01-27 15:48:16 +00:00
tegra tegra: update symbol-check 2017-04-03 17:51:13 +01:00
tests tests/etnaviv: link against libdrm 2017-04-03 17:57:22 +01:00
vc4 vc4: Add headers and .pc files for VC4 userspace development. 2016-02-03 11:29:52 -08:00
.editorconfig Add .editorconfig 2017-01-12 22:40:59 +01:00
.gitignore libdrm: add etnaviv tests 2016-09-17 15:05:33 +02:00
Android.common.mk Android: disable pointer-arith and enum-conversion 2017-04-03 17:46:06 +01:00
Android.mk Android: fix building of modetest and proptest 2017-04-03 17:46:06 +01:00
CleanSpec.mk tests: Split helpers into library 2015-12-18 17:43:40 +00:00
Makefile.am automake: make the build less chatty 2016-11-22 13:54:23 +00:00
Makefile.sources add libsync.h helper 2016-11-05 10:16:46 -04:00
README README: Fix grammar 2017-01-16 14:54:45 +00:00
RELEASING Simplify the RELEASING steps based on current release.sh. 2016-07-24 18:36:34 -07:00
autogen.sh autogen.sh: run git commands in the (potentially) git dir 2017-02-28 13:34:26 +00:00
configure.ac configure.ac: pthread-stubs is not a thing on GNU/kFreeBSD 2017-04-05 18:11:25 +01: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
libsync.h add libsync.h helper 2016-11-05 10:16:46 -04:00
util_double_list.h list: fix an issue with android build using clang 2016-08-02 16:22:45 -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: remove memory leaks in drmGetBusid/drmGetReservedContextList 2017-04-03 17:46:06 +01:00
xf86drm.h Add CRTC ID to vblank event 2017-04-06 20:32:43 +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 Add CRTC ID to vblank event 2017-04-06 20:32:43 +01:00
xf86drmMode.h xf86drmMode.h: Add DisplayPort MST and DPI encoders/connectors 2017-01-18 08:34:49 +01: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 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  is  a  standard  autotools  package 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 installing into a system location, you will need to be root
to perform the install step.