Khronos приступил к созданию новой унифицированной версии OpenGL NG

За последние несколько лет в мире графики наметились тенденции, которые привели к тому, что старые версии высокоуровневых API по доступу к графическим возможностям современных видеокарт и процессоров стали недостаточны для получения максимальной гибкости и максимальной производительности в современных играх и графических приложениях. Центральные процессоры стали многоядерными, видеокарты превратились практически в программируемые многоядерные графические процессоры. Ещё одна тенденция современного мира — это то, что мобильные и настольные видеоакселераторы практически стали сравнимы по своим возможностям и внутренней архитектуре. Старые же API были ориентированы на фиксированный поток команд для одноядерных систем с минимальным доступом к состоянию видеоакселераторов. На данный момент уже существуют два проприетарных API, которые позволяют раскрыть потенциал современных компьютеров — это Mantle от AMD и Metal от Apple.

Организация Khronos, занимающаяся разработкой и продвижением различных открытых API, в том числе OpenGL и OpenCL, принимая во внимание реалии современного мира, пришла к идее о создании нового унифицированного (т.е. единого для всех графических акселераторов) API OpenGL NG, который впервые в истории Khronos не будет обратно совместим с предыдущими версиями OpenGL, а значит будет свободен от 20 летнего груза совместимости, позволяя полностью задействовать возможности современных видеокарт.

Для разработки нового API была создана рабочая группа, которая включает в себе столпы современного мира аппаратного и программного обеспечения: Intel, AMD, NVIDIA, Apple, Qualcomm, Samsung, Valve, Electronic Arts, Epic Games, Sony, Google и другие именитые компании.

Были выдвинуты следующие основополагающие принципы при создании нового API:

Тотальная переносимость и единый API для всех платформ: настольные компьютеры, мобильные и встроенные системы, облако, WWW. Избавление от любой двусмысленности — спецификации и реализация будут абсолютно едины для всех и будут всегда подразумевать единое чётко определённое поведение. Многопоточность из коробки. Полный контроль приложения над состоянием CPU и GPU, высокая производительность и предсказуемость. Разработка с нуля для достижения максимальных возможностей и избавления от груза разночтений и отсутствия совместимости старых версий OpenGL. Общее представление промежуточного состояния шейдеров. Проще, чем исходный язык для лучшей портативности и переносимости. Удобен для машинной генерации и высокоуровневых языков. Защита интеллектуальной собственности для того, чтобы авторам кода не надо было поставлять исходный код шейдеров. Единый front-end компилятор для всех платформ. Спецификацию обещают выпустить до конца 2014 года.

©  OpenNet