Промышленный консорциум Khronos Group опубликовал сразу несколько новых спецификаций:
OpenGL ES — подмножество графического интерфейса OpenGL, разработанное специально для встраиваемых систем — мобильных телефонов, карманных компьютеров, игровых консолей. Новая версия стандарта приносит на мобильные платформы самые ожидаемые новшества из десктопного OpenGL 4.4:
- Вычислительные шейдеры – позволяют выполнять произвольные задачи на GPU. Похожи на OpenCL, но пишутся на GLSL и исполняются параллельно с графическими задачами;
- Раздельные шейдерные объекты - позволяют приложениям независимо программировать стадии шейдеров вершин и фрагментов на GPU, смешивать и совмещать программы обработки вершин и фрагментов без их связывания;
- Команды непрямой отрисовки - дают возможность GPU получить команды отрисовки из собственной памяти, а не гонять их через драйвер к CPU. Например, шейдер выполняется на GPU, осуществляет физическую симуляюцию, и может сам сгенерировать команды отрисовки, не нагружая CPU;
- Улучшенные текстуры - мультисэмплинг, текстуры-маски;
- Улучшенный язык шейдеров - новые арифметические и логические операции, поддержка современных стилей программирования;
- Новые опциональные расширения – выборочный шейдинг, дополнительные режимы смешивания;
- Обратная совместимость с OpenGL ES 2.0 и 3.0.
WebCL - JavaScript-интерфейс к OpenCL (фреймворку для написания компьютерных программ, связанных с параллельными вычислениями на графических и центральных процессорах). Основные возможности WebCL 1.0:
- Унифицированный, мобильный и эффективный способ доступа к гетерогенным вычислениям в браузере, используя JavaScript в качестве прослойки к OpenCL;
- Архитектуры разработана с учётом требования безопасности и надежности. Используются такие методы, как: расширения системы безопасности OpenCL для инициализации памяти, открытый валидатор для предотвращения доступа за границы памяти;
- Взаимодействие между WebCL и WebGL даёт веб-приложениям богатые графические и вычислительные возможности;
- Открытый транслятор OpenCL в WebCL для обеспечения быстрого портирования OpenCL-приложений на WebCL.
EGL - интерфейс между API рендеринга (OpenGL, OpenGL ES, OpenVG) и графическим сервером, пришедший на замену GLX. EGL используют такие проекты, как Android, Wayland, Mir, Raspberry Pi. Поддержка EGL появилась даже в свежих версиях проприетарного драйвера Nvidia. Основные возможности EGL 1.5:
- Улучшена поддержка объектов EGLImage, обеспечивающих совместный доступ к текстурам OpenGL и OpenGL ES;
- Более строгие ограничения на создание графического контекста, с целью предотвращения злоупотреблений (что особенно важно для безопасных реализаций WebGL);
- Улучшенная поддержка 64-разрядных платформ
- Расширения для Wayland, GBM, Android и X11, позволяющие разным оконным системам использовать одну реализацию EGL;
- Улучшена синхронизация между командами OpenGL/OpenGL ES и очередями команд OpenCL (что позволяет свести к минимуму или даже избежать участия центрального процессора при синхронизации работ, выполненных различными API);
- Улучшена реализация EGLContext, теперь можно создать контекст без обращения к поверхности;
- Поддержка sRGB в OpenGL ES с использованием стандартного цветового пространства, и упрощение поддержки гамма-коррекции, смешивания, масштабирования;
- Приложения теперь могут обнаружить графический сброс с помощью одного не ресурсоёмкого запроса.
>>> Подробности