Results 1 to 3 of 3

Thread: On 64bit ubuntu only 64bit 3D working, 32bits fail

  1. #1
    Join Date
    Aug 2007
    Posts
    32

    Default On 64bit ubuntu only 64bit 3D working, 32bits fail

    Hello,
    i've found a very nasty problem I'm running 64bit Kubuntu and fglrx 8.7.
    Somewhere during the path of going from kernel 2.6.25 to 2.6.26 and from fglrx 8.5 to 8.6 and 8.7 32bit OpenGL apps (googleearth, ETQW, 32bit fglrxinfo) stopped working..

    This is the 64bit fglrxinfo;
    Code:
    display: :0.0  screen: 0
    OpenGL vendor string: ATI Technologies Inc.
    OpenGL renderer string: ATI Mobility Radeon HD 3650
    OpenGL version string: 2.1.7769 Release
    This is the output from 32bit fglrxinfo:
    Code:
    ./fglrxd/new/23/arch/x86/usr/X11R6/bin$ ./fglrxinfo
    libGL: XF86DRIGetClientDriverName: 8.51.3 fglrx (screen 0)
    libGL: OpenDriver: trying /usr/lib/dri/fglrx_dri.so
    libGL error: dlopen /usr/lib/dri/fglrx_dri.so failed (/usr/lib/dri/fglrx_dri.so: wrong ELF class: ELFCLASS64)
    libGL error: unable to load driver: fglrx_dri.so
    display: :0.0  screen: 0
    OpenGL vendor string: Mesa project: www.mesa3d.org
    OpenGL renderer string: Mesa GLX Indirect
    OpenGL version string: 1.4 (2.1 Mesa 7.0.3-rc2)
    
    Segmentation fault
    ./fglrxd/new/23/arch/x86/usr/X11R6/bin$ ldd fglrxinfo
            linux-gate.so.1 =>  (0xffffe000)
            libGL.so.1 => /usr/lib32/libGL.so.1 (0xf7e8f000)
            libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7da8000)
            libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7d99000)
            libc.so.6 => /lib32/libc.so.6 (0xf7c4a000)
            libpthread.so.0 => /lib32/libpthread.so.0 (0xf7c32000)
            libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7c27000)
            libxcb-xlib.so.0 => /usr/lib32/libxcb-xlib.so.0 (0xf7c25000)
            libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7c0d000)
            libdl.so.2 => /lib32/libdl.so.2 (0xf7c08000)
            libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7c05000)
            /lib/ld-linux.so.2 (0xf7f2c000)
            libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7c00000)
    Also, ETQW starts, but is running v-e-r-y slowly, maybe because it's running in Software rendering mode, but somehow it seems to think everything is ok?

    This is log from ETQW
    Code:
    prg/et2/base/zpaklibGL: XF86DRIGetClientDriverName: 8.51.3 fglrx (screen 0)
    libGL: OpenDriver: trying /usr/lib/dri/fglrx_dri.so
    libGL error: dlopen /usr/lib/dri/fglrx_dri.so failed (/usr/lib/dri/fglrx_dri.so: wrong ELF class: ELFCLASS64)
    libGL error: unable to load driver: fglrx_dri.so
    ... later ..
    WARNING: GL_PROGRAM_ERROR_STRING_ARB: (null)
    error at 336:
    ] };    # 74 joints
                    PARAM   _mvp[4] = { state.matrix.mvp };
    
                    ADDRESS _A0;
                    TEMP    _R0, _R1, _R2;
    
                    # accumulate weighted joint matrices
                    ARL             _A0.x, _jointIndices.x;
                    MUL             _R0, _joints[_A0.x+0], _jointWeights.x;
                    MUL             _R1, _joints[_A0.x+1], _jointWeights.x;
                    MUL             _R2, _joints[_A0.x+2], _jointWeights.x;
                    ARL             _A0.x, _jointIndices.y;
                    MAD             _R0, _joints[_A0.x+0], _jointWeights.y, _R0;
                    MAD             _R1, _joints[_A0.x+1], _jointWeights.y, _R1;
                    MAD             _R2, _joints[_A0.x+2], _jointWeights.y, _R2;
                    ARL             _A0.x, _jointIndices.z;
    From the log it seems, that somehow libGL is tryig to load and use 64bit fglrx_dri.so.

    There's /usr/lib32/libGL.so.1.2 and /usr/lib32/dri/fglrx_dri.so with the following sizes:
    483408 2008-07-21 23:48 /usr/lib32/libGL.so.1.2
    15762196 2008-07-21 23:48 /usr/lib32/dri/fglrx_dri.so

    googleearth (32bit wine app) is totally freaked and currently causes X to crash. Previously it worked in 3D(like ETWQ did), then it was running in software OpenGL and now it's crashing

  2. #2
    Join Date
    Aug 2007
    Posts
    32

    Default

    Found some more information about the issue from here http://www.thinkwiki.org/wiki/Problems_with_fglrx


    Code:
    fglrxd/new/23/arch/x86/usr/X11R6/bin$ echo $LIBGL_DRIVERS_PATH
    /usr/lib/dri
    
    fglrxd/new/23/arch/x86/usr/X11R6/bin$ export LIBGL_DRIVERS_PATH=/usr/lib/dri:/usr/lib32/dri/
    
    fglrxd/new/23/arch/x86/usr/X11R6/bin$ ./fglrxinfo
    libGL: XF86DRIGetClientDriverName: 8.51.3 fglrx (screen 0)
    libGL: OpenDriver: trying /usr/lib/dri/fglrx_dri.so
    libGL error: dlopen /usr/lib/dri/fglrx_dri.so failed (/usr/lib/dri/fglrx_dri.so: wrong ELF class: ELFCLASS64)
    libGL: OpenDriver: trying /usr/lib32/dri//fglrx_dri.so
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 7, (OK)
    drmOpenByBusid: Searching for BusID PCI:1:0:0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 7, (OK)
    drmOpenByBusid: drmOpenMinor returns 7
    drmOpenByBusid: drmGetBusid reports PCI:1:0:0
    display: :0.0  screen: 0
    OpenGL vendor string: ATI Technologies Inc.
    OpenGL renderer string: ATI Mobility Radeon HD 3650
    OpenGL version string: 2.1.7769 Release
    Now I'm just wondering where's the environment variable LIBGL_DRIVERS_PATH setup and who's responsible for configuring it.

  3. #3
    Join Date
    Oct 2007
    Posts
    15

    Default

    I've found that the .run doesn't generate 32bit packages under debian, and now I use the debian svn repository for this.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •