It would be nice to fall back on Mesa3D software rendering instead of Second Life not running at all.
Implementation should be fairly trivial, a compiled version of the Mesa3D opengl32.dll & friends could be included with the client, and when a video card issue arises (Bad drivers(Kryo), poor OpenGL support (Voodoos), Lack of Hardware Texture & Lighting (me!) and other problems) it should automatically fall back on software rendering. It's slow, but it should allow SL to run on any system, at any time.
A commandline switch should also be added to force it on.
This may also come in handy to discern if a given graphical bug is due to a problem in the SL viewer, or the user's computer hardware/software configuration.
This needs:
- Compiling of Mesa3D OpenGL32.dll ICD for Windows NT (Mostly done, there are copies floating around)
- Code alteration to Unsupported Graphics Card message, "This Graphics Card is unsupported, Would you like to use Hardware Accelerated 3D (May be unstable!) or Software 3D? (Warning, will be slow!) (Software/TryAnyway/Quit)"
- Code alteration to load the Mesa3D OpenGL32.dll instead of the system OpenGL32.dll if Software selected from above dialog change.
- Testing of Software 3D support
This is already working on Linux, due to Mesa3D acting as the system OpenGL Library, and passing calls supported by the hardware to the hardware specific OpenGL ICD, and implementing anything the hardware does not support in software.
Running Ubuntu 7.10 on my Lifebook will allow Second Life to run normally at around 10FPS. The hardware handles everything except Texturing and Lighting, which Mesa3D takes over for.
Running Windows XP on my Lifebook will allow Second Life to run, but only in Wireframe mode at ~18FPS, with a special hacked Radeon Mobile driver that pretends it's a Radeon 7500 to get around the Unsupported Graphics Card message.
Adding this feature to the Second Life client should allow Second Life to run on any computer, even if it does not have a 3D capable video card, or no video card at all (headless). It should also allow running of Second Life remotely over protocols such as RDP, VNC, or Citrix. This can be a good thing for people with mobile devices – the Playstation Portable has a native VNC client, the IPhone/IPod Touch supports flash, over which FlashVNC can be used ( http://osflash.org/fvnc
) and any other system that supports Flash9 can run FlashVNC.
The gains are immense, the drawbacks are tiny. Please consider this.