http://bugs.winehq.org/show_bug.cgi?id=20181
--- Comment #38 from infobox.oleg@wo.cz 2009-11-19 02:05:13 --- (In reply to comment #35)
if you've built the i965_drv.so in a 32 bit chroot, and you move it to your
64bit env, what happens?
I did mount -o bind /chroot32/usr/lib /usr/lib32. I saw i965 started loading, but loading crashed, because dynamic library loaded found 64bit library for 32bit i965 -> something like "bad ELF" error.
I have the emul 10. installed, and I now more *rarely* get the
GLXBadDrawable error (still getting it one in six tries) but still have the "Broken Kaleidescope" effect.
Loading the game and getting the kaleidescope effect, I can find nowhere loaded /usr/lib32/dri/i965_dri.so, rather it seems to load
/usr/lib32/opengl/xorg-x11/lib/libGL.so.1.2
See previous post please, what does LIBGL_DEBUG=verbose show? Try it with 64bit glxinfo, so you see what to expect.
and in my case:
equery b /usr/lib32/opengl/xorg-x11/lib/libGL.so.1.2 [ Searching for file(s) /usr/lib32/opengl/xorg-x11/lib/libGL.so.1.2 in *... ] app-emulation/emul-linux-x86-xlibs-10.1 (/usr/lib32/opengl/xorg-x11/lib/libGL.so.1.2)
I somehow believe that we're chasing the wrong library here -- we need to look at libGL.so --- I believe that it talks api to api to the driver rather than loading the 32bit driver and talking to it.
I think we are chasing the right library. My output for LIBGL_DEBUG in 32chroot shows i965 loading. But when I start 32bit glxinfo in 64bit environment, I don't see any library loading. You may still be right, because libGL.so may be used to load i965. But if libGL doesn't find i965, libGL.so is still loaded.
Oleg