AnsweredAssumed Answered

Maximum openGL context limit is very low and wglCreateContext sometimes crashes

Question asked by marcka1212 on Jul 21, 2015

I am working on an application which need many independant opengl windows.

Up to 71 are used at the moment and it works fine on nVidia and Intel Chips but there are often problems with ATI chips.

We testet some different hardware with windows7 64bit and detected the following.

- nVidia opengl context limit is higher than 512

- intel limit is 128

- ATI FirePro v4800 has a limit of 100

- AMD FirePro W4100, W5100 have a limit of 58

- ATI Radeon HD was reported from customers to produce problems

- AMD R9 270 was reported from customers to produce problems


Why is the maximum context number so extremly slow on newer FirePro cards?

The limit on ATI cards ist system wide, so if i start 2 applications it could happen, that the second application could not get a single context.

Another problem is, that very often the ATI driver crashes while creating a new context.

This can happen long before the 58 context limit has reached e.g. after 11 Contexts (on a AMD FirePro W4100)


Our main thread is at following position


     opengl32.dll!_CreateAnyContext@4 ()

     opengl32.dll!_wglCreateLayerContext@8 ()   

     opengl32.dll!_wglCreateContext@4 ()   


And a second thread crashes in the driver

>    atigktxx.dll!0fc271ae()   

     [Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder fehlen, keine Symbole geladen für atigktxx.dll]









     kernel32.dll!@BaseThreadInitThunk@12 ()   

     ntdll.dll!___RtlUserThreadStart@8 ()   

     ntdll.dll!__RtlUserThreadStart@8 ()   


Ausnahme (erste Chance) bei 0x0FC271AE (atigktxx.dll) in OpenGLCreateContext.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xFEEEFEEE

Unbehandelte Ausnahme bei 0x0FC271AE (atigktxx.dll) in OpenGLCreateContext.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xFEEEFEEE


A further problem is, that even if the wglCreateContext function does not crash it takes around 30 seconds until returns a zero handle.

Windows7 does not like it if a process does not react for such a long time, as everyone should know.

If you do not touch the keyboard or the mouse you have the next problem, because in most cases the next opengl command on any of the succesfully created contexts will crash your application.


Is there any chance, that this problem will be solved in a new driver version?

Or is there any workaround known?