Desde la actualización de noviembre de 2012 a Moutain Lion, sigo teniendo estos extraños problemas gráficos.
La lista de los males:
OpenCL se bloquea durante el inicio de la aplicación
A veces, después de que el portátil se despierta de un largo sueño, al intentar lanzar cualquier aplicación, todas se bloquean con el siguiente tipo de stacktrace mostrando un problema en CoreImage/OpenCL:
Code Type: X86-64 (Native)
Parent Process: launchd [136]
OS Version: Mac OS X 10.8.3 (12D68)
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000010c8d0000
VM Regions Near 0x10c8d0000:
shared memory 000000010c8c0000-000000010c8d0000 [ 64K] r--/r-- SM=SHM
-->
CG shared images 000000011a442000-000000011a44a000 [ 32K] r--/r-- SM=SHM
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_c.dylib 0x00007fff9371c6d3 strlen + 51
1 libsystem_c.dylib 0x00007fff9376a067 strdup + 21
2 libcldcpuengine.dylib 0x000000010c2a4e72 0x10c29e000 + 28274
3 libcldcpuengine.dylib 0x000000010c2a2ac6 glrCompBuildProgram + 96
4 com.apple.opencl 0x00007fff906cb398 0x7fff906a3000 + 164760
5 com.apple.opencl 0x00007fff906b3bc3 clBuildProgram + 904
6 com.apple.CoreImage 0x00007fff92542455 -[FEOpenCLContext _loadKernel:target:testOnly:] + 1156
7 com.apple.CoreImage 0x00007fff9263c35f -[FEContext(Kernel) loadKernel:target:] + 94
8 com.apple.CoreImage 0x00007fff9257e54f FEApplyTreeNode::render1(FETreeContext*, FEShape const&, fe_kernel_target_struct*, int, float*, FETreeTexture*) + 105
9 com.apple.CoreImage 0x00007fff9257f735 FEApplyTreeNode::render2(FETreeContext*, FEShape const*, void (*)(FEContext*, void*, FEFormat), void (*)(FEContext*, void*), void*) + 1583
10 com.apple.CoreImage 0x00007fff9257c7c7 FETreeNode::render_(FETreeContext*, FEShape const*, void (*)(FEContext*, void*, FEFormat), void (*)(FEContext*, void*), void*) + 169
11 com.apple.CoreImage 0x00007fff925804c5 FETreeNode::render(FETreeContext*, FEShape const&, void (*)(FEContext*, void*, FEFormat), void (*)(FEContext*, void*), void*) + 107
12 com.apple.CoreImage 0x00007fff92584211 FETreeContext::renderTree(FETreeNode*, FEShape const&, void (*)(FEContext*, void*, FEFormat), void (*)(FEContext*, void*), void*) + 277
13 com.apple.CoreImage 0x00007fff92584535 FETreeContext::renderImage_(FEImage*, CGRect, FEShape const*, CGAffineTransform, CGColorSpace*, FEFormat, bool, void (*)(FEContext*, void*, FEFormat), void (*)(FEContext*, void*), void*) + 703
14 com.apple.CoreImage 0x00007fff92584911 FETreeContext::renderImage(FEImage*, CGRect, FEShape const*, CGAffineTransform, CGColorSpace*, FEFormat, bool, void (*)(FEContext*, void*, FEFormat), void (*)(FEContext*, void*), void*) + 459
15 com.apple.CoreImage 0x00007fff9255b1a6 -[FEImage(Internal) _renderWithContext:bounds:transform:colorSpace:format:premultiplied:setupCallback:finishCallback:callbackData:] + 339
16 com.apple.CoreImage 0x00007fff9255a5bf -[FEImage getBitmap:withContext:origin:transform:colorSpace:] + 694
17 com.apple.CoreImage 0x00007fff9250fa9a -[CIContextImpl render:toBitmap:rowBytes:bounds:format:colorSpace:] + 427
18 com.apple.CoreImage 0x00007fff9250e968 -[CIContext render:toBitmap:rowBytes:bounds:format:colorSpace:] + 77
19 com.apple.coreui 0x00007fff938ff5fc _CUICreateImageByApplyingEffectsToImageViaCI(long, CUIDescriptor const*, __CFArray const*, CGImage*, double, unsigned char) + 16220
20 com.apple.coreui 0x00007fff938f9219 CUIArtFileRenderer::DrawImage(CGRect, long, CUIDescriptor const*) + 9651
21 com.apple.coreui 0x00007fff938e7887 CUIArtFileRenderer::Draw(CUIDescriptor const*, CGAffineTransform, CUIReturnInfo&) + 1571
22 com.apple.coreui 0x00007fff938c2895 CUIRenderer::Draw(CGRect, CGContext*, __CFDictionary const*, __CFDictionary const**) + 3343
23 com.apple.coreui 0x00007fff938edbcb CUIDraw + 180
Model: MacBookAir5,2, BootROM MBA51.00EF.B02, 2 processors, Intel Core i7, 2 GHz, 8 GB, SMC 2.5f7
Graphics: Intel HD Graphics 4000, Intel HD Graphics 4000, Built-In, 512 MB
(Informe de accidente recortado para mayor comodidad)
Corrupción gráfica
Experimento los mismos artefactos gráficos (ruido blanco) de corrupción superpuestos en diferentes elementos de la interfaz de usuario como las ventanas abiertas, los iconos del Finder en la lista Cmd+Tab, la imagen de fondo,... así: Captura de pantalla
En el caso de los Windows corruptos, cualquier acción que emita un repintado soluciona el problema, pero los demás (icono del Finder, imagen de fondo) permanecen (probablemente porque nunca se repintan) hasta que se reinicia el ordenador.
Iconos rotos
En lo que es un problema persistente después (incluso después de reiniciar), cualquier icono de la plantilla (o de otra manera shader-procesado detrás de las escenas iconos) desaparecen de lugares como la barra de estado / barra de herramientas / paneles laterales:
Captura de pantalla del área de la barra de herramientas
Para esto último, los trucos habituales de crear un nuevo usuario o reinstalar una versión anterior funcionan al principio pero el problema resurge después.
Como tengo FileVault activado, tampoco puedo arrancar en modo seguro para vaciar las cachés de los iconos manualmente (el mismo problema de barra de carga atascada del 25-30% que se describe en otros sitios).
Limpieza de cualquier otro Caches
carpeta que puedo encontrar tampoco ayuda.
Ahora Lo interesante es que tanto el problema 1 como el problema 3 se sortean con una simple acción: ejecutar la aplicación manualmente desde un terminal (es decir, no a través de open(1)
es decir, no con launchd
como proceso principal).
En ese caso los iconos se renderizan perfectamente y no hay ningún fallo extraño de OpenCL durante la vida de esa instancia, aunque no soluciona el problema para las aplicaciones lanzadas normalmente después.
Al buscar en Internet no he podido encontrar gente con precisamente el mismo conjunto de problemas, así que podría ser simplemente que mi máquina esté defectuosa, pero estoy publicando aquí de antemano para ver si alguien tiene más ideas sobre cómo diagnosticar el problema (y para proporcionar un punto de entrada en Google para ello).