Go to file
Jesse Barnes e2d7dfb61a libdrm/intel: support GTT maps correctly
libdrm has some support for GTT mapping already, but there are bugs
with it (no surprise since it hasn't been used much).

In fixing 20803, I found that sharing bo_gem->virtual was a bad idea,
since a previously mapped object might not end up getting GTT mapped,
leading to corruption.  So this patch splits the fields according to
use, taking care to unmap both at free time (but preserving the map
caching).

There's still a risk we might run out of mappings (there's a sysctl
tunable for max number of mappings per process, defaulted to 64k or so
it looks like) but at least GTT maps will work with these changes (and
some others for fixing PAT breakage in the kernel).

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-03-26 16:43:00 -07:00
bsd-core FreeBSD: Set up the nouveau build infrastructure 2009-03-16 01:17:00 -05:00
libdrm libdrm/intel: support GTT maps correctly 2009-03-26 16:43:00 -07:00
linux-core nouveau: add linux compat defines for PCI config access, use them for nvidia IGPs 2009-03-25 02:50:34 +00:00
scripts drm: add create gpu tree script 2008-10-07 04:07:40 +10:00
shared-core nouveau: plug drm fifo ioremap leak (#14941) 2009-03-25 02:50:34 +00:00
tests modetest: Print names of properties. 2009-02-23 15:10:30 -05:00
.gitignore Add libdrm_intel.pc by popular demand. 2009-02-23 13:30:44 -08:00
Makefile.am Add libdrm_intel.pc by popular demand. 2009-02-23 13:30:44 -08:00
README Clean up README for the current state of kernel module affairs. 2009-01-27 18:00:45 -08:00
autogen.sh update autogen from xserver tree 2005-09-12 06:21:24 +00:00
configure.ac Add libdrm_intel.pc by popular demand. 2009-02-23 13:30:44 -08:00
libdrm.pc.in Better pkgconfig-fu: -ldrm in Libs: 2005-10-13 21:03:31 +00:00
libdrm_intel.pc.in Add libdrm_intel.pc by popular demand. 2009-02-23 13:30:44 -08:00

README

DRM README file


There are two main parts to this package: the DRM client library/interface
(libdrm.so) and kernel/hardware-specific device modules (such as radeon.ko).
The kernel device modules are not shipped with libdrm releases and should only
be built from the git tree by developers and bleeding-edge testers of
non-Intel hardware.  The Intel kernel modules are developed in the Linux
kernel tree.


Compiling
---------

By default, libdrm and the DRM header files will install into /usr/local/.
If you want to install this DRM to replace your system copy, say:

	./configure --prefix=/usr --exec-prefix=/

Then,
	make install


To build the device-specific kernel modules from the git tree:

	cd linux-core/
	make
	cp *.ko /lib/modules/VERSION/kernel/drivers/char/drm/
	   (where VERSION is your kernel version: uname -f)

Or,
	cd bsd-core/
	make
	copy the kernel modules to the appropriate place



Tips & Trouble-shooting
-----------------------

1. You'll need kernel sources.  If using Fedora Core 5, for example, you may
   need to install RPMs such as:

	kernel-smp-devel-2.6.15-1.2054_FC5.i686.rpm
	kernel-devel-2.6.15-1.2054_FC5.i686.rpm
	etc.


2. You may need to make a symlink from /lib/modules/VERSION/build to your
   kernel sources in /usr/src/kernels/VERSION (where version is `uname -r`):

	cd /lib/modules/VERSION
	ln -s /usr/src/kernels/VERSION build


3. If you've build the kernel modules but they won't load because of an
   error like this:

	$ /sbin/modprobe drm
	FATAL: Error inserting drm (/lib/modules/2.6.15-1.2054_FC5smp/kernel/drivers/char/drm/drm.ko): Invalid module format

   And 'dmesg|tail' says:

	drm: disagrees about version of symbol struct_module 

   Try recompiling your drm modules without the Module.symvers file.
   That is rm the /usr/src/kernels/2.6.15-1.2054_FC5-smp-i686/Module.symvers
   file (or rename it).  Then do a 'make clean' before rebuilding your drm
   modules.