How to install OpenGL/OpenTK on client windows 7 machine?

Started by
2 comments, last by Brendan Hill 8 years, 3 months ago

Can you help me sort out a deployment problem?

Our C# Winforms OpenTK based application is unable to run on a Windows 7 32bit client machine because it relies on OpenGL 1.5 features. It appears that due to the absence of the proper OpenGL DLLs on the machine, it is defaulting to the OpenGL 1.1 emulator as described here:

https://www.opengl.org/wiki/Getting_Started#Windows

The graphics card itself supports OpenGL 4.2:

http://www.geforce.com/hardware/desktop-gpus/geforce-gt-520/specifications

We have installed the latest NVIDIA drives from the NVIDIA website under full admisitrator rights.

However still when we run the OpenTK samples requiring OpenGL 1.5 (eg. "picking" or "VBO static/dynamic") we get errors specifying that the machine is on OpenGL 1.1, or "Access violation".

I have searched the web for solutions to this to no avail and we are banging our heads against the wall.

What is the correct, reliable way to install the latest OpenGL on a windows machine which physically supports OpenGL 4.2?

Advertisement

What is the correct, reliable way to install the latest OpenGL on a windows machine which physically supports OpenGL 4.2?

You just install your graphics drivers. That's it. So... your problem probably lies elsewhere.
You'll likely have to debug the OpenTK initialization routines and find out why it's failing to initialize GL properly.

As Hodgman mentions, OpenGL is part of your graphics drivers and there is no separate installation for it. It's important to understand that OpenGL is not a software component, but instead is just an interface that provides a way for your program to tell your graphics card what to do.

What's happening here is most likely one of two things.

First thing is that your drivers failed to install correctly. I'd suggest that you cross-check with something like the OpenGL Extensions Viewer to confirm if this is the case. If the Viewer only reports back GL 1.1 then you can be certain that you don't actually have correct drivers installed. If the viewer reports the correct GL version then we move on to number 2.

Second possible cause is that you have the correct drivers installed but are failing to get a hardware-accelerated OpenGL context. In this case, GL initialization will fall back to the default software implementation (and be stuck at 1.1). This can happen for a variety of reasons but what they all have in common is that you have something specified in your context creation code that your driver can't support in hardware.

The OpenGL Extensions Viewer is useful here again, because it will query the display modes and pixel formats exposed by your driver and provide you with full information on whether they're accelerated or not. You can cross-check that information with your actual context creation code and hopefully find out quickly enough what it is you're doing wrong.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Unfortunately we fell prey to an little known fact - that OpenGL doesn't normally work when logged in via RDP.

Used the machine directly and via other remote access tools and it worked fine.

This topic is closed to new replies.

Advertisement