OpenGL 4.6 conforme en la M1
Desarrolladores de código abierto han logrado una implementación totalmente conforme de OpenGL 4.6 en la GPU M1 de Apple bajo Linux, superando los controladores 4.1 no conformes de Apple y permitiendo mejor compatibilidad con aplicaciones modernas de OpenGL como Blender y emuladores. Los comentaristas analizan qué significa esto para Apple Silicon como plataforma Linux, contrastando el rendimiento y el diseño de Metal con la portabilidad de OpenGL y Vulkan, y señalando lagunas aún existentes en el soporte de hardware y la gestión de energía en Linux. La conversación se amplía a cómo las API de bajo nivel modernas como Vulkan y Metal se comparan con OpenGL en usabilidad, rendimiento y relevancia a largo plazo, especialmente para desarrolladores indie y motores de juegos multiplataforma.
Reacción general
- A muchos lectores les gustó el artículo, pero encontraron difíciles de seguir los detalles profundos sobre GPU/controladores.
- Varios expresaron una fuerte admiración por el esfuerzo de ingeniería y el valor educativo de la serie del blog.
Portar a macOS / usar Metal
- Algunos preguntan si una compatibilidad similar con OpenGL 4.6 podría llegar a macOS.
- Obstáculos mencionados:
- La falta de Apple de una API de kernel pública estable y las restricciones sobre controladores de kernel de terceros.
- La necesidad de interactuar desde el espacio de usuario con el envío de comandos a la GPU de Apple e integrarse con la composición de macOS.
- Otros argumentan que, en macOS, una capa de GL sobre Metal es más sensata que un controlador completamente personalizado, pero cuestionan por qué invertir tanto en una API “legada”.
- Contraargumento: gran parte del software todavía depende de OpenGL; algunos ven un deber moral de Apple para darle soporte correctamente.
Asahi Linux en Apple Silicon
- La nueva pila conforme de OpenGL se considera un hito importante; algunos afirman que Apple Silicon es ahora el “mejor hardware para Linux”.
- Objeciones:
- macOS/Metal sigue ofreciendo mejor rendimiento para cargas de trabajo específicas como Blender.
- Asahi aún no está completo en funciones: los micrófonos, algunas funciones de ahorro de energía y la decodificación de video por hardware están incompletas, aunque el trabajo continúa.
- Se discute su idoneidad como sistema de uso diario: algunos dicen que “no está listo”, otros reportan usarlo a tiempo completo con éxito.
Enfoque técnico y rendimiento
- El logro principal: alcanzar la conformidad con OpenGL 4.6 en hardware que de forma nativa solo se mapea aproximadamente a OpenGL ES 3.1.
- Las funciones faltantes (geometry shaders, tessellation, transform feedback, etc.) se emulan mediante shaders de cómputo y trucos de shaders.
- Los comentaristas comparan esto con Zink (OpenGL sobre Vulkan), y se preguntan cuán reutilizables son estas técnicas de “funciones sobre funciones”.
- El impacto en rendimiento frente a Metal se reconoce como “depende” y no queda del todo claro a partir del hilo, aunque algunos señalan que incluso las funciones “de hardware” a menudo se implementan en microcódigo, por lo que el rendimiento puede ser similar.
OpenGL frente a Vulkan/Metal y diseño de API
- Debate sobre por qué apuntar primero a OpenGL en lugar de Vulkan:
- A favor de GL: camino incremental más fácil desde trabajos anteriores, utilidad inmediata para escritorios/compositores, y los desarrolladores ya tienen experiencia en controladores GL.
- A favor de Vulkan: Vulkan es el objetivo moderno y ya tiene capas de GL, pero esas capas siguen requiriendo el mismo trabajo de funciones por debajo.
- Facilidad de uso de OpenGL frente a Vulkan:
- Muchos dicen que OpenGL es mucho más fácil para principiantes y proyectos pequeños/indie; la repetición de código y la sincronización explícita de Vulkan intimidan.
- Otros argumentan que gran parte del “dolor” de Vulkan es configuración única y puede encapsularse en bibliotecas; para programadores gráficos experimentados, Vulkan es preferido.
- Algunos ven Metal como más limpio y fácil que ambos en las plataformas de Apple.
Historia y ecosistema
- Discusión sobre cómo Quake y juegos relacionados ayudaron a impulsar OpenGL más allá de CAD hacia los videojuegos de PC generalistas, contrarrestado por el ascenso de Direct3D.
- Opiniones mixtas:
- Algunos dicen que la evolución de la API de Direct3D, sus herramientas y la cooperación con los proveedores de GPU terminaron “ganando” en PC.
- Otros destacan los intentos pasados de Microsoft de relegar OpenGL y señalan que el encierro de Direct3D en Windows/Xbox impide que sea un verdadero estándar multiplataforma.
Futuro de OpenGL y los gráficos multiplataforma
- Consenso de que OpenGL está efectivamente estancado: 4.6 es la última versión, está deprecado en las plataformas de Apple y cada vez más se implementa sobre Vulkan/Direct3D en los controladores.
- Aun así, muchos siguen viendo OpenGL como:
- La API multiplataforma más práctica para programar directamente hoy.
- Suficiente y más simple para muchos usos que no sean AAA, incluso si es subóptima para rendimiento de vanguardia.
- Algunos esperan que las API de nivel superior, parecidas a OpenGL (por ejemplo, sobre Vulkan o mediante proyectos como wgpu o Zink), sigan siendo importantes para la accesibilidad.