Организация Khronos group представила новую версию спецификации OpenGL ES 3.1 (OpenGL Embedded Systems), в рамах которой развивается вариант OpenGL для мобильных устройств, таких как смартфоны и планшеты. С момента выпуска прошлой версии OpenGL ES прошло около двух лет. OpenGL ES 3.1 отражает развитие современных встраиваемых GPU и учитывает последние улучшения, реализованные в спецификации OpenGL 4.4 для настольных систем.
Основные улучшения:
- Вычислительные шейдеры (Compute Shader), позволяющие выполнять на GPU произвольные вычислительные работы. По своему назначению вычислительные шейдеры напоминают средства OpenCL, но отличаются использованием языка GLSL ES и возможностью совместного использования данных с графическими обработчиками;
- Раздельные шейдерные объекты, позволяющие приложениям независимо программировать стадии шейдеров вершин и фрагментов, а также смешивать и совмещать программы обработки вершин и фрагментов без необходимости явного связывания;
- Команды косвенной отрисовки, при использовании которых GPU забирает команды отрисовки из своей памяти, а не ждёт их передачи со стороны CPU. Например, выполняемый на GPU вычислительный шейдер, осуществляющий симуляцию физического процесса, может без привлечения CPU сгенерировать команды отрисовки, необходимые для отображения результата;
- Улучшения в поддержке текстур, включая мультисэмпловые текстуры, текстуры-маски (stencil) и расширение ARB_texture_gather для получения всех значений блока текселя без фильтрации;
- В язык описания шейдеров добавлены новые арифметические и логические операции, реализованы возможности для задействования современных стилей программирования шейдеров;
- Представлены опциональные расширения с реализацией расширенных режимов смешивания и выборочным (per-sample) шейдингом;