Опубликованы спецификации OpenGL ES 3.1, WebCL 1.0 и EGL 1.5
Промышленный консорциум 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 с использованием стандартного цветового пространства, и упрощение поддержки гамма-коррекции, смешивания, масштабирования; Приложения теперь могут обнаружить графический сброс с помощью одного не ресурсоёмкого запроса. egl, khronos, opengl es, webcl