OpenGL drivers error

Hi
I recently decided to take a few days annual leave only to return to discover my code now no longer runs on my Windows 7 machines.

I have started getting the well documented OpenGlL drivers error (something new to me) when running v.1.82.0.

Short of having to buy video cards for these machines is there a work around such as installing a previous version that wont throw this error.

My code runs fine under Windows 10 but my office and lab machines are Windows 7.

I have the most up to date drivers for my Intel G41 chipset.

Mild panic due to impending start of term - so any help gratefully received,

Philip.

Could you post the actual error please?

Sorry Jon here is an example
File “U:\general-17\teaching-17-18\Pinp-17\PsychoPy\onetwo-17-v1.py”, line 158, in show_suc
fixText.draw()
File “C:\Program Files (x86)\PsychoPy2\lib\site-packages\psychopy-1.82.00-py2.7.egg\psychopy\visual\text.py”, line 583, in draw
GL.glActiveTexture(GL.GL_TEXTURE1)
File “C:\Program Files (x86)\PsychoPy2\lib\site-packages\pyglet\gl\lib_wgl.py”, line 95, in call
result = self.func(*args, **kwargs)
File “C:\Program Files (x86)\PsychoPy2\lib\site-packages\pyglet\gl\lib.py”, line 63, in MissingFunction
raise MissingFunctionException(name, requires, suggestions)
pyglet.gl.lib.MissingFunctionException: glActiveTexture is not exported by the available OpenGL driver.

Thanks Philip.

Hello,

It seems you are using the default Windows graphics driver which is stuck at the OpenGL 1.1 spec. glActiveTexture is part of the core profile as of 2.0. You need to check for supplemental OpenGL drivers for your chipset. I’m not sure, but it might be provided through a separate Intel GMA driver.

1 Like

Hello,
I believe I had the same issue in the past. For me the default windows drivers were the issue and not Psychopy. I was able to solve it by downloading and installing the manufacturer provided drivers for my video card (e.g., drivers from ATI’s website or NVidia’s website AND NOT the ones that windows gets as part of the update process or generic device install process).

Hope this helps

Might be worth adding some GL version detection on Window initialization. Something like …

gl_info = self.winHandle.context.get_info()
if not gl_info.have_version(2,0,0):
    raise RuntimeError(
        "PsychoPy requires OpenGL 2.0+, exiting.")
1 Like

Thanks I havent tried alternative drivers I will do. I am puzzled as to why this just started happening and whether it was something about upgrading to 82. In the meantime I managed to get a graphics card and corresponding driver and this works fine. (Still need to fix my other PCs though!)
Best
Philip.

Hi Philip, I’m also having the same issue as this. Was the problem resolved by changing drivers? This is my error message:

Traceback (most recent call last):
  File "C:\Users\Bliss-Moreau-Admin\Desktop\dotprobe\dotprobe-experiment.py", line 89, in <module>
    texRes=128, interpolate=True, depth=0.0)
  File "C:\Users\Bliss-Moreau-Admin\Miniconda3\envs\psypy3\lib\site-packages\psychopy\visual\image.py", line 107, in __init__
    self._updateList()  # ie refresh display list
  File "C:\Users\Bliss-Moreau-Admin\Miniconda3\envs\psypy3\lib\site-packages\psychopy\visual\basevisual.py", line 1184, in _updateList
    self._updateListNoShaders()
  File "C:\Users\Bliss-Moreau-Admin\Miniconda3\envs\psypy3\lib\site-packages\psychopy\visual\image.py", line 201, in _updateListNoShaders
    GL.glActiveTextureARB(GL.GL_TEXTURE1_ARB)
  File "C:\Users\Bliss-Moreau-Admin\Miniconda3\envs\psypy3\lib\site-packages\pyglet\gl\lib_wgl.py", line 106, in __call__
    return self.func(*args, **kwargs)
  File "C:\Users\Bliss-Moreau-Admin\Miniconda3\envs\psypy3\lib\site-packages\pyglet\gl\lib.py", line 63, in MissingFunction
    raise MissingFunctionException(name, requires, suggestions)
pyglet.gl.lib.MissingFunctionException: glActiveTextureARB is not exported by the available OpenGL driver.

Hi Anthony

Its been a while since I looked at this but I am pretty sure I hit a brick wall. I suspect the answer is to upgrade to Windows 10 and use the current version of PsychoPy (something I still need to do on my lab PCs).
I nonetheless find PsychoPy to be a bit of a moving target and do worry about how unpredictably the newer updates render older working code obsolete. Hey ho…

Philip.

Hi @philip.quinlan, PsychoPy is designed to be backwards compatible, so your older code should work on newer versions. Also, there is now an option to choose the version of PsychoPy you would like to use to run your experiment. So even with the latest updates, you can easily roll back to a previous version using Experiment Settings > “Use PsychoPy version”. :slight_smile:

Philip, to clarify a little, this error message is definitely not to do with PsychoPy updating. The need for a graphics card that supports glActiveTextureARB has been there since PsychoPy’s first releases 15 years ago! If this was working and then stopped it must be due to a change on your system, where the driver was updated/reverted to a Microsoft one and that didn’t contain the necessary function.

What puzzles me is why any graphics card would fail to support that function though. One thing that springs to mind is whether we can dodge this particular error though… there was a time when lots of graphics cards supported glActiveTextureARB but not glActiveTexture (the former was an “extension” to OpenGL that then becamse standard). But I wonder whether some drivers might now be doing the opposite, supporting glActiveTexture but NOT glActiveTextureARB.

That could lead to Philip’s computer “updating” its graphics drivers and then breaking?!

@mdc do you have any insight here?

ARB usually means the extension or function is under review to be included into the main OpenGL spec. Graphics vendors are free to drop those extensions and functions once they are approved, and are not interested in providing legacy support.

Hi guys,
I am having the same problem. Weirdly, when using the builder, MissingFunctionException says that glActiveTextureARB is missing, when using the coder, it says that glActiveTexture is missing.
I understand that this is not a PsychoPy problem. However, it worked the last time I used it, less then a month ago. However, I was using version 1.94 and now I updated it to version 3.5.
I tried to go back to back to 1.94 but the problem now remains. It might be that my driver updates itself?
I am using Window 10.
Is anyone able to explain to me in plain English (e.g. change your driver would not be useful :slight_smile: how I can solve the problem?
Thanks and best wishes
Ale

Hi I am sorry for the radio silence and I haven’t followed up on this as other things took priority. I can’t comment further. Philip.

Thank you, Philip. I understand other things take priority and therefore I cannot expect a step by step guide to solve the problem. However, I cannot use PsychoPy at all at the moment. Could you maybe suggest a guide on how to un-install drivers updates?

1 Like

I have no solution but just thought I’d mention I get the same error (Windows 10, psychopy v3.0.5; BUILDER). I’ve not used psychopy on my laptop for a few weeks so this has occured within that space of time. My current Display adapter is Intel® HD Graphics 3000 - could you provide a recommended download?

raise MissingFunctionException(name, requires, suggestions)

pyglet.gl.lib.MissingFunctionException: glActiveTexture is not exported by the available OpenGL driver.

I think Intel has some sort of agreement with Microsoft to ship drivers over Windows update now. So if your graphics adapter is discontinued (it is), it will likely default to using a generic driver and the OpenGL library which ships with Windows. However, I’m not 100% sure this is the case.

The Windows OpenGL library can’t export features beyond version 1.4 of the OpenGL spec … and you need a minimum of 2.0 for PsychoPy. It’s entirely possible that the last driver is unsupported on newer Windows 10 releases and was uninstalled to prevent issues with system stability. Check this page out to see if you can revert back to the previous version somehow.

Many thanks for your response. However, I cannot revert back to that version because the following situation applies (as described on the link you sent):

If the option to roll back driver is grayed-out, one of the following applies:

  • Your computer has not had a previous driver installed for that device.
  • Your computer did not retain the driver files from the original version installed.

Unfortunately, I really don’t know anything about graphics cards. Are there any other possible solutions?

I’m not sure what can be done. If the hardware/OS vendor is no longer supporting their product, then the only course is to upgrade your machine. The only other option I can think of is to dual boot linux which ships with better OpenGL drivers.

Many thanks. So rather than buying a new laptop, would it be possible for me to just upgrade part of the laptop (e.g., request a specific graphics card) or something like that?