1
\$\begingroup\$

Whenever I run any application that utilizes the OpenGL interface, my entire computer comes to a halt, but it doesn't do this when it utilizes the DirectX interface. I run both Linux (Ubuntu 15.10) and Windows 10 so this isn't exactly caused by the operating system. I'm running the latest drivers from NVidia and both OS's are completely up to date. This is happening on a Dell Precision M6300 laptop (Core 2 Dou 2.5ghz, NVidia Quadro FX 1600M, 4gb ram) and although it's a bit old it should be completely capable of rendering a blank OpenGL window using GLFW, however it slows down my entire computer (every application starts freezing to where it becomes unusable until the application is closed). This happens in games like Left4Dead, Half-life 2, etc., but also in my own OpenGL programs. The same programs and games do not have the same effect on my desktop (although much better hardware, a blank OpenGL window shouldn't matter). Any help would be greatly appreciated, thank you. Also; my apologies if I left out any vital information or made a confusing question. Just ask me to clarify or add something and I shall.

; Added the code for the blank OpenGL window in question

#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>
using namespace glm;

int main(int argc, char* argv[]) {
if ( !glfwInit() ) {
    fprintf(stderr, "Failed to initialize GLFW\n");
    return -1;
}

glfwWindowHint(GLFW_SAMPLES, 4); // 4x AA
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // GL 3.3
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

GLFWwindow* window;
window = glfwCreateWindow(1024, 768, "OpenGL Tutorial", NULL, NULL);
if (window == NULL) {
    fprintf(stderr, "Failed to create OpenGL Window.");
    return -1;
}
glfwMakeContextCurrent(window);
glewExperimental=true;
if (glewInit() != GLEW_OK) {
    fprintf(stderr, "Failed to initiate the glew context!");
    return -1;
}

glfwSetInputMode(window, GLFW_STICKY_KEYS, GL_TRUE);

do {

    glfwSwapBuffers(window);
    glfwPollEvents();
} while (glfwGetKey(window, GLFW_KEY_ESCAPE ) != GLFW_PRESS &&
    glfwWindowShouldClose(window) == 0);
}
\$\endgroup\$
3
  • 1
    \$\begingroup\$ Sounds like a driver issue, do you have the same problem in both Windows and Linux? \$\endgroup\$
    – Tim
    Feb 16, 2016 at 15:16
  • \$\begingroup\$ Yes, the problem persists in both. And I've had this problem using both the legacy and latest drivers. \$\endgroup\$ Feb 16, 2016 at 18:22
  • 1
    \$\begingroup\$ This question looks like it's troubleshooting an issue with a computer itself, rather than solving a problem within a game in development (since it also impacts commercially released games on this device), so it may be more at home on SuperUser. \$\endgroup\$
    – DMGregory
    Feb 25, 2016 at 13:02

1 Answer 1

1
\$\begingroup\$

Some laptop's have 2 GPU's, one for applications that do not use much gpu functionality and one for games etc... This is for better power management. In my case my laptop has a GPU from Intel: Intel HD Graphics 3000 and one from Nvidia: Geforce GT 630M

For most applications it uses the intel one and for games it uses the nvidia one.

You can see if your laptop has this functionality if you right click on an application shortcut and have the option "run with graphics processor": - "High performance NVIDIA processor" - "Integrated graphics (default)"

The problem is that when you launch your opengl application in your editor (eclipse, microsoft visual studio, ...), those editor programs have been launched with the default integrated graphics which have a much lower OpenGL version. Normally this should cause your GLFW context creation to fail because it can't make one with version 3.3. Since it doesn't crash and just slows down your computer it's possible it's a whole other problem, but its worth looking into this and trying to make sure your editor program in which you run your code is using your fastest GPU.

\$\endgroup\$
1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .