Thanks - that seems to have done the trick.
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 XCode: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...
http://phoronix.com/forums/showpost....7&postcount=18
Last edited by mmastrac; 07-31-2007 at 10:18 AM.
Thanks - that seems to have done the trick.
I find this a bit weird because when the Xorg Server 1.3 Hex Hotfix was avaible by Kano, everyone said "no it's illegal, don't post it" for some weeks![]()
and this patch for 8.39.4?![]()
here we go:
[root@localhost drivers]# objdump -D fglrx_drv.so.orig |grep "Save64"
000000000008eb38 <atiddxSave64BitBAR@plt>:
00000000000a0b60 <atiddxSave64BitBAR>:
a0bb3: 74 4f je a0c04 <atiddxSave64BitBAR+0xa4>
a0bca: 74 07 je a0bd3 <atiddxSave64BitBAR+0x73>
a0c02: eb c8 jmp a0bcc <atiddxSave64BitBAR+0x6c>
a0c31: eb 82 jmp a0bb5 <atiddxSave64BitBAR+0x55>
aba7a: e8 b9 30 fe ff callq 8eb38 <atiddxSave64BitBAR@plt>
[root@localhost drivers]#
thanks!
This patch should work for you:
Code:cd /usr/lib64/xorg/modules/drivers/ mv fglrx_drv.so fglrx_drv.so.orig cat fglrx_drv.so.orig | sed "s/\xe8\xb9\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