mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-01-04 22:40:19 +01:00
read-only mirror of https://gitlab.freedesktop.org/mesa/drm
In some cases, vblank interrupts may be disabled or otherwise broken. The kernel has a 3s timeout builtin to handle these cases, but the X server's SIGALM for cursor handling may interrupt vblank wait ioctls, causing libdrm to restart the ioctl, making the kernel's timeout useless. This change tracks time across ioctl restarts and returns EBUSY to the caller if the expected vblank sequence doesn't occur within 1s of the first call. Fixes fdo bz #18041, which is caused by a drmWaitVBlank hanging due to the corresponding pipe getting disabled (thus preventing further events from coming in). |
||
|---|---|---|
| bsd-core | ||
| libdrm | ||
| linux-core | ||
| scripts | ||
| shared-core | ||
| tests | ||
| .gitignore | ||
| autogen.sh | ||
| configure.ac | ||
| libdrm.pc.in | ||
| Makefile.am | ||
| 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 i915.ko). 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: 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.