Force OpenGL3.3 on Intel HD Graphics 3000 (Windows)

Intel HD Graphics 3000 does support OpenGL3.3, but only on Linux. I’ve Ubuntu as my secondary OS, and it can run very well on it. So the graphic card does have the capability to use OpenGL3.3, but Intel doesn’t make the driver for it.

However, I recently found out and tested a way to overcome this problem, and finally Citra (both Nightly and Canary versions) can run on my laptop (I use Windows 10 x64, and have 4GB RAM). Here is what you need:

First, install Citra if you haven’t. Then run the executable file that you downloaded from pal1000’s releases page, extracted to anywhere you want. After that, open the folder that you extracted the files, replace the original .dll with the one from and run perappdeploy.cmd to link Citra with the Mesa drivers. Follow its instruction closely (don’t choose yes all the time, there is one option that you have to choose no, but it’s chosen by default, so don’t worry.

For the final step, create a text file with this:

Save it as a .bat inside the folder that contains citra-qt. After that if you want to run citra-qt, run this .bat instead, and it will run Citra with OpenGL3.3 instead of 3.1.

Please note that I’ve only tried this method with Intel HD Graphics 3000, which have the capability to ultilize OpenGL3.3 on Linux. I don’t know if this works with others.


Great tutorial.

@moderators please mark it as a tutorial.

You don’t need to tag us! We will decide ourselves if it’s worthy of that section.

@TheRedDevil Unfortunately, these instructions are pretty dangerous and we don’t recommend other users randomly deleting and replacing system files. A similar thread was made once, but was closed and unlisted not long after because of all the cautions.

1 Like

Just trying to attract your attention… Sorry.

When I used the perappdeploy.cmd file, it didn’t seems to delete any files. All it did was create symlink all the .exe files with the .dll inside the installation folder without any harm. There is a way to undo all this too, so don’t worry.
Just don’t use the system-wide deployment .cmd - that might do just as you said earlier - dangerous.

This method seems to work on Intel HD Graphics 2000 too, abeit with slower speed and FPS - I have to borrow my brother’s PC to test it though. I think it will works with any Sandy Bridge’s graphic cards, since I’ve tested with two of them.

Sorry for not adding the most important detail, but the opengl32.dll file that needed to be replaced isn’t the system one, but the one that comes with the mesa-dist-win packages. Just extract it somewhere, and place the .dll from opengl32.dll to the extracted “x64” folder, then follow the rest of the instruction. Don’t worry about replacing any system files though, as I’m still able to run Citra perfectly since then, without any unwanted issues other than the usual low FPS that any weak laptops suffers.

Also, this method is indeed worked with any Sandy Bridge’s graphic cards, as I have tested with both Intel HD Graphics 1000 and Intel HD Graphics 2000.


thanks so much for the toutorial it worked very well for me
i can play now pokemon Ultra sun on my weak laptop and i can get about 25 FPS!

1 Like

Glad that it helped :grin: It also works with all of the Sandy Bridges too. Is your graphic cards HD 3000 too?

1 Like

I followed all the instructions but it still giving m the same error
I’m using intel HD 3000

Try doing it again, and make sure that you choose “no” in one of the .cmd options. I’m using the same graphic cards, and it still works.

Can you do a tutorial for the cmd pls.

First, make sure that you have prepare all of these:

Then replace the .dll from the extracted Mesa x64 folder with the one from

After that, run the perappdeploy.cmd in Mesa folder as an administrator, and follow its instruction. Only choose “no” in the second question, as for the rest, choose “yes”.

  • Path to folder holding application executable: enter the location where you installed Citra
  • This is a 64-bit application: y
  • I don’t need Desktop OpenGL drivers: n (the answer must be n, otherwise nothing will work.)
  • Do you want swr driver - the new desktop OpenGL driver made by Intel: y
  • Do you need off-screen rendering: y
  • What version of osmesa off-screen rendering you want:
  1. Gallium based (faster, but lacks certain features);
  2. Swrast based (slower, but has unique OpenGL 2.1 features);
    Enter choice: 1
  • Do you need graw library: y
  • More Mesa deployment?: depends on you, if you have more versions of Citra, then choose y, the follow the same steps. Otherwise, choose n.
    The final step is basically the same:

…I think I should create a video tutorial, to save you guys from all the troubles. And remember:

1 Like

Hi mate! thank you for this informative guide regarding this matter. But i just encountered a problem with the emulator, I followed every steps in your post around 3x but I still got the same error. Please see below for my screenshot.

Btw, I’m using an intel i5 laptop with 2GB RAM and HD Graphics 3000. Do you think I’m missing something…

Hope to hear from you soon mate.


Did you run Citra through the .bat file?

Yes mate, i just named my .bat file pokemon.bat. When i run that .bat, this error persists.

That might be the problem. You should name it citra-qt.bat, and it have to be in the same folder as citra-qt.exe. And then create a shortcut of it for easy access.

Okay, I’ll give you an update later after I test that solution. Thanks for your quick response man!

1 Like

Already tested it mate, but it always shows this when i load a game.

Weird. Did you follow this?

Try follow closely at these steps, especially the second one. Don’t worry, you can relink this as many times as you want.