I've had a few friends report strange issues with their MacBook Pro laptops. Often they would report that the video signal on either an internal or external display becomes 'glitchy' or 'jumpy'. I initially thought it could be a connection issue, as I've seen many a VGA cable that becomes loose cause weird sync issues. However, they also reported that the cursor continued to work normally, moving around when they were moving the mouse/trackpad.
Doesn't look too nice...
I typically recommend people take these sorts of issues to the Genius Bar at an Apple Store, especially since the problem isn't easy to replicate when I take a minute or two to look at the laptop—often the problem only happens after constantly using the computer for more than half an hour.
However, I finally got to experience the problem first-hand, when my sister brought me her laptop and I used it for an evening of blogging and browsing. After half an hour or so, the screen started getting quite jittery:
I forcefully shut down the laptop by holding down the power button for 10 seconds (Control + Command + Power didn't work to reset it). Once restarted, I only had to open Chrome and load up a page or two, and the flickering came back.
After another reboot, I opened up the Console app and looked through the log files, and found a lot of recurrences of the following:
9/1/12 9:53:38.000 PM kernel: IOVendorGLContext::ReportGPURestart
9/1/12 9:53:42.221 PM WindowServer: CGXSetWindowListAlpha: Invalid window 0
9/1/12 9:54:12.000 PM kernel: NVDA(OpenGL): Channel exception! exception type = 0x3 = Fifo: Unknown Method Error
9/1/12 9:54:17.000 PM kernel: NVDA(OpenGL): Channel exception! exception type = 0xd = GR: SW Notify Error
9/1/12 9:54:17.000 PM kernel: NVDA(OpenGL): Channel exception! exception type = 0x6 = Fifo: Parse Error
It looks like something was going wrong with the NVidia ('NVDA') graphics processor, and it got stuck in a loop that was causing the wonkiness. Looking up those errors on Google found a ton of other people having similar problems, for instance:
- NVDA(OpenGL): Channel exception! (Apple Support Communities)
- System crash caused by Nvidia Driver (Apple Support Communities)
- Fix for NVDA(OpenGL): Channel exception! iMac error (Softonic)
- Bug with NVIDIA graphics driver? (Betalogue)
- How to Fix "kernel NVDA(OpenGL) Channel exception!" (High End Mac)
It seems to me that this problem is either hardware or driver-related, so it's usually not possible to fix it without replacing the entire logic board on most Macs... but many people have reported fewer crashes by doing the following:
- Installing something like ClickToFlash to make Flash not load on websites unless they explicitly allow it.
- Installing gfxCardStatus and manually setting the GPU to either Intel Graphics or the dedicated graphics to prevent switchover-related crashes.
- Reinstalling Mac OS X, or updating to the latest version (but this seems to rarely help).
- Not running as many GPU-intense applications (like games, apps like Twitter, etc.).
The last option is probably a bit extreme, but it could help. The first two options should always be attempted before giving up and bringing your laptop into Apple for service, though... and they're often a good idea to conserve power regardless!
The recurring theme, though, is that people had to bring their laptops in to Apple for a logic board replacement (so a new GPU would be installed). Many people reported that only a full logic board replacement would solve the problem once and for all. I'm recommending my sister take in her MacBook Pro for service, and I'll report back the results of her visit.