Archived

This topic is now archived and is closed to further replies.

Pure Krome

[Newbie] Software / Hardware Rendering?

Recommended Posts

G''Day all =) Slowly pooling together my research information now =) From reading some info on the www.OpenGl.ord About->FAQ->Tech, it says this (and i quote) "5.030 How do I enable and disable hardware rendering on a Wintel card? Currently, OpenGL doesn''t contain a switch to enable or disable hardware acceleration...." and "5.040 How do I know my program is using hardware acceleration on a Wintel card? OpenGL doesn''t provide a direct query to determine hardware acceleration usage. However, this can usually be inferred by using indirect methods....." Then how do games like Half-Life give you an option to have Software Rendering, OpenGL Rendering (assuming that is hardware only) and DirectX Rendering (assuming that is hardware also)?? thank you again for any help forthcoming -PK-

Share this post


Link to post
Share on other sites
Well, when a game lets you select the renderer OpenGL is usually hardware rendering, software rendering is usually a custom engine written specifically for the game. With AGL (Apple GL), and pretty sure for WGL (Windows GL) too, when you send a request for a rendering context you can specify whether you want OpenGL to use hardware rendering or software rendering, but remember that software rendering under OpenGL will be slow, it is optimized for hardware accelleration. Commercial games never use OpenGL software rendering for their software renderer, they write their own and optimize it for speed for the tasks at hand.

Morgan

Share this post


Link to post
Share on other sites
i dont know if it works, but it is from nvidia's homepage:

Subject 6.01: How do I determine if I'm getting hardware acceleration under Windows NT/95/98?

        

After you fill out the PIXELFORMATDESCRIPTOR, do the following:

int pixelFormat = ChoosePixelFormat (hDC, &pfd);

PIXELFORMATDESCRIPTOR pfd_new;
DescribePixelFormat (hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd_new);

int generic_format = pfd_new.dwFlags & PFD_GENERIC_FORMAT;
int generic_accelerated = pfd_new.dwFlags & PFD_GENERIC_ACCELERATED;

if (generic_format && ! generic_accelerated)
{
// software

}
else if (generic_format && generic_accelerated)
{
// hardware - MCD

}
else if (! generic_format && ! generic_accelerated)
{
// hardware - ICD

}





Edited by - claus hansen ries on June 19, 2000 6:08:14 AM

Share this post


Link to post
Share on other sites
Basicly it is two diffent ways to create a opengl driver.

following is 100% ripped from opengl.org

Now, under each operating system you have various "driver interfaces" that an OpenGL driver adheres to in order to communicate with the OS and window system efficiently. Under Win32 there have been two different prevalent driver interfaces: the ICD (Installable Client Driver) and the MCD (Mini Client Driver). The latter is pretty much dead, but the former still lives on.

read all>
http://www.opengl.org/Products/DriverTypes.html



Edited by - Claus Hansen Ries on June 19, 2000 8:25:36 AM

Share this post


Link to post
Share on other sites