0
\$\begingroup\$

Many Game Engines require OpenGL to run. I have one of those. I've confirmed that the program and any benchmarks for OpenGL above OpenGL 2 fail to run.

Is there, like, a way to confirm I have dependencies or something to that effect? Is it installed or is it just a library included in other programs?

Specifically using Ubuntu Linux 17.10, computer specs are fairly low but I've run the Engine on Windows on the same machine before. Linux should have more up to date graphics drivers, so I'm not sure what the root of the problem might be.

\$\endgroup\$
  • 3
    \$\begingroup\$ Check your GPU specs on the Internet, if it supports required OpenGL versions. Then check for drivers to "unlock" them. \$\endgroup\$ – Kromster Dec 14 '17 at 4:35
  • 3
    \$\begingroup\$ OS is not relevant - what GPU have you? \$\endgroup\$ – Maximus Minimus Dec 14 '17 at 6:49
  • \$\begingroup\$ Is this an engine you have made? If so, knowing the implementation language/bindings would help (some OpenGL bindings have more quirks than others). If not, knowing which particular engine it is might help. \$\endgroup\$ – Pikalek Dec 14 '17 at 14:41
1
\$\begingroup\$

First of all, Opengl is not a library, it's callled a "specification". Libraries like GLEW (OpenGl Extension Wrangler) just specify the functions you need to control your gpu. At that point, it's the graphics card manifacturer's job to implement those functions.

"The OpenGL specification specifies exactly what the result/output of each function should be and how it should perform. It is then up to the developers implementing this specification to come up with a solution of how this function should operate. Since the OpenGL specification does not give us implementation details, the actual developed versions of OpenGL are allowed to have different implementations, as long as their results comply with the specification (and are thus the same to the user)."

One way you could verify if you are able to run Opengl is by creating a simple program with it. In C++ for example, you could write a s imple "hello world" program, using glfw(winidowing Api) and Glew. In the main.cpp file ypu should set the OpenGl context version to 4.0 and see if it runs. You can also check what the currrnt version of Opengl is, by calling glGetString(GL_VERSION); Now, this might not be the ideal way to do it, I'm sure there is an easier way to check for OGL drivers, so i would really appreciate if someone corrected me in the comments section :)

I also would like to leave some useful resources here and here

\$\endgroup\$
  • 1
    \$\begingroup\$ Just adding to the verification advice, the OpenGL Extensions Viewer and glxinfo are both useful tools. \$\endgroup\$ – Maximus Minimus Dec 14 '17 at 14:02
  • \$\begingroup\$ Opengl literally stands for Open Graphics Library. Wouldn't the driver or the underlying implementation be the "specification", considering they define how high level communicates with the hardware? \$\endgroup\$ – Sidar Dec 14 '17 at 14:22
  • 1
    \$\begingroup\$ @Sidar Opengl is not a library, it's a graphics API. At its core it's just a specification of what you can do with the API, there is no prewritten code. \$\endgroup\$ – user100681 Dec 14 '17 at 14:44
  • 1
    \$\begingroup\$ @Sidar - don't sweat over the name; it's a relic from 1991 when it would have been more accurate than it is nowadays. \$\endgroup\$ – Maximus Minimus Dec 14 '17 at 16:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.