Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 98474 - 32 bit applications and games can not use ATI opengl hardware acceration
Summary: 32 bit applications and games can not use ATI opengl hardware acceration
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: High minor (vote)
Assignee: X11 External Driver Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-07-09 09:22 UTC by Ben Farrell
Modified: 2006-12-01 05:32 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Farrell 2005-07-09 09:22:50 UTC
The 32bit game I am using, enemy territory can not find the correct libraries
for hardware acceration. I belive the problem I am seeing will effect all 32bit
applications that use OpenGL

Reproducible: Always
Steps to Reproduce:
1. lauch xterm
1. run 'et' command



Actual Results:  
 You are using software Mesa (no hardware acceleration)!   
 Driver DLL used: libGL.so.1
 If this is intentional, add
       "+set r_allowSoftwareGL 1"
 to the command line when starting the game.

Expected Results:  
game launches with hardware acceration :-)

I got around the problem by defining the variable LIBGL_DRIVERS_PATH

I have edited the script file /usr/games/bin/et and added a line:
"export LIBGL_DRIVERS_PATH=/usr/lib32/modules/dri" 

I got this workaround info from this fourm thread:
http://forums.gentoo.org/viewtopic-t-257085-view-next.html
Comment 1 Andy Dustman 2005-08-13 10:08:46 UTC
I see the same problem, and your fix works for me too.

Notes: amd64 causes >=app-emulation/emul-linux-x86-xlibs-1.0-r1 to be a RDEPEND.
However, the /emul libraries are very far down on the /etc/ld.so.conf list. I
tried running et with strace using this script:

#!/bin/sh
cd "/opt/enemy-territory"
#export LIBGL_DRIVERS_PATH="/usr/lib32/modules/dri"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:"
strace ./et.x86 "$@" 2>~/et.trace

Here is some partial output relating to libGL.so.1:

write(2, "...loading libGL.so.1: ", 23...loading libGL.so.1: ) = 23
open("tls/i686/sse2/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("tls/i686/libGL.so.1", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("tls/sse2/libGL.so.1", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("tls/libGL.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("i686/sse2/libGL.so.1", O_RDONLY)  = -1 ENOENT (No such file or directory)
open("i686/libGL.so.1", O_RDONLY)       = -1 ENOENT (No such file or directory)
open("sse2/libGL.so.1", O_RDONLY)       = -1 ENOENT (No such file or directory)
open("libGL.so.1", O_RDONLY)            = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 7
fstat64(0x7, 0xffffbe54)                = 0
mmap2(NULL, 61838, PROT_READ, MAP_PRIVATE, 7, 0) = 0x5c0db000
close(7)                                = 0
open("/usr/lib32/opengl/ati/lib/libGL.so.1", O_RDONLY) = 7
read(7, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\367"..., 512) = 512
fstat64(0x7, 0xffffbec8)                = 0
mmap2(NULL, 703284, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 7, 0) =
0x5c0eb000
mmap2(0x5c18f000, 20480, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 7, 0xa4) = 0x5c18f000
mmap2(0x5c194000, 11060, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x5c194000
close(7)                                = 0

Note that it DOES file the correct ATI OpenGL libraries. However, it still
reports that Mesa GLX Indirect is used.

Anyway, setting LIBGL_DRIVERS_PATH=/usr/lib32/modules/dri does solve the
immediate problems, but this is not neceessary for locally-built OpenGL apps,
such as various xscreensaver modules and tuxracer.

Another solution is to modify /etc/env.d/09ati to include the line:

LIBGL_DRIVERS_PATH=/usr/lib64/modules/dri:/usr/lib32/modules/dri

and then run env-update and source /etc/profile (or logout, reboot, etc.)
Comment 2 Andy Dustman 2005-09-14 12:39:48 UTC
It appears 8.14.13-r5 addresses this issue. However the digests are currently
botched. See bug #105927.
Comment 3 Andy Dustman 2006-01-19 07:51:24 UTC
I think the current ebuilds have had this fixed for awhile as they have multilib support and set LIBGL_DRIVERS_PATH accordingly.
Comment 4 Ben Farrell 2006-01-21 10:58:00 UTC
I don't have gentoo install anymore, so I can not check this this is fixed.

Andy can you check this is fixed, so this bug can be closed ??
Comment 5 Andy Dustman 2006-01-21 12:35:29 UTC
Looks fixed to me. There would be many screams if it were not.
Comment 6 Jakub Moc (RETIRED) gentoo-dev 2006-12-01 05:32:58 UTC
Closing.