swixel dot net

Playing by the rules(?)

Intel GPUs and VBOs

After about a week of playing with code, I ran a test on my laptop: librocket broke, the shaders lagged, and my system came to life and killed everything in the room.

After an uneventful trip to the necromancer, I started looking at where it failed, and the Intel GPU was the first place I checked: that was it.  So I added a simple function to a class:

void DetectOGLAdv()
{
    OGLAdvEnabled = true; // Assume it’s good

    // PostFX disable (for those using SFML)
    if(!sf::PostFX::CanUsePostFX)
        OGLAdvEnabled = false;

    // Intel GPUs are horrible
    if(strcmp((const char *)glGetString(GL_VENDOR),”Intel”) == 0)
        OGLAdvEnabled = false;
}

As I find things that break my code I’ll add to it, but I thought it might be useful to point out the VBO fault exists even in the newer cards (at least on Windows).

The other workaround is, of course, finding a way to ship MESA drivers for Window to enable users to run it… the real difficulty will be in determining where the MESA drivers start, and DirectX begins (my understanding is that DirectX isn’t influenced, but it’ll be time to find out soon, woo!).

  1. swixel posted this