Announcement

Collapse
No announcement yet.

32bit programmes on a 64 bit system - how to do it?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 32bit programmes on a 64 bit system - how to do it?

    I'm running 64 bit Opensuse on a laptop with an R410 graphics card. I have Gallium running nicely in 64 bit mode

    OpenGL vendor string: X.Org R300 Project
    OpenGL renderer string: Gallium 0.4 on RV410
    OpenGL version string: 2.1 Mesa 7.9-devel

    Now I want to run a 32 bit programme (wine) in 3d mode. OpenSuse has a lib64 directory in which I have a 64 bit libGL and its friends. I also have a 32bit libGL and friends in a lib directory. So far so good I think. Wine uses the 32bit libGL in lib.

    The puzzle is the dri libraries. In lib64 there is a dri directory that I can point to the 64 bit radeong and r300g drivers. But there isn't a dri directory in the lib (32 bit) directory. So I am assuming that the 32 bit libGL uses the 64 bit radeong and r300g drivers (somehow). That would be fine if only it worked. When I call wine it calls GLX and is told that direct rendering is not available. It absolutely is available in 64 bit mode. Wine then also gets confused about pixel format and crashes.

    I would like to be sure that my X/Mesa/dri set up is correct and I worry about that set of 64 bit r300g/radeong drivers. Does a 32 bit programme need 32bit drivers or is a conversion done somewhere? Is the data flow from the client to libGL and then to the dri drivers - it does not seem to be but if not what is it.

    Any clues or thoughts gratefully received.

  • #2
    For a 32bit programm you need 32bit mesa, including drivers.
    If your distro doesn't provide you with a way to obtain 32bit-drivers you'll have to build them yourself. That's actually quite easy and only a few commands. Here's how I do it:
    Code:
    git clone git://anongit.freedesktop.org/git/mesa/mesa
    cd mesa
    ./autogen.sh --enable-32-bit --enable-gallium-radeon --disable-gallium-llvm --with-state-trackers=dri,glx,egl,vega --with-dri-drivers=r300,swrast
    make -j2
    cp lib/gallium/radeong_dri.so lib/gallium/r300_dri.so
    Now whenever you want to run a 32bit programm like wine just prepend LIBGL_DRIVERS_PATH=~/src/mesa32/lib/gallium/ LD_LIBRARY_PATH=~/src/mesa32/lib/ (adjust the path ofc) to your command.

    Comment


    • #3
      Wine works flawlessly on openSUSE. You have something completely messed up if it doesn't work out of the box.

      Comment


      • #4
        @Zhick, Thankyou - you provided the vital clues. I had already built the drivers but did not understand how to use them - LIBGL_DRIVERS_PATH was the magic word. Morrowind now runs beautifully - better than I have ever seen it using fglrx on the laptop or even on my desktop with an nvidia card under Windows.

        @RealNC - openSUSE does not supply gallium as part of the distribution and wine did not cope with 3d graphics on a ATI card before gallium. I'll give you that wine worked OK in 2d - though flawlessly is pushing it.

        Thank you also to the Mesa/Gallium Devs who made this possible and to the wine devs for the necessary changes in wine- today you have made me very happy.

        Comment

        Working...
        X