| Newsgroups |
gmane.comp.video.dri.user |
| Message-ID |
<[email protected]> |
Hey,
When I tried to find out the reason why my X becomes very slow after
upgrading to X server-1.3, I found the following error messages and the
code that generate them. The direct reason is an obvious hard coded
version check. It seems that DRI radeon driver developers ignored the
kernel DRM version.
System environment:
Linux 2.6.20-gentoo-r8
X server xorg-server-1.3.0.0-r6
ERROR messages:
=============Xorg.log================
....
(EE) RADEON(0): [dri] RADEONDRIGetVersion failed because of a version
mismatch.
[dri] radeon.o kernel module version is 8.50.3 but version 1.17.0 or
newer is needed.
[dri] Disabling DRI.
...
=====================================
CODE generating the error:
==============src/radeon_drv.c==========
Bool RADEONDRIGetVersion(ScrnInfoPtr pScrn)
{
....
/* Now check if we qualify */
if (info->ChipFamily >= CHIP_FAMILY_R300) {
req_minor = 17;
req_patch = 0;
} else if (info->IsIGP) {
req_minor = 10;
req_patch = 0;
} else { /* Many problems have been reported with 1.7 in the 2.4
kernel */
req_minor = 8;
req_patch = 0;
}
/* We don't, bummer ! */
if (info->pKernelDRMVersion->version_major != 1 ||
info->pKernelDRMVersion->version_minor < req_minor ||
(info->pKernelDRMVersion->version_minor == req_minor &&
info->pKernelDRMVersion->version_patchlevel < req_patch)) {
/* Incompatible drm version */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"[dri] RADEONDRIGetVersion failed because of a version "
"mismatch.\n"
"[dri] radeon.o kernel module version is %d.%d.%d "
"but version 1.%d.%d or newer is needed.\n"
"[dri] Disabling DRI.\n",
info->pKernelDRMVersion->version_major,
info->pKernelDRMVersion->version_minor,
info->pKernelDRMVersion->version_patchlevel,
req_minor,
req_patch);
drmFreeVersion(info->pKernelDRMVersion);
info->pKernelDRMVersion = NULL;
return FALSE;
}
}
=======================================
Obviously, the developers expect a kernel DRM version of 1.a.b-c, where
a >= 17 and (b <> 0 or c >=0). I have no idea how the DRI is versioned,
but this is strange to me. In my case, the kernel module version is
8.50.3, which is not 1.a.b.-c. I don't know how kernel DRM version is
numbered either, but it had worked for a couple of years until last week
when I upgraded my X.
The direct result is that X uses a lot of CPU time when playing flash
video, resulting unnecessary slow down of the system.
The code suggests that either the comparison check or the DRI version or
the kernel version of DRM should be changed to correctly enable DRI
service.
Thanks.
Lu
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
--