13th August 2007
I had just installed the latest ATI video drivers for Linux onto my Slackware 11 (with kernel 126.96.36.199); I have Radeon Mobility X600 with 64MiB of non-shared memory.
Running glxgears, I got ~2050 FPS (glxgears window focused) and ~4900 FPS (console window focused, glxgears window out of focus).
But running fgl_glxgears yielded values as low as 1 FPS! As fgl_glxgears is much more similar to the real-world game visuals, it’s apparent that no game will be playable at e.g. 0.2 FPS.
Also, there were numerous repetitions of a single error in the console window:
FGLTexMgr: open of shared memory object failed (Function not implemented) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed! fglX11AllocateManagedSurface: __FGLTexMgrCreateObject failed!
The display driver requires POSIX Shared Memory to be enabled on the system in order to run these applications correctly. This feature should be enabled by default on most current Linux distributions, but may be disabled intentionally by some system administrators or not included in older distributions.
To enable POSIX Shared Memory on your system, perform the following as root:
1. Add the following line to /etc/fstab (if it isn’t there already): tmpfs /dev/shm tmpfs defaults 0 0
2. Mount shared memory as follows: mount /dev/shm
3. Issue the following command to check that it mounted properly: mount | grep shm
If the mount was successful, then the following output (or similar) should appear:
tmpfs on /dev/shm type tmpfs (rw)
At this point, POSIX Shared Memory is enabled. Your 3D applications should run properly and the error message above should no longer occur.
If the output from this command is blank, then the mount failed.
This solution worked perfectly, and for fgl_glxgears I got 421 FPS (fgl_glxgears window focused) and 903 FPS (fgl_glxgears window not focused).
Finally, a note for myself:
to see current power mode, use:
aticonfig –lsp (–list-powerstates)
to set power mode, use:
(possible NUMBERs are displayed by –lsp)