dri ioctl32 problem on amd64/x86_64 on 2.6.8-rc2 and earlier
I have a working direct rendering mechanism in my 64-bit userland. However, 32-bit software running in a 32-bit chroot environment cannot operate with the 64-bit drm. I get the following error when executing the 32-bit glxinfo inside the chroot:
# /usr/X11R6/bin/glxinfo
name of display: :0.0
libGL error: failed to open DRM: Operation not permitted libGL error: reverting to (slow) indirect rendering
display: :0 screen: 0
direct rendering: No
This generates the following entry in kernel messages:
Jul 20 21:18:46 gordon ioctl32(glxinfo:12562): Unknown cmd fd(4)
cmd(c0086401){00} arg(bffff0f0) on /dev/dri/card0
Similarly for the 32-bit glxgears:
Jul 20 21:21:21 gordon ioctl32(glxgears:12567): Unknown cmd fd(4)
cmd(c0086401){00} arg(bfffeff0) on /dev/dri/card0
Kernels versions tested (all consistently produce the same error):
2.6.8-rc2
2.6.7-mm6
2.6.7-gentoo-r11
System hardware:
1x AMD Opteron 242
AMD 8151/8111 chipset
Radeon RV100 graphics card
Output of lspci -v regarding graphics card:
0000:02:00.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE] (prog-if 00 [VGA])
Subsystem: PC Partner Limited RV100 QY [Sapphire Radeon VE 7000]
Flags: bus master, stepping, 66Mhz, medium devsel, latency 64, IRQ 16 Memory at e0000000 (32-bit, prefetchable) [size=ff5c0000] I/O ports at b800 [size=256]
Memory at ff5f0000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at 00020000 [disabled]
Capabilities: [58] AGP version 2.0
Capabilities: [50] Power Management version 2
Output of scripts/ver_linux:
Linux gordon 2.6.8-rc2 #1 Tue Jul 20 20:37:41 BST 2004 x86_64 5 GNU/Linux
Gnu C 3.3.3 Gnu make 3.80 binutils 2.15.90.0.1.1 util-linux 2.12 mount 2.12 module-init-tools 3.0 e2fsprogs 1.35 Linux C Library 2.3.4 Dynamic linker (ldd) 2.3.4 Procps 3.2.1 Net-tools 1.60 Kbd 1.12 Sh-utils 5.2.1 Modules Loaded radeon eth1394 snd_seq_midi snd_seq_midi_event snd_seq
ohci1394 ieee1394 snd_pcm_oss snd_mixer_oss snd_cs46xx snd_rawmidi snd_seq_device snd_ac97_codec snd_pcm snd_timer snd snd_page_alloc budget budget_core dvb_core saa7146 ttpci_eeprom e1000
Please keep me CC'd in if more information is required.
--
Phil Stewart
Quoted 6 lines
I have a working direct rendering mechanism in my 64-bit userland. However, 32-bit software running in a 32-bit chroot environment cannot operate with the 64-bit drm. I get the following error when executing the 32-bit glxinfo inside the chroot:
the DRM has some major 64-bit issues that we need to break backwards compatibility we haven't simply be able to declare a time when the people who need to work on it can spare the amount of time needed together...
I think the plan is to fix the issues in the DRM CVS and try and push them to Linus in one big push which breaks all platforms together and we can have a flag day....
One remaining issue is what types to use in the headers used in both kernel/userspace, we don't want to have two separate headers (why should we?) so what types should we use ... surely someone has done this before..
Regards,
Dave.
[drm-maintainer]
Signature · 3 lines
David Airlie, Software Engineer http://www.skynet.ie/~airlied / airlied at skynet.ie pam_smb / Linux DECstation / Linux VAX / ILUG person