From: Fabian K. <fab...@av...> - 2004-11-02 02:30:11
|
Dear list, we've developed an OpenGL application on Windows, using the glfw framework and are currently in the process of porting this application to Linux. The application (a simple, closed source, 3D racing game aimed at young children) will have to run on hardware with the following spec: Intel Celeron 1.2 GHz ATI Radeon Mobility 7500 (M7), 32 MB VRAM 256 MB RAM USB stick as boot/system device I've succeeded in setting up DRI with this hardware and it appears OpenGL applications are now hardware accelerated (everything runs much faster than in software only mode). So far so good. Unfortunately, the frame rate I was able to achieve under linux is far from the frame rate necessary for smooth game play and also astonishingly far from what I was able to achieve under Windows, using the same hardware[1]: We have 15-20 FPS while running Linux and 50-60 FPS while running Windows XP Pro with ATI's current non-Mobility desktop drivers somehow patched to work with our M7 card[2]. As we can't afford to use Windows when the product gets shipped (and I really wouldn't want to give Microsoft the money even if we could), I'm desperately searching for ways to speed things up on Linux. The Linux system is a slightly stripped down Debian GNU/Linux Sid, so my first attempt was to use the dri-trunk-sid[3] Debian packages. Worked well but didn't speed things up. Neither did the snapshots from [4] ... although I could only successfully use relatively "old" snapshots, as the current ones cause complete lock-ups or have missing dependencies (as already reported on this list by Josh). I've now arrived at a completely "home built" system[5], as described by the instructions at [6] ... but nothing changed. Interestingly, the Windows driver only works at "32bpp" (whatever that may actually map to) and produces the high FPS, while DRI produces the afore mentioned low FPS with 16bits colour depth and even lower frame rates with 24bits colour depth. The application uses plain OpenGL 1.1 with no extensions. All non-graphical modules (e.g. the sound system) were deactivated to ensure that they do not affect the FPS. I've also attempted a short trip to XiG's Accel*X, but wasn't able to get the X server running (and the specific ALi AGP bridge was unsupported ... so it was PCI-only anyway). OK. So here I am, with little time left to get better results and no idea what to do. If the speed difference isn't expected to be that large between Linux and Windows and I'm obviously doing something wrong somewhere - please tell me. If you have any idea how I could optimise the game for DRI/Mesa's OpenGL implementation (tiny Tuxes hidden in the textures?) ... please tell me. How does the missing HyperZ feature possibly affect me? If you think one could turn on special optimisations somewhere or turn knobs in dark places, it would be great to hear of. In other words: Any advice would be very much appreciated. Thanks in advance. And if you've read all the way down here, thanks very much for your time. Greetings from Germany, Fabian avona media GbR -- [1] Apart from the fact that we had to use a normal HD instead of the USB stick. [2] I was not directly involved, but I gathered that ATI doesn't want to officially provide the drivers for the mobility series, but the normal desktop drivers actually do support them ... with some unauthorised tweaking. [3] http://dri.freedesktop.org/~daenzer/debian/dri-trunk-sid/ and http://www.stanchina.net/~flavio/debian/ [4] http://dri.freedesktop.org/~dri/snapshots/ [5] With everything from yesterday's CVS revisions. An exception being the Mesa CVS, for which I used 20040925 to avoid the immediate lock-ups (work-around suggested by Andreas on dri-devel). [6] http://dri.sourceforge.net/cgi-bin/moin.cgi/Building |