الإصدارات المرشحة من macOS 15.8.2 تُظهر نوافذ OpenGL فارغة في برامج مثل kitty وGodot وAbleton Live
يكشف بلاغ في منتدى مطوري Apple الرسمي خللًا في الإصدارات المرشحة من macOS 15.8.2، وهي 15.8.2 RC (البناء 24H219) وRC 2 (البناء 24H225). فأي OpenGL context مرتبط بنافذة عبر NSOpenGLView أو setView: يبقى بلا drawable، أي بلا سطح يُرسم عليه. والنتيجة نافذة فارغة، بينما يستمر البرنامج في العمل دون أن يتوقف.
ويسرد البلاغ الأعراض بدقة. فالدالة kCGLCPHasDrawable تعيد 0، وglCheckFramebufferStatus تعيد GL_FRAMEBUFFER_UNDEFINED، وglClear تطلق الخطأ GL_INVALID_FRAMEBUFFER_OPERATION، وCGLSetSurface تعيد kCGLBadDrawable، بينما يسجّل الـ kernel عبارة “Invalid surface ID” مع كل محاولة ربط.
وما يعمل لا يقل أهمية عما تعطل. فالـ offscreen FBOs داخل الـ context نفسه تعمل، وكذلك CAOpenGLLayer وNSOpenGLLayer. أي أن الخلل محصور في مسار سطح النافذة تحديدًا، ولهذا توجد حلول بديلة: الرسم عبر CAOpenGLLayer أو NSOpenGLLayer، أو الرسم في FBO مدعوم بـ IOSurface ثم عرض السطح في CALayer. ولاحظ صاحب البلاغ أن إصدارات IOGPUFamily وAGXG13X وIOSurface لم تتغير بين البناءين، فالذي تغيّر هو بناء الـ kernel.
والبرامج المتأثرة ليست نادرة. فهناك بلاغات عامة على GitHub من أداتي الطرفية kitty وAlacritty ومن محرك الألعاب Godot، ومن Bambu Studio، ويذكر البلاغ أيضًا FreeCAD وPrusaSlicer وOrcaSlicer وAbleton Live وSony Imaging Edge وDJI Studio. وتغطي البلاغات شرائح M1 وM4 وM4 Pro وM4 Max، ويقول بلاغ Alacritty إن الإصدار 15.8.1 كان سليمًا.
وردّ مهندس من فريق Developer Technical Support في Apple بالشكر على البلاغ FB25133383، وقال إنه “لا يستطيع التعليق على المشكلات المعروفة، ولا على ما إذا كان الإصلاح سيصدر أو متى”. ولا يوجد تصريح رسمي غير ذلك.
ويعني ذلك أن الفرق التي تشحن برامج سطح مكتب تعتمد على الرسم في macOS أمام تحديث نقطة قد يصل إلى مستخدميها بنوافذ فارغة، قبل أن يصدر أي إصلاح معلن.