How to know if hardware acceleration is present? - Graphics
This is a discussion on How to know if hardware acceleration is present? - Graphics ; On some Windows PCs, I notice that I don't get hardware acceleration
with OpenGL - my app still runs but it runs very very slow. The
problem is that the correct driver for the video card is not loaded.
Is ...
-
How to know if hardware acceleration is present?
On some Windows PCs, I notice that I don't get hardware acceleration
with OpenGL - my app still runs but it runs very very slow. The
problem is that the correct driver for the video card is not loaded.
Is there a method by which I can determine if this is the case
programatically and show the user a dialog instead of letting my app
run really slow?
Thanks.
-
Re: How to know if hardware acceleration is present?
soft_guy wrote:
> On some Windows PCs, I notice that I don't get hardware acceleration
> with OpenGL - my app still runs but it runs very very slow. The
> problem is that the correct driver for the video card is not loaded.
>
> Is there a method by which I can determine if this is the case
> programatically and show the user a dialog instead of letting my app
> run really slow?
>
> Thanks.
This is not so simple, because wheter opengl is hardware accelerated is
not a yes/no question. Different cards support different features. I
used to have GF4MX which runs opengl in hardware... except for
accumulation buffer which was done in SW. All things run fast until you
use gl_accum. Framerate drops to 1FPS. Voodoo cards had software stencil
buffer. You fall down to software also when you turn on n+1 light
source, when your HW is capable of n lights. Or when you use other
unsupported feature. Unfortunately with OpenGL you cannot learn if it is
using HW or not though it is transparent for the programists. However,
there are workarounds:
"If you are using the Win32 interface (as opposed to GLUT), call
DescribePixelFormat() and check the returned dwFlags bitfield. If
PFD_GENERIC_ACCELERATED is clear and PFD_GENERIC_FORMAT is set, then the
pixel format is only supported by the generic implementation. Hardware
acceleration is not possible for this format. For hardware acceleration,
you need to choose a different format."
If glGetString(GL_VENDOR) returns something other than "Microsoft
Corporation", it means you're using the board's ICD. If it returns
"Microsoft Corporation", this implies you chose a pixel format that your
device can't accelerate. However, glGetString(GL_VENDOR) also returns
this if your device has an MCD instead of an ICD, which means you might
still be hardware accelerated in this case.
You can also gather performance data by rendering into the back
buffer and comparing the results against known performance statistics
for your device. This method is particularly useful for devices that
revert to software rendering for some state combinations or OpenGL
features."
wojek
Similar Threads
-
By Application Development in forum XML SOAP
Replies: 2
Last Post: 11-16-2007, 02:20 PM
-
By Application Development in forum Javascript
Replies: 0
Last Post: 07-26-2007, 08:08 AM
-
By Application Development in forum Graphics
Replies: 12
Last Post: 01-13-2007, 10:11 AM
-
By Application Development in forum DOTNET
Replies: 3
Last Post: 04-27-2006, 03:44 PM
-
By Application Development in forum DOTNET
Replies: 10
Last Post: 04-02-2006, 07:05 AM