Page 36

И вот, в марте 2015 года был представлен пресс-релиз нового графического API под окончательным названием Vulkan. Задача стандарта – устранение основных недостатков OpenGL, таких как переусложненность драйверов и неоптимальные механизмы обработки ошибок.

Кстати, такие уже существуют, в их числе – язык обработки изображений Halide и концепция GPU-ориентированного эзотерического языка Checkout. Чтобы упростить эту задачу, в будущем планируется создать инструменты для преобразования биткода LLVM в SPIR-V и наоборот.

Одной из основных проблем OpenGL является изначальная ориентация на последовательный поток команд в одноядерных системах, что мешает использованию всего потенциала современных многоядерных GPU. Vulkan подразумевает более активную прямую работу с видеопроцессором, минимизируя накладные расходы, вносимые драйвером, и предоставляя встроенную поддержку многопоточной обработки команд.

Начальная версия спецификации Vulkan и первые рабочие реализации нового API ожидаются уже в течение этого года.

Еще одна особенность Vulkan – унификацированный API для всех платформ. Как известно, существует три разных стандарта OpenGL для трех основных платформ – OpenGL, OpenGL ES и WebGL. Vulkan же охватывает все доступные платформы и предоставляет единый API для настольных, мобильных и webсистем.

Тимур Гафаров

А что же Mantle? Кажется, что AMD совершенно потеряли интерес к своему проекту: на сайте компании указано, что Mantle SDK доступен для партнеров, но всем остальным рекомендуется обратить внимание на DirectX 12 и Vulkan.

Интересна в Vulkan и реализация шейдеров. Стандарт предусматривает вынос генерации команд GPU на сторону приложения – в противовес компиляции шейдерных программ на стороне драйвера, как это происходит в OpenGL – а также использование предкомпилированного промежуточного представления кода для выполнения на стороне GPU. В качестве такого представления предложен «универсальный GPU-ассемблер» – переносимый низкоуровневый язык SPIR-V (Standard Portable Intermediate Representation), который может применяться как для графики, так и для параллельных вычислений. Для SPIR-V можно будет создавать компиляторы различных высокоуровневых языков – сначала будут реализованы трансляторы GLSL и OpenCL C в SPIR-V, а затем не исключено появление совершенно новых GPU-языков, заточенных под те или иные нужды.

- 36 -

FPS Magazine Issue 35  

FPS is a free Russian e-zine dedicated to computer games development, programming and CG.

FPS Magazine Issue 35  

FPS is a free Russian e-zine dedicated to computer games development, programming and CG.

Advertisement