[leveller] Safe mode 3D rendering

  • From: Ray Gardener <rayg@xxxxxxxxxxxxxxxxxx>
  • To: leveller@xxxxxxxxxxxxx
  • Date: Mon, 11 Feb 2008 01:08:30 -0800

Some people have asked if Leveller can include a "safe" software-only render mode that bypasses OpenGL in case OpenGL gets hosed.


Usually a driver will have a way to disable hardware acceleration for a particular app. This is in fact the feature's intended purpose; to route calls away from the hardware (and its driver) back towards the original Windows software-only renderer, if a specific app has trouble. One can even boot Windows in its own safe mode, although that's drastic.

Making Leveller itself capable of this feat would, long story short, require shipping two builds: leveller.exe and lev_safe_gl.exe. The latter would have all its GL calls routed to a local software version of OpenGL (probably using Mesa).

So far it hasn't seemed worthwhile, because the number of GL issues is actually very small percentage-wise, and historically, a driver update (or regression) fixes the problem. In Lev's entire history (almost ten years now) I can count the number of GL issues on my fingers.

Never say never, of course. The number of GL cards and drivers has gone up enormously in recent years, and even a casual surfing of vendor GL issues via Google makes me queasy (a lot of these vendors seem to target video games and cross their fingers that the drivers will do just enough so that limitations aren't noticed). So if the situation gets worse enough, I'll reconsider.

Game-level cards ought to suffice. Leveller actually uses far less different GL calls than the average game does. However, a vendor may retort that games use Direct3D on Windows, thus GL problems on a game-level card are not problems per se. In that case, it becomes an issue of, if Lev supports game-level cards, should it actually be rendering with Direct3D instead? (I sincerely hope not... it's bad design from a maintenance standpoint to have two render pipelines -- every time I change one I have to remember to change the other).

Ray


Other related posts:

  • » [leveller] Safe mode 3D rendering