Go to file
Eric Anholt 0ec768e67a intel: Add more intermediate sizes of cache buckets between powers of 2.
We had two cases recently where the rounding to powers of two hurt
badly: 4:2:0 YUV HD video frames would round up from 2.2MB to 4MB, and
Urban Terror was hitting aperture size limitations.  For UT, this is
because mipmap trees for power of two texture sizes will land right in
the middle between two cache buckets.

By giving a few more sizes between powers of two, Urban Terror on my
945 ends up consuming 207MB of GEM objects instead of 272MB, and HD
video decode on Ironlake goes from 99MB to 75MB.

cairo-perf-diff of the benchmarks for gl and xlib shows a 1.09x and
1.06x speedup and a 1.07x, 1.08x, and 1.11x slowdown.  From this, I
think this patch was really a no-op in terms of performance for these
CPU-bound workloads.
2010-06-10 08:56:56 -07:00
include intel: Add support for kernel multi-ringbuffer API. 2010-06-06 15:50:38 -07:00
intel intel: Add more intermediate sizes of cache buckets between powers of 2. 2010-06-10 08:56:56 -07:00
libkms libkms: Fix include paths 2010-06-01 19:23:42 +01:00
nouveau nouveau: stop shipping nouveau_class.h 2010-04-09 20:38:34 +10:00
radeon radeon: use the const qualifier in radeon_cs_write_table 2010-04-26 20:09:34 +02:00
tests Only build tests in make check 2010-05-12 13:55:54 -04:00
.gitignore add vbltest to .gitignore 2010-06-02 18:27:24 -07: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 Enable silent automake rules. 2010-05-26 12:10:39 -07:00
libdrm.pc.in Revert "Fix pkgconfig includes for /usr/include/drm" 2010-04-09 16:33:38 -04:00
libdrm_lists.h Move libdrm/ up one level 2009-11-17 11:15:06 -05:00
xf86atomic.h Correct the Solaris definitions of atomic_add & atomic_dec 2010-04-16 17:37:58 -07: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.