Go to file
Pauli Nieminen 966c9907c0 libdrm_radeon: Optimize cs_gem_reloc to do less looping.
bo->referenced_in_cs is checked if bo is already in cs. Adding and removing
reference in bo is done with atomic operations to allow parallel access to a
bo from multiple contexts.

cs->id generation code quarentees there is not duplicated ids which limits
number of cs->ids to 32. If there is more cs objects rest will get id 0.

V2:
 - Fix configure to check for atomics operations if libdrm_radeon is only selected.
 - Make atomic operations private to libdrm.

This optimization decreases cs_write_reloc share of torcs profiling from 4.3%
to 2.6%.

Tested-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
2010-03-17 12:42:21 +02:00
include libdrm/intel: execbuf2 support 2010-03-02 10:10:50 -08:00
intel libdrm: Move intel_atomic.h to libdrm core for sharing. 2010-03-17 11:48:00 +02:00
libkms libkms/nouveau: Add support 2010-02-28 00:25:22 +00:00
nouveau nouveau: Fix up the stride of NV20TCL_LIGHT_BACK_*. 2010-03-13 18:57:12 +01:00
radeon libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
tests tests/modetest: Don't get_props on a connector after freeing it. 2010-02-28 00:25:22 +00:00
.gitignore tests: Add a very small libkms test 2010-01-08 15:34:44 +00:00
Makefile.am libdrm: Move intel_atomic.h to libdrm core for sharing. 2010-03-17 11:48:00 +02:00
README Update README 2009-11-20 17:08:28 -05:00
RELEASING Add RELEASING to document the release process 2009-12-03 17:50:37 -05:00
autogen.sh update autogen from xserver tree 2005-09-12 06:21:24 +00:00
configure.ac libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
libdrm.pc.in Better pkgconfig-fu: -ldrm in Libs: 2005-10-13 21:03:31 +00:00
libdrm_lists.h Move libdrm/ up one level 2009-11-17 11:15:06 -05:00
xf86atomic.h libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
xf86drm.c Be less chatty in drmSetMaster/drmDropMaster 2009-12-15 08:44:40 -05:00
xf86drm.h Bump event context structure version for page flipping 2009-12-03 14:27:08 -08:00
xf86drmHash.c Move libdrm/ up one level 2009-11-17 11:15:06 -05:00
xf86drmMode.c modes: Retry GETCONNECTOR if a hotplug event occurs between the two ioctls 2010-01-06 23:46:14 +00:00
xf86drmMode.h tests: vrefresh is actually not * 1000. 2010-02-28 00:25:22 +00:00
xf86drmRandom.c Move libdrm/ up one level 2009-11-17 11:15:06 -05:00
xf86drmSL.c Tidy up compile warnings by cleaning up types. 2010-02-04 19:45:10 -05:00
xf86mm.h Move libdrm/ up one level 2009-11-17 11:15:06 -05: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.