Pegasos II + Radeon 9000: No DRI and wrong colours for OpenGL

Michel Dänzer michel at daenzer.net
Mon Jun 15 07:41:57 PDT 2009


On Sun, 2009-06-14 at 20:48 +0200, Johannes Geiss wrote:
> 
> I did a little investigation of this problem and saw this:
> 
> xorg-server-1.5.3-r6 has a library called libglx.so. This library uses 
> 
> 	drmOpenOnce(NULL, "pci:0001:01:08.0", ...)
> 
> to get the graphics card.
> 
> lspci reports
> 
> 	0001:01:08.0 VGA compatible controller:
> 	ATI Technologies Inc Radeon RV250 If [Radeon 9000] (rev 01)
> 
> So the PCI Bus ID seems to be correct.
> 
> libdrm-2.4.5 has the function drmOpenOnce(). This function goes down to
> drmOpen(NULL, "pci:0001:01:08.0") and
> drmOpenByBusid("pci:0001:01:08.0").
> 
> Now drmGetBusid(fd) is called and returns "pci:0000:01:08.0". Which is
> wrong, because it differs from the original PCI Bus ID. So my graphics
> card will not be used with hardware accelerated OpenGL.
> 
> drmGetBusid() calls the kernel module drm via IOCTL
> DRM_IOCTL_GET_UNIQUE. (see file drm_ioc32.c). So is it a bug in the
> kernel?

Yes, due to the traditional inability of userspace to deal with PCI
domains != 0, the kernel DRM macro drm_get_pci_domain() in drmP.h is
still hardcoded to 0. This needs to be fixed now; the problem is that
just fixing the macro would break old userspace, a proper fix will need
to involve DRM userspace interface versioning.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer



More information about the xorg mailing list