Выход спецификаций OpenGL 4.4 и OpenCL 2.0

Концерн Khronos, занятый разработкой графических стандартов, объявил о выпуске новой версии спецификации OpenGL 4.4 и OpenCL 2.0. Самые главные нововведения OpenGL 4.4 включают:

Контроль за размещением буфера (GL_ARB_buffer_storage) — значительно улучшает возможности по доступу к памяти, благодаря точному управлению позицией буферов в графической и системной памяти, позволяя также управлять поведением кэша и добавлению возможности по выдаче команд центральному процессора по маппингу буфера для прямого использования видеоадаптером; Эффективные асинхронные запросы (GL_ARB_query_buffer_object) — буферные объекты могут стать прямой целью запросов в обход центрального процессора, что позволяет избежать заторов в очереди видеоадаптера. Это позволяет значительно увеличить скорость для приложений, в которых предполагается в конечном итоге использовать результаты запросов на GPU. Изменяемая layout-шейдеров (GL_ARB_enhanced_layouts) — детальный контроль за размещением интерфейсных шейдерных переменных, включая возможность более эффективной упаковки векторов скалярных типов. Включает полный контроль изменяемой компоновки внутри униформных блоков и позволяет шейдерам указывать переменные обратной связи для трансформации и лэйаута буфера. Эффективное связывание множества объектов (GL_ARB_multi_bind). Новые команды, которые позволяют приложению объединять и разъединять наборы объектов с помощью одного API вызова, вместо отдельных команд для каждой операции связывания, тем самым амортизируя вызов функции, выборку по полю переменных и потенциальные издержки блокировки. Добавлены вызовы для упрощения портирования с API Direct3D 11, включая GL_ARB_vertex_type_10f_11f_11f_rev (), который создаёт трёхкомпонентный вертексный тип с 32 битными значениями для более высокой производительности и GL_ARB_texture_mirror_clamp_to_edge (), который предоставляет схожий с Direct3D метод для работы с текстурой. Расширение несвязанных текстур (GL_ARB_bindless_texture) — которое позволяет шейдерам получать доступ к практически неограниченному количеству текстур с помощью виртуальных адресов — создавая общее виртульное пространство системной памяти и памяти GPU. Это позволяет избежать лишних затрат на маппинг недоступных текстур в offscreen. Расширение разряжённых текстур (GL_ARB_sparse_texture) — позволяет работать с текстурами, которые превышают по объёму размер памяти видеоадаптера (т.н. мегатекстуры — впервые реализованные программно John Carmack в игре Rage). Основные новшества OpenCL 2.0:

Разделяемая виртуальная память; Динамический параллелизм; Общее адресное пространство; Улучшенная поддержка форматов изображений (sRGB и 3D); C11 Atomics; Pipes — объекты памяти, организованные по принципу FIFO, включая функции для прямого доступа к pipes; Подготовка клиентского драйвера для Android, позволяющего определять и загружать реализации OpenCL в виде разделяемого объекта для Android.

©  OpenNet