ATI glitch found, workaround in progress

Apparently, most (all?) recent ATI cards’ OpenGL drivers have a bug where if a program specifies that it requires a hardware-accelerated OpenGL context, then ATI gives you the default software-implemented Microsoft GDI-based OpenGL v1.1 renderer, instead.

On the other hand, if you don’t tell it that you need an accelerated context, then it will give you an accelerated context, and have support for shaders and other fancy things.  Yay.

Anyhow, this issue seems to actually be affecting an awful lot of OpenGL programs.  And it’s been around since the ATI Catalyst drivers v8.1.  But it’s not much reported online, oddly.  It’s taken three days of google searches for me to find it!

So with that fairly simple change, I now have my my ATI card working again.  So I’m now working to get a yet-again-updated MMORPG Tycoon 2 build up and running.  I’m not expecting to get it going tonight;  tomorrow is more likely.  But I’ll post updates as soon as there’s further news.

Thanks everyone for the bug reports you’ve made;  I think I’ve now got enough to keep me busy for this next build!  And I’ll get some sort of proper bug reporting system set up somewhere, so that bug reports don’t easily get forgotten about the way that they do when they’re posted as comments.

UPDATE (Updated again!): I’ve now fixed most of the ATI-only glitches in the VectorStorm library.  Here are the remaining ATI-specific issues that I need to tackle before releasing an updated build of MS1:

  1. Everything in the game which has a texture on it is acting as though the texture is solid, opaque white.(Now fixed)
  2. Whenever I try to compile an OpenGL display list which uses VBOs and which render using a texture, the game crashes.  If I draw the geometry using arrays instead of VBOs, then things work correctly (apart from the texture appearing as solid white).  (Now fixed — fixing the textures appears to have fixed this as well!)
  3. None of my shaders seem to be working.  Bloom, lighting, etc.  If I go to older VectorStorm projects and fix them to get hardware acceleration on ATI cards, they still don’t seem to actually render anything that uses shaders.. (I’ve finally gotten the shaders working on ATI cards, except that the bloom shader is only working when my lighting shaders are enabled. To be honest, I’m not sure how the bloom effect can be working at all without my lighting shaders enabled, when running on non-ATI, non-Win32. Maybe it’s not. Must double-check Mac and NVidia builds!)

Finally got the ATI build working acceptably well! I want to make a few more non-ATI-specific bugfixes, and will upload a new build tomorrow.