Using driver 8.8 for a Radeon 4870 on Ubuntu 8.04.1 (64 bits), I got some error messages when shutting down glxgears/fgl_glxgears:
Also glxgears is running a lot slower (although I know this is not really important) then the previous driver release: 6000 versus 12000 fps.
Because when I was debugging a self written OpenGL program, I saw valgrind mentioning a lot of things about fglrx_dri.so, I thought lets see what it does when using valgrind on glxgears. After running a few seconds it tells me that it had reported over 10 million errors (and that I should fix my program)!!! Most of them concerning fglrx_dri.so. I guess something is terribly wrong with this driver release? I ran the program again, with settings to provide some more detail (that time it gave less errors, but still more then 5 million), here some output of valgrind (of course fglrx_dri.so does not contain any debugging info, so I'm not sure how helpful this is):
I saved the complete output of valgrind, but it is too long to post here. Happy to provide it if necessary. BTW: on nvidia hardware this gives 0 errors. Not sure what it does on previous driver releaeses.
Code:
heiko@baldr-ubuntu:~$ fgl_glxgears Using GLX_SGIX_pbuffer 10130 frames in 5.0 seconds = 2026.000 FPS minus back XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 60693 requests (60692 known processed) with 0 events remaining. heiko@baldr-ubuntu:~$ glxgears 30318 frames in 5.0 seconds = 6063.559 FPS XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 41 requests (40 known processed) with 0 events remaining.
Because when I was debugging a self written OpenGL program, I saw valgrind mentioning a lot of things about fglrx_dri.so, I thought lets see what it does when using valgrind on glxgears. After running a few seconds it tells me that it had reported over 10 million errors (and that I should fix my program)!!! Most of them concerning fglrx_dri.so. I guess something is terribly wrong with this driver release? I ran the program again, with settings to provide some more detail (that time it gave less errors, but still more then 5 million), here some output of valgrind (of course fglrx_dri.so does not contain any debugging info, so I'm not sure how helpful this is):
Code:
==12812== ==12812== 1375957 errors in context 121 of 124: ==12812== Invalid write of size 1 ==12812== at 0x4C250C7: memcpy (mc_replace_strmem.c:402) ==12812== by 0x7654630: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x7656887: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x748A570: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x74405F7: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x74835BF: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x743EEC1: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x6A8DD61: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x7086BEE: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x709C0C7: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x709C34D: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x76087C3: __driCreateNewScreen_20050727 (in /usr/lib/dri/fglrx_dri.so) ==12812== Address 0x7f714f1cabb4 is not stack'd, malloc'd or (recently) free'd ==12812== ==12812== 1375957 errors in context 122 of 124: ==12812== Invalid write of size 1 ==12812== at 0x4C250BC: memcpy (mc_replace_strmem.c:402) ==12812== by 0x7654630: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x7656887: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x748A570: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x74405F7: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x74835BF: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x743EEC1: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x6A8DD61: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x7086BEE: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x709C0C7: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x709C34D: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x76087C3: __driCreateNewScreen_20050727 (in /usr/lib/dri/fglrx_dri.so) ==12812== Address 0x7f714f1cabb5 is not stack'd, malloc'd or (recently) free'd ==12812== ==12812== 1375957 errors in context 123 of 124: ==12812== Invalid write of size 1 ==12812== at 0x4C250B5: memcpy (mc_replace_strmem.c:402) ==12812== by 0x7654630: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x7656887: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x748A570: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x74405F7: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x74835BF: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x743EEC1: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x6A8DD61: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x7086BEE: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x709C0C7: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x709C34D: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x76087C3: __driCreateNewScreen_20050727 (in /usr/lib/dri/fglrx_dri.so) ==12812== Address 0x7f714f1cabb6 is not stack'd, malloc'd or (recently) free'd ==12812== ==12812== 1375957 errors in context 124 of 124: ==12812== Invalid write of size 1 ==12812== at 0x4C250AF: memcpy (mc_replace_strmem.c:402) ==12812== by 0x7654630: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x7656887: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x748A570: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x74405F7: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x74835BF: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x743EEC1: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x6A8DD61: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x7086BEE: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x709C0C7: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x709C34D: (within /usr/lib/dri/fglrx_dri.so) ==12812== by 0x76087C3: __driCreateNewScreen_20050727 (in /usr/lib/dri/fglrx_dri.so) ==12812== Address 0x7f714f1cabb7 is not stack'd, malloc'd or (recently) free'd
Comment