I am working in Windows Environment. When I attempt to run the OpenGL App. in 24-bit desktop color mode it runs very slowly. But in the case of 16-bit desktop color mode it runs very fast. Means when I am in 16-bit color mode the h/w acceleration enabled. Where as in 24-bit color mode it is disabled. How to enable h/w acceleration even I am working in 24-bit color mode also?
This typically has to do with the specifics of your hardware, the size of your desktop, the amount of memory on your graphics card, and what drivers you have installed.
I’d suggest asking the vendor for your hardware, or asking in the “users” forum on this board.
You’ve posted on the users’ board that you’re using i810 graphics. http://www.opengl.org/discussion_boards/ubb/Forum1/HTML/003817.html
jwatte, I think this may be a valid dev question, though not too advanced.
What method are you using to select the pixel format. The “standard” ChoosePixelFormat/SetPixelFormat?
Do you set the PFD_GENERIC_FORMAT and/or PFD_GENERIC_ACCELERATED flags in the .dwFlags member of the PIXELFORMATDESCRIPTOR?
If you use both, try removing PFD_GENERIC_FORMAT (but keep the other flag). You need to have proper error checking though, the device context or rendering context creations may fail.
I saw this info in intel site:
in 2D games and applications:
640x480 - 4, 8, 16, 24-bit color at 60,70,72,75,85,100 Hz refresh rates
800x600 - 8, 16, 24-bit color at 60,70,72,75,85,100 Hz refresh rates
1024x768 - 8, 16, 24-bit color at 60,70,72,75,85,100 Hz refresh rates
1152x864 - 8, 16, 24-bit color at 60,70,72,75,85 Hz refresh rates
1280x1024 - 8, 16, 24-bit color at 60,70,72,75,85 Hz refresh rates
1600x1200 - 8-bit color at 60,70,72,75 Hz refresh rates
in 3D games and applications:
640x480 - 16-bit color at 60,70,72,75,85,100 Hz refresh rates
800x600 - 16-bit color at 60,70,72,75,85,100 Hz refresh rates
1024x768 - 16-bit color at 60,70,75,85,100 Hz refresh rates
In 2D applications h/w accelertion is supported under 24-bit color mode also(according to intel). I am using OpenGL for 2D purpose only. How to accelerate this one in 2D? My PixelFormatDescriptor is also ok and I set the depthbuffer value to 0 (for 2D).
I suppose the 2D acceleration mentioned here refers to accelerating GDI calls only. Even if you are using OpenGL only for 2D, you need 3D acceleration to get hardware acceleration with OpenGL.
Your have two solutions here to get hardware acceleration for your application:
- Switch from OpenGL to GDI.
- Buy another gfx card that will accelerate OpenGL with your video settings.