7
\$\begingroup\$

I am using Java with JOGL to create OpenGL enhanced 2D graphics. The graphics operations I use are nothing fancy, and should be supported by almost any recent graphics card. For example, my game runs great on a Netbook.

I was hoping the game would run on most computers. It runs fine on my own computers. However, I found some computers have very slow performance (apparently software fallback, yielding about 2 frames per second). I ran a LWJGL app on one such computer. It doesn't run at all (it reports something like org.lwjgl.LWJGLException: Pixel format not accelerated, you can find various forum threads complaining about this but no apparent solutions, except the suggestion that it is a driver problem). Other OpenGL software does not seem to work, either. I also found that my Flash version of the game with exactly the same graphical effects performs pretty well full-screen on that same computer. The computer in question has a recent ATI card but unfortunately I have no access to the driver manager.

The problem appears fairly widespread. I think it is very unfortunate that OpenGL does not always provide access to graphics features found on most computers. This makes it less attractive for casual 2D games, which I expect to run on any computer.

Did any of you run into this problem and manage to fix it? AFAIK, both NVidia and ATI provide OpenGL as part of their standard driver sets, but maybe there are some exceptions? Is this problem caused by third party drivers not supporting OpenGL, and can the problem be fixed by installing better drivers? How many other graphics cards are out there without OpenGL drivers?

EDIT: As a final note, I can conclude that OpenGL is just not well supported on Windows machines. Microsoft seems to have been doing their best to keep it off their platform, for example by deliberately leaving out OpenGL drivers in some Windows driver bundles. Get the vendor drivers, and you get OpenGL; get the standard drivers that Windows downloads for you, and you don't. This has been causing no end of trouble for others as well. For example, for implementing WebGL, Web browsers use Angle, which is an OpenGL ES emulator for DirectX. So, what we'd really need is something like Angle, only for full OpenGL.

\$\endgroup\$
6
  • \$\begingroup\$ The plot thickens... it appears that the "slow" computer I tested on actually has ATI 3D drivers installed... I'm going to examine this further, I'll keep you informed. \$\endgroup\$ May 26, 2011 at 21:31
  • \$\begingroup\$ Keep in mind that Intel sells more graphics hardware than ATI and nVidia combined. By a huge margin. You'd have to make sure things work on plain ol' integrated graphics too. \$\endgroup\$ May 26, 2011 at 22:18
  • \$\begingroup\$ Well, the game works fine on a netbook with an Intel Graphics Media Accelerator 950, which must be one of the slowest GPUs around. \$\endgroup\$ May 26, 2011 at 23:12
  • \$\begingroup\$ @Borris: The GMA 650 is actually one of the faster GPUs Intel makes -- it's capable of running Aero to my understanding. Much of what they sell can't do that (and don't really provide any form of hardware accelerated graphics) \$\endgroup\$ May 26, 2011 at 23:41
  • \$\begingroup\$ @billy thanks for the info. Really, are computers still sold without any 3D capabilities? I mean, a $250 netbook has the 650, and I've seen older laptops which could also manage 3D graphics. \$\endgroup\$ May 27, 2011 at 7:35

2 Answers 2

5
\$\begingroup\$

This is a common problem even on new GPUs when drivers are not installed. OpenGL version is 1.0 1.1 and is running in software mode.

Install/update GPU drivers and add version query to your application. If returned OpenGL version is below 1.1 then it is definitely missing drivers.

\$\endgroup\$
1
  • 2
    \$\begingroup\$ That fixed the problem on this computer. I'm still interested in other people's experiences though. I used OpenGL extensions viewer to check the OpenGL driver. It reported GDI generic OpenGL 1.1 (= software rendering). It worked after just re-installing the drivers. AFAIK the original drivers were installed using the standard installation process (which also finds GPU specific drivers) rather than downloading them directly from the vendor website. The reported OpenGL version is now 3.3. My JOGL app now works smoothly as do LWJGL apps. \$\endgroup\$ May 27, 2011 at 10:07
1
\$\begingroup\$

I'm just guessing here, but are you using shaders? What video card was in the computer you tested on that threw the exception? A lot of older built-in Intel cards don't have pixel shader support.

Your only real recourse, if that's the case, is to provide a fixed function fallback.

\$\endgroup\$
3
  • \$\begingroup\$ What is a fixed function fallback? \$\endgroup\$
    – Xavier
    May 26, 2011 at 16:53
  • 1
    \$\begingroup\$ A fixed function fallback is a rendering path (think different rendering system) that does not use shaders during rendering, and instead uses the fixed-function pipeline to achieve similar effects (for example, only uses OpenGL calls up to version 1.5 or some such). \$\endgroup\$
    – ChrisE
    May 26, 2011 at 17:51
  • \$\begingroup\$ I'm not using shaders, just texture mapping and alpha blending, all opengl 1.x stuff. \$\endgroup\$ May 26, 2011 at 21:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .