I've been frustrated that I couldn't use fglrx on my FC7 64-bit box, so I whipped out the trusty disassembler and patched out what I believe is the buggy code.
It works for me so far with glxgears and other OpenGL programs. I'll report back if I run into any trouble.
If you'd like to try the patch, follow these steps after installing the RPM from freshrpms/livna or building it yourself via the ATI tool.
UPDATED: Use sed instead of ghex2
Restart X
If you have a version other than 8.39.4, you'll need to generate it yourself by following these steps:
cd /usr/lib64/xorg/modules/drivers
objdump -D fglrx_drv.so.orig | grep "Save64" | grep "callq"
Look for the line that shows five hex bytes, for instance:
aba7a: e8 b9 30 fe ff callq 8eb38 <atiddxSave64BitBAR@plt>
Take these five bytes and plug them into the "sed" program above using the \xHH\xHH\xHH\xHH\xHH format.
UPDATE: Jorg submitted a better generic patch based on Kano's work
It's easier to use than mine and should work on all 64-bit drivers. See here for more details...
It works for me so far with glxgears and other OpenGL programs. I'll report back if I run into any trouble.
If you'd like to try the patch, follow these steps after installing the RPM from freshrpms/livna or building it yourself via the ATI tool.
UPDATED: Use sed instead of ghex2
Code:
cd /usr/lib64/xorg/modules/drivers/ mv fglrx_drv.so fglrx_drv.so.orig cat fglrx_drv.so.orig | sed "s/\xe8\xb1\x30\xfe\xff/\x90\x90\x90\x90\x90/g" > fglrx_drv.so diff fglrx_drv.so fglrx_drv.so.orig (must report that binary files differ) aticonfig --initial
If you have a version other than 8.39.4, you'll need to generate it yourself by following these steps:
cd /usr/lib64/xorg/modules/drivers
objdump -D fglrx_drv.so.orig | grep "Save64" | grep "callq"
Look for the line that shows five hex bytes, for instance:
aba7a: e8 b9 30 fe ff callq 8eb38 <atiddxSave64BitBAR@plt>
Take these five bytes and plug them into the "sed" program above using the \xHH\xHH\xHH\xHH\xHH format.
UPDATE: Jorg submitted a better generic patch based on Kano's work
It's easier to use than mine and should work on all 64-bit drivers. See here for more details...
Comment