Crash with GLShareContexts on good graphics card
Archives Forums/BlitzMax Bug Reports/Crash with GLShareContexts on good graphics card
| ||
I know there can be issues with GLShareContexts on lower end/older graphics cards, but I have an issue with a high end system. Mac Pro with an ATI Radeon X1900 XT running 2 displays in PCIe Slot-1, and an NVIDIA GeForce 7300 GT running a 3rd screen fron PCIe Slot-2. OS X 10.6.3 MaxGUI canvase(s) work fine. (single or multiple) MaxGUI canvase(s) with GLShareContexts works fine (single or multiple) Windowed Graphics works fine (Graphics() with depth set to 0) Windowed graphics with GLShareContexts works fine Full screen graphics works fine * Full screen graphics with GLShareContexts causes the program to just exit. Running with debug on produces: invalid share context invalid contex Unable to create GL Context The following will cause the crash GLShareContexts() Graphics(DesktopWidth(), DesktopHeight(), DesktopDepth()) Using different full screen resolutions/refreshes/depths doesn't fix it. Commenting out GLShareContexts() (as noted above) will work fine. Setting depth to 0 to use windowed mode works fine. Digging through glgraphics.mod/glgraphics.macos.m and disabling shared contexts in _validateContext by changing glContext=[[NSOpenGLContext alloc] initWithFormat:glFormat shareContext:_sharedContext];to glContext=[[NSOpenGLContext alloc] initWithFormat:glFormat shareContext:nil];causes it to work, however that disables the shared contexts so it's not a fix. I wrote a function to kill the shared context, which works but there is other graphics memory corruption as a result, and doesn't really solve the base problem. [Update] Further testing shows it only happens if both cards are being used. If you use just 1 or the other card it works fine. Probably a problem with the OS and different graphics drivers? Odd that it wouldn't have a problem moving a window from 1 head to another across cards though... |
| ||
Hi, Why do you need to use GLShareContexts in fullscreen mode? GLShareContexts was really intended for use with multiple canvases on the desktop. There's probably not I can do about your problem anyway as it's such a specific setup. My recommendation would just be to not use GLShareContexts in fullscreen mode! |