PDA

View Full Version : How to make OpenGL 4.4 available?



zzzhhh
05-25-2014, 06:39 PM
Hi,

I have just installed a nVidia Geforce GT640 graphics card. The newest driver provided by nVidia is claimed to support latest OpenGL version 4.4. But after I installed the newest driver (version 337.81, released on perhaps May 13, 2014), the version of OpenGL is not upgraded.

Originally, I was using intel's integrated graphics card and the version of OpenGL on my win7 is only 1.1. Later I found that Mesa library boasts it can support OpenGL up to v3.3, so I compiled it and copied the outcome opengl32.dll into C:\windows\system32. The version of OpenGL did increase but only to version 2.1. This is a screenshot of a tool called "OpenGL Extensions viewer 4.1.7":

1315

My environment: Windows 7 64 bit.

My question: How to make the latest OpenGL 4.4 available on my computer?

If you need more info, please feel free to ask.

PS1: I have reinstalled the driver many times, including using the "clean installation" option.

Thank you.

thokra
05-26-2014, 01:53 PM
My question: How to make the latest OpenGL 4.4 available on my computer?

Install drivers that advertise OpenGL 4.4 compliance as a feature.

zzzhhh
05-26-2014, 05:49 PM
Install drivers that advertise OpenGL 4.4 compliance as a feature.
I'm sorry I didn't catch you. Could you please be more specific?

Aleksandar
05-27-2014, 09:23 AM
Nope! You already have adequate drivers.
Just remove Mesa 3D, and bring back the old opengl32.dll!
It is a hook to vendors' drivers and it is essential to get the functionality.

zzzhhh
05-27-2014, 09:19 PM
Nope! You already have adequate drivers.
Just remove Mesa 3D, and bring back the old opengl32.dll!
It is a hook to vendors' drivers and it is essential to get the functionality.
I did this but doesn't work (I deleted the mesa opengl32.dll (about 4.9M) and restored the original opengl32.dll (about 1M), the OpenGL version goes back to 1.1. Then I reinstalled the newest driver again but nothing is changed). So I'm curious where exactly is the OpenGL-supporting file from nvidia's driver.

Agent D
05-27-2014, 11:51 PM
The opengl32.dll exposes OpenGL(R) 1.1 functionallity. There is a function called "wglGetProcAddress", exported by the opengl32.dll. With this function, pointers to OpenGL(R) functions beyond 1.1 can be loaded. The function internally loads the nvidia implementation (or whatever it sees fit. The exact locations of the implementation libraries are stored in the registry).

Did you try that extension viewer thingy before overwriting the library with Mesa, or how did you determine the available version?

zzzhhh
05-28-2014, 01:47 AM
The opengl32.dll exposes OpenGL(R) 1.1 functionallity. There is a function called "wglGetProcAddress", exported by the opengl32.dll. With this function, pointers to OpenGL(R) functions beyond 1.1 can be loaded. The function internally loads the nvidia implementation (or whatever it sees fit. The exact locations of the implementation libraries are stored in the registry).

Did you try that extension viewer thingy before overwriting the library with Mesa, or how did you determine the available version?

As I said in the original post, I determine OpenGL version using a tool called "OpenGL Extensions viewer 4.1.7". I also attached an image of the screenshot in it. There is another tool call "GLInfo" but it doesn't work at all; it just reports that it can not find OPENGL32.dll.

Agent D
05-28-2014, 07:43 AM
Sine I cannot access that screenshot you provided (broken link), I did a quick google search for that tool.

I found this (http://stackoverflow.com/questions/23861012/how-to-make-opengl-4-4-available) Stackoverflow post. Is it yours?

If yes, from the screenshot I can tell that you tried to use it after overwriting the system dll with the Mesa3D one, but what about before, with the system dll and the propper drivers installed?

zzzhhh
05-28-2014, 10:54 AM
Sine I cannot access that screenshot you provided (broken link), I did a quick google search for that tool.

I found this (http://stackoverflow.com/questions/23861012/how-to-make-opengl-4-4-available) Stackoverflow post. Is it yours?

If yes, from the screenshot I can tell that you tried to use it after overwriting the system dll with the Mesa3D one, but what about before, with the system dll and the propper drivers installed?
Sorry I don't understand your question. I think I have clearly described my situation in my original post.

Agent D
05-28-2014, 12:50 PM
Under Windows(R), there is an opengl32.dll which implements OpenGL(R) 1.1 over the GDI. DON'T TOUCH THAT ONE. EVER.
When you plug an nvidia graphics card into your computer and install the apropriate drivers, their OpenGL(R) implementation is placed somewhere else (nvglXX.dll something like that).
For OpenGL(R) >1.1 a program loads function pointers through a function in opengl32.dll that in turn loads the driver implementation
The whatever extension viewer thingy is supposed to use this functionallity to determine the available OpenGL(R) features
If you mess around with the opengl32.dll of your system, this won't work


What I meant before was, that from your posts, there is no indication that you tried the extension viewer gizzmo before you replaced the opengl32.dll

You mentioned previously that you used an intel integrated GPU and only got OpenGL(R) 1.1?
Do you have something like an Optimus(R) setup?

Did you, at any point, actually install the drivers for the intel integrated GPU?
If you have something like an Optimus(R) setup, try running the extension viewer thingy with
the right graphics card, which should result in the right driver being used.

I guess you could also install the intel driver and get at least the version that the intel GPU supports.

zzzhhh
05-28-2014, 07:19 PM
I have solved the problem. Thank everybody.