Теги → khronos group
Быстрый переход

Vulkan теперь полностью поддерживает трассировку лучей. Она будет работать на любых GPU

Vulkan стал сильным и популярным соперником графического API Microsoft DirectX 12. Разработчики (и даже игроки) нередко отдают ему предпочтение за превосходную производительность (при правильной реализации) и независимость от платформы. Но, несмотря на плюсы, Vulkan не хватало поддержки гибридной визуализации с использованием трассировки лучей. К счастью, это изменилось.

Консорциум Khronos выпустил набор технологий под общим названием Vulkan Ray Tracing, необходимый разработчикам для полной интеграции функций трассировки лучей в Vulkan 1.2. В своём сообщении Khronos отметила, что успешно выпустила «окончательные версии» набора спецификаций расширений Vulkan, GLSL и SPIR-V, которые позволяют бесшовно интегрировать трассировку лучей в существующий конвейер Vulkan.

Это действительно важная веха в развитии методов трассировки лучей в реальном времени: речь идёт о первом в отрасли открытом и не привязанном к производителям и платформам стандарте для аппаратного ускорения трассировки лучей. До последнего времени единственным реальным способом использования функций трассировки лучей были ускорители NVIDIA RTX и API Microsoft DirectX Raytracing (часть DirectX 12 Ultimate). Не случайно анонс Vulkan Ray Tracing состоялся вскоре после запуска новейших видеокарт AMD Radeon RX 6000, ведь это первые видеокарты AMD с аппаратным ускорением трассировки лучей.

Развитие конкуренции — это всегда хорошо, и хотя на это потребовалось время, приятно, наконец, видеть, что Vulkan официально бросает вызов DirectX 12 и DXR. Для игроков это не имеет большого значения в ближайшем будущем. Разработчикам нужно будет добавить новые расширения Vulkan в свои последние игры, а это далеко не автоматический процесс.

Однако хорошая новость заключается в том, что Vulkan может использовать преимущества широкого спектра оборудования. Хотя стандарт умеет использовать аппаратные ядра RT, для работы это не обязательно. Теоретически любой графический процессор может запускать Vulkan RT с использованием существующих вычислительных блоков графического процессора. Впрочем, очевидно, производительность в последнем случае будет невысокой (по крайней мере, на данный момент).

Представлен OpenCL 3.0: без прошлого нет будущего

Khronos Group представила предварительные спецификации стандарта вычислений общего назначения с использованием графических и иных процессоров — OpenCL 3.0. Консорциум отметил, что новая версия стандарта призвана обеспечить новые запрашиваемые разработчиками аппаратные функции, а также повысить гибкость развёртывания в целевых средах. Задачи во многом противоположные, так что без компромиссов не обойтись.

Последние 15 лет можно смело назвать эпохой роста вычислений общего назначения на ГП. Сегодня прогресс мощности ЦП сильно замедлился, а высокопараллельные расчёты становятся всё более общим явлением. Самые мощные в мире суперкомпьютеры теперь обязательно включают в себя ГП. В это время развивался и стандарт OpenCL — открытая среда программирования ГП и других ускорителей вычислений. Изначально созданная Apple и получившая широкое признание в отрасли, OpenCL была первой (и до сих пор наиболее последовательной) попыткой создания общего открытого API для параллельного программирования. OpenCL был адаптирован для всего: от энергоэффективных встраиваемых процессоров и DSP до графических ускорителей, потребляющих полкиловатта.

Сегодня OpenCL не только поддерживается на широком спектре оборудования, но и невероятно актуален даже для текущих событий: это API-интерфейс, используемый в проекте Folding@Home, самом мощном вычислительном кластере в мире, который интенсивно применяется для исследования вариантов борьбы с COVID-19. В то же время эволюция рынка параллельных вычислений не всегда шла в соответствии с планами для Khronos и рабочей группы OpenCL. На ПК стандарт всё ещё находится в подвешенном состоянии. Интерес NVIDIA сдерживается продвижением собственного весьма успешного API CUDA, драйверы AMD OpenCL оставляют желать лучшего, Apple отказывается от OpenCL и переходит на собственный API Metal. Единственным поставщиком, которого, кажется, всерьёз интересует OpenCL, выступает Intel. На мобильных устройствах OpenCL тоже никогда не был широко распространён, несмотря на поддержку большинством мобильных ГП и другими блоками параллельной обработки данных.

Поэтому Khronos решила сделать в некоторой степени большой шаг назад и перезапустить экосистему. OpenCL 3.0, последняя версия вычислительного API, делает выводы из прошлого и по сути превращает основной API в форк OpenCL 1.2. В результате всё, что разработано в рамках OpenCL 2.x, теперь стало необязательным: поставщики могут (и, как правило, будут) поддерживать эти функции, но оно больше не требуются для соответствия основной спецификации. Вместо того чтобы поддерживать каждую функцию OpenCL, независимо от её полезности или бесполезности для конкретной платформы теперь поставщики будут сами решать, какие продвинутые функции они хотели бы поддерживать помимо основных спецификаций, основанных на OpenCL 1.2.

Здесь нужно понять некоторую специфику. Дело в том, что Khronos не имеет собственной реальной власти и не может навязать технологические изменения, являясь отраслевым консорциумом, в который входит множество компаний. Проблема совместного подхода заключается в том, что он требует определенной степени согласия между основными участниками. Если не может быть достигнуто соглашение о будущем, проект не может двигаться вперёд. А если никто не доволен результатом, продукт может не получить достаточно широкой поддержки и умереть в зародыше. Нечто подобное произошло с OpenCL 2.2, который был выпущен ещё в 2017 году. Основным новшеством стала поддержка OpenCL C++ в качестве языка ядра — более современного и объектно-ориентированного, чем использовавшийся ранее C. Однако три года спустя никто не принялся активно продвигать OpenCL 2.2: ни NVIDIA, ни AMD, ни Intel, ни, конечно, ни один производитель однокристальных систем. В результате это вредит стандарту.

Что делать, если OpenCL 2.x в значительной степени игнорируется? Khronos и рабочая группа OpenCL нашли ответ, решив вернуться к тому, что хорошо работало, и это был OpenCL 1.2, представленный впервые в 2011 году и ставший последней версией OpenCL 1.x. По современным стандартам API очень прост: он основан на чистом C и не поддерживает такие вещи, как общая виртуальная память или язык промежуточного представления SPIR-V. Но в то же время это последняя версия API, не включающая в себя массу второстепенных и бесполезных для многих участников рынка возможностей. Это чистый, довольно низкоуровневый API для параллельных вычислений во всём спектре: от мобильных решений до самых мощных видеокарт.

В конечном итоге рабочая группа OpenCL смогла договориться о том, что OpenCL 1.2 должен стать базовой спецификацией OpenCL 3.0 — всё остальное, несмотря на полезность для определённых задач, становится необязательным. Ранее жёсткая, монолитная природа стандарта одновременно препятствовала его развитию. Если поставщика удовлетворял OpenCL 1.2, но при этом ему хотелось реализовать пару дополнительных функций из OpenCL 2.1, то приходилось реализовать всю базовую спецификацию 2.1. В OpenCL 1.x / 2.x не было механизма частичного соответствия — только всё или ничего, и ряд компаний выбрали второе.

Теперь OpenCL 3.0 специально структурирован так, чтобы поставщики могли использовать только те части, которые им нужны, не пытаясь поддерживать всё остальное. Теперь ядром является OpenCL 1.2 с поддержкой запросов дополнительных функций, а также некоторыми дополнениями, призванными обеспечить совместимость. Все функции OpenCL 2.x, а также новые функции OpenCL 3.0, являются необязательными, позволяя поставщикам платформ самим решать, какие именно дополнительные возможности им нужны, и нужны ли вообще.

Например, производитель однокристальных систем для смартфонов может обеспечить OpenCL 1.2, и затем использовать несколько новых функций вроде асинхронных расширений DMA или разделяемой виртуальной памяти. В то же время крупный производитель видеокарт может поддержать бо́льшую часть функций OpenCL 2.x, но исключить поддержку разделяемой виртуальной памяти, что малополезно для дискретного ускорителя. В конечном счёте OpenCL 3.0 даёт поставщикам платформ возможность выбирать те функции, которые необходимы именно им, по сути, приспосабливая OpenCL к конкретным задачам.

Это очень похоже на подход Khronos к Vulkan, который оказался гораздо более успешным API в последние годы. Предоставление поставщикам некоторой гибкости в реализации функций API позволило Vulkan распространиться как на мобильных устройствах, так и на настольных ПК. Подобный успех хотела бы повторить и рабочая группа OpenCL.

В конечном счёте, как считает Khronos, последние годы развития OpenCL показали, что сложно сделать стандарт угодным сразу всем, сохранив его абсолютную монолитность. У производителей SoC нужды одни, у ЦП со встроенной графикой — другие, у дискретных видеокарт — третьи. А ведь есть ещё такие вещи, как FPGA и другие более экзотические варианты использования OpenCL. Таким образом, необходимо уйти от монолитности ради высокой адаптируемости к самому широкому спектру устройств и сред.

Несмотря на значительные изменения в философии разработки, OpenCL 3.0 создан так, чтобы оставаться обратно совместимым и логичным. Для разработчиков и пользователей благодаря ядру OpenCL 1.2 приложения 1.2 будут работать без изменений на любом устройстве OpenCL 3.0. В то же время приложения для OpenCL 2.x тоже будут работать без изменений на устройствах с OpenCL 3.0, если эти устройства поддерживают соответствующие функции 2.x. То есть на ПК уже созданное с применением OpenCL 2.1 ПО будет продолжать работать, а, например, на смартфонах — нет. Драйверы OpenCL 1.2 и 2.x действительно нуждаются в некоторых изменениях для соответствия требованиям 3.x, но в основном это касается поддержки запросов новых функций OpenCL. Таким образом, производители смогут выпустить драйверы 3.0 довольно быстро.

В дальнейшем разработчикам приложений предстоит правильно использовать функциональные запросы. Поскольку возможности OpenCL 2.x теперь необязательны, всем приложениям, задействующим дополнительные возможности 2.x/3.0, настоятельно рекомендуется использовать запросы функций, чтобы убедиться в наличии их аппаратной поддержки. Поэтому разработчикам приложений OpenCL 2.x рекомендуется обновить своё ПО для выполнения запросов функциональности.

OpenCL 3.0, помимо взгляда назад, делает и шаги вперёд. Главными среди них являются асинхронные расширения DMA, которые должны стать наиболее интересны тем поставщикам платформ, которые до сих пор придерживают OpenCL 1.2. Эта функция позволяет выполнять транзакции DMA одновременно с вычислительными ядрами, в отличие от синхронных операций, которые обычно могут исполняться только между другими операциями вычислительного ядра. Эта особенность примечательна тем, что позволяет передавать сложные структуры памяти, которые являются более продвинутыми, чем простые линейные. Наиболее это полезно для изображений и подобных данных, которые изначально являются 2D/3D структурами.

OpenCL 3.0 также вводит поддержку языка SPIR-V 1.3 (последняя версия SPIR-V — 1.5). Именно версия 1.3 на данный момент является частью спецификации Vulkan 1.1, что должно играть важную роль в улучшении взаимодействия между Vulkan и OpenCL, делая последний более эффективным в графических задачах.

Впрочем, стоит помнить, что OpenCL 3.0 всё ещё является предварительным стандартом и перед утверждением передаётся на обсуждение и знакомство разработчикам и широкой общественности. Впрочем, Khronos надеется, что уже через несколько месяцев они смогут получить ратификацию стандарта.

Открытый API Vulkan теперь поддерживает трассировку лучей на основе RTX от NVIDIA

Khronos Group объявила о выпуске новейших расширений для трассировки лучей через API Vulkan — основаны они на стандарте NVIDIA RTX. Поддержка трассировки лучей в Vulkan API делает его первым в отрасли открытым кроссплатформенным стандартом для ускорения трассировки лучей.

По данным Khronos Group, Vulkan Ray Tracing построен на собственных расширениях NVIDIA, но несколько дорабатывает их. Набор предварительных спецификаций расширений сегодня общедоступен для обратной связи с разработчиками, а первые бета-версии драйверов будут выпущены уже сегодня. Фактически, NVIDIA уже полностью поддерживает новый API Vulkan.

Старший инженер по программному обеспечению графических систем в NVIDIA и председатель рабочей группы Vulkan Ray Tracing в Khronos Даниэль Кох (Daniel Koch) отметил: «У разработчиков был сильный спрос на действительно кроссплатформенный API для ускорения трассировки лучей, и теперь выпущен Vulkan Ray Tracing, чтобы удовлетворить эту потребность отрасли. Общая архитектура Vulkan Ray Tracing будет знакома пользователям существующих проприетарных API-интерфейсов трассировки лучей, что позволяет осуществлять прямое портирование существующего контента с трассировкой лучей, но эта структура также обеспечивает новые функциональные возможности и гибкость реализации».

Vulkan API назван первым в отрасли открытым не привязанным к производителям кроссплатформенным стандартом для ускорения трассировки лучей. Благодаря Coherent Ray Tracing Framework новый API бесшовно интегрируется в существующие функциональные возможности Vulkan и гибко объединяет растеризацию с трассировкой лучей. Основное внимание уделяется удовлетворению спроса на рынке настольных ПК как в режиме реального времени, так при офлайн-рендеринге.

Основные производители графических ускорителей уже отреагировали на добавленную недавно поддержку трассировки лучей в Vulkan API.

«NVIDIA сегодня выпускает бета-драйверы с поддержкой предварительной стандартизированной функциональности трассировки лучей в Vulkan, — отметил директор по исследованиям NVIDIA Морган МакГуайр (Morgan McGuire). — Использование ускоренной трассировки лучей в кроссплатформенной открытой платформе Vulkan — ещё один важный шаг на пути к достижению высочайшего качества визуального реализма для игр и приложений реального времени во всем мире».

«Стандартизация трассировки лучей в Vulkan является важным шагом к обеспечению доступности трассировки лучей для широкого спектра устройств, а также позволяет разработчикам использовать эту технологию в полной мере. AMD намерена обеспечить поддержку всех основных функций в этом расширении, включающих в себя затенение на основе лучей, запросы лучей и управление структурой ускорения ЦП. Мы будем работать с разработчиками, чтобы обеспечить высокую производительность нашей реализации Vulkan Ray Tracing, и эти усилия помогут нам предоставить конечным пользователям ещё более потрясающую графику на ускорителях AMD Radeon», — сказал старший вице-президент по разработке программного обеспечения AMD Андрей Здравкович (Andrej Zdravkovic).

Дала комментарий и Intel в лице архитектора графического программного обеспечения Intel Джошуа Барчака (Joshua Barczak): «Планы развития архитектуры Intel Xe включают поддержку аппаратного ускорения трассировки лучей, и мы рады работать с Khronos для реализации полной поддержки Vulkan».

Khronos Group также продемонстрировала пример трассировки лучей через Vulkan в Wolfenstein: Youngblood. Проект использовал типичную гибридную комбинацию растеризованной сцены с некоторыми аспектами трассировки лучей, включёнными в неё.

Вероятно, Microsoft в своей консоли Xbox Series X будет поддерживать свой собственный стандарт DirectX Raytracing, а вот Sony может пойти по пути Vulkan, поскольку этот стандарт предлагает разработчикам бо́льшую гибкость. Также будет любопытно сравнить реализацию аппаратного ускорения трассировки лучей в видеокартах всех трёх гигантов — AMD, Intel и NVIDIA, которые в этом году выпустят ГП следующего поколения.

Khronos разрешил бесплатно сертифицировать открытые драйверы

На конференции XDC2019 в Монреале глава консорциума Khronos Нил Треветт (Neil Trevett) разъяснил ситуацию вокруг открытых графических драйверов. Он подтвердил, что разработчики могут бесплатно сертифицировать свои версии драйверов на соответствие их стандартам OpenGL, OpenGL ES, OpenCL и Vulkan.

 freedesktop.org

freedesktop.org

При этом важно, что им не придётся платить никаких отчислений, а также присоединяться к консорциуму. Самое интересное, что заявки можно подавать как на чисто аппаратные, так и программные реализации.

После сертификации драйверы добавят в перечень продуктов, которые официально совместимы со спецификациями Khronos. В результате это позволит независимым разработчикам использовать торговые марки Khronos и заявлять о поддержке всех нужных стандартов.

Отметим, что ранее драйверы Mesa компания Intel сертифицировала отдельным запросом. А проект Nouveau до сих пор не имеет официальной поддержки NVIDIA, потому к нему есть немало вопросов.

Таким образом, всё больше компаний используют open source в работе и собственных продуктах. Это позволяет экономить на разработке, а также поддерживать открытые продукты. Последнее выходит дешевле, чем создавать собственный аналог с нуля.

А появление официально сертифицированных графических драйверов под Linux и Unix позволит вывести на эти платформы больше приложений и игр, которые на данный момент могут иметь проблемы на этих платформах.

NVIDIA работает над трассировкой лучей для Vulkan

Одной из главных тем на мартовском мероприятии Game Developers Conference 2018 стала трассировка лучей в реальном времени. Microsoft представила стандарт DirectX Raytracing (DXR). NVIDIA на его базе анонсировала собственную реализацию — оптимизированную под ускорители с архитектурой Volta технологию GameWorks RTX. Похоже, «зелёная» компания не собирается ограничиваться трассировкой лучей в рамках DirectX 12.

2018 год для игровой индустрии положит начало внедрению трассировки лучей в реальном времени: многие крупные компании и разработчики трудятся над решением этой проблемы. Очередным шагом NVIDIA в этой области стала работа над расширением для API Vulkan, которое, по аналогии с RTX для DXR, позволит использовать в играх трассировку лучей.

NVIDIA работает над переносом своей технологии RTX в Vulkan через расширение VK_NV_raytracing, которое хорошо совместимо с открытым графическим API. Компания предложила свой метод группе Khronos и стремится к стандартизации технологии трассировки лучей в реальном времени в рамках Vulkan. Другими словами, в перспективе такой метод сможет работать как на ускорителях GeForce, так и на Radeon и даже Intel Graphics (если будут достаточно мощные решения). NVIDIA подчёркивает, что структура близка к Microsoft DXR, что упростит жизнь разработчикам.

Разработчики, желающие ознакомиться с подходом NVIDIA к реализации трассировки лучей в рамках открытого графического API, могут открыть соответствующую официальную презентацию (формат PDF) или видеозапись сессии, в которой компания рассказывает об RTX для Vulkan. Стоит помнить, что речь идёт о предварительной версии технологии.

Те, кто пропустил техническое видео, в котором директор по развитию продуктов NVIDIA Фрэнк Делиз (Frank DeLise) рассказывает для широкой аудитории о преимуществах и принципах, лежащих в основе RTX, могут ознакомиться с нашим мартовским материалом. Напомним: AMD ранее также представила аналогичную технологию Radeon Rays 2.0 для API Vulkan.

Разработчики теперь могут создавать игры для macOS и iOS на графическом API Vulkan

Открытый графический API Vulkan от Khronos Group, разработчика OpenGL, доступен на Windows, Linux, Android, Nintendo Switch и различных облачных системах, но его не поддерживает ни одна платформа Apple. macOS работает со старым и медленным графическим интерфейсом OpenGL, а iOS — с его подвидом для встраиваемых систем OpenGL ES. Apple не интересен Vulkan — вместо него она продвигает собственный API Metal.

Теперь этот недочёт устранён — состоялся релиз портативного инструмента MoltenVK для macOS и iOS, который представляет собой практически полноценный Vulkan на базе Metal. MoltenVK распространяется по лицензии Apache 2 и позволяет разработчикам создавать Vulkan-приложения для платформ купертинского гиганта.

Valve одной из первых начала экспериментировать с MoltenVK. Компания некоторое время тестировала созданную на его базе версию Dota 2 для macOS, и тесты эти многообещающие: игра работает примерно на 50 % быстрее, чем вариант на OpenGL.

MoltenVK — продукт, созданный по многочисленным просьбам разработчиков. Им нужен был кроссплатформенный API, который позволил бы создавать игры для различных операционных систем, в том числе платформ Apple. Однако они не хотели изучать очередной API, а надеялись, что Khronos Group сможет адаптировать под их нужды ряд существующих интерфейсов. Результатом стал портативный подвид Vulkan, который можно без проблем запускать поверх других графических API.

MoltenVK намеренно создавался таким образом, чтобы разработчикам не пришлось выполнять каких-либо трудоёмких задач по адаптации своих продуктов под него, а также чтобы его производительность была предсказуемой и стабильной. Из-за этого ряд функций Vulkan разработчикам не доступен, но в целом релиз стабилен.

3DMark теперь позволяет сравнить производительность в Vulkan и DirectX 12

В настоящее время на ПК существует два ключевых передовых конкурирующих графических API — более распространённый DirectX 12 от Microsoft и более открытый кроссплатформенный Vulkan от Khronos Group (поддерживаемый даже в современных смартфонах). Для тех, кто желает сравнить производительность в них, появился новый мощный инструмент: в тесте 3DMark API Overhead была добавлена поддержка Vulkan.

Это новшество позволяет сопоставить производительность системы в режимах Vulkan, DirectX 12 и DirectX 11 с помощью одного простого теста. По этому случаю компания Futuremark даже представила специальный трейлер:

Конечно, тест специфический — он лишь позволяет оценить, насколько лучше тот или иной API справляется с увеличением количества запросов на отрисовку и как скоро CPU начинает выступать ограничивающим фактором. Современные API DirectX 12 и Vulkan, поддерживающие более низкоуровневый доступ к GPU и оптимизированные для работы с многоядерными процессорами, разумеется, наголову опережают в этой специфической задаче DirectX 11.

Это превосходство, впрочем, не значит, что в реальных играх отрыв будет столь же существенным: разработчики часто не используют преимущества современного оборудования в целях совместимости. Впрочем, количество запросов на отрисовку в современных играх быстро растёт и достигает многих тысяч на кадр, создавая нагрузку на CPU. Vulkan и DirectX 12 позволяют высвободить ресурсы процессора, благодаря чему разработчики могут использовать больше объектов, текстур и эффектов на экране.

Тест 3DMark API Overhead постепенно наращивает количество запросов на отрисовку, пока в каждом из API частота кадров не снизится до 30 в секунду. Чем выше результирующее значение запросов, тем более эффективен тот или иной API на конкретной системе в данной задаче. Скачать 3DMark можно либо на сайте Futuremark, либо в Steam.

Khronos Group приступила к созданию стандарта OpenXR для VR и AR

Виртуальная и дополненная реальность получает всё большее распространение, пользуясь интересом со стороны потребителей и компаний, выпускающих оборудование, игры и ПО. Испытываются различные концепции и ищутся векторы развития: и хотя многие проекты находятся на уровне экспериментов, ряду компаний уже удалось построить бизнес на этом новом технологическом направлении.

В настоящее время для скорейшего развития рынка, адаптации технологий и продуктов необходимы объединение усилий и выработка общих правил взаимодействия для быстро растущего числа участников нового рынка. Из-за фрагментации API разработчикам приходится тратить значительно больше ресурсов для оптимизации своего ПО под разные аппаратные платформы. Учитывая, что даже крупным командам приходится концентрировать свои усилия на наиболее значимых устройствах, в самом тяжёлом положении находятся небольшие независимые группы.

Производителям оборудования тоже приходится прилагать больше усилий по привлечению к своей платформе разработчиков приложений, игр и движков. Ещё худшая ситуация складывается в сфере унификации оборудования и способов его взаимодействия. В конечном счёте разработчики склонны отказываться от поддержки непопулярного оборудования, а успех последнего напрямую зависит от контента и возможностей, которые устройство способно предложить покупателям. Возникают затруднения и у пользователей, вынужденных проверять совместимость своих устройств с играми и приложениями.

Некоторое решение разработчики нашли в промежуточном ПО, но по-прежнему требуется значительный объём дополнительной работы, чтобы расширить круг совместимого оборудования.

 Принцип оптимизации приложений под оборудование сегодня, до внедрения OpenXR

Принцип оптимизации приложений под оборудование сегодня, до внедрения OpenXR

Объединение Khronos Group, ответственное за создание таких индустриальных стандартов, как Vulcan, OpenGL, OpenCL, WebGL, OpenVX и многих других, объявило об учреждении рабочей группы OpenXR, в которую войдут лидеры зарождающейся индустрии с целью выработки открытого стандарта приложений и устройств для VR- и AR-технологий.

OpenXR призван решить указанные проблемы и уменьшить количество вариантов оптимизаций под различные комбинации движков, программных платформ и устройств. Стандарт состоит из двух частей: API, который позволит разработчикам писать один код и запускать его где угодно, фокусируясь на развитии ПО, а не кроссплатформенных оптимизациях.

Вторая часть — аппаратный слой, призванный обеспечить совместимость нового оборудования с API, то есть своего рода драйверная модель. Производителям оборудования достаточно интегрировать код, соответствующий спецификациям аппаратного слоя, чтобы их продукт стал совместим с существующим набором приложений и игр для OpenXR.

 Принцип оптимизации приложений под оборудование после внедрения OpenXR

Принцип оптимизации приложений под оборудование после внедрения OpenXR

В основу стандарта положен принцип широкого различия в производительности и возможностях VR- и AR-решений при сохранении единства экосистемы. В результате стандартизации конечный пользователь получит гораздо более широкий выбор совместимых аппаратных и программных продуктов.

В настоящее время в состав группы вошли Intel, AMD, ARM, Qualcomm, NVIDIA, MediaTek, Imagination, Samsung, LG, Oculus, Google, Unity, Epic Games, Valve, Sony Interactive Entertainment, Mozilla и другие компании. Хотя в объединении уже состоят столь важные игроки рынка, безусловно, это только начало расширения индустриального альянса. Например, в нём пока нет одного из лидеров на рынке аппаратных решений — компании HTC с её успешным набором виртуальной реальности Vive.

Khronos приглашает всех своих заинтересованных членов принять участие в разработке нового востребованного стандарта и обещает, что внедрение OpenXR начнётся в 2018 году.

Khronos Group подтверждает скорый выпуск Vulkan 1.0, извиняется за задержку

О новых API в последнее время в сети говорят не так много, как раньше. Выпуск Microsoft DirectX 12 успешно состоялся, дело остаётся за производителями игр, AMD Mantle тихо угас, став, однако, основой нового поколения OpenGL под названием Vulkan. О последнем давно ничего не было слышно, но, похоже, эпопея с разработкой этого API подходит к концу, и конец этот счастливый. Именно об этом пойдёт речь в заметке. Khronos Group, ответственная за разработку нового стандарта, опубликовала предновогодний пресс-релиз, в котором заявлено, что официальный анонс версии Vulkan 1.0 состоится очень скоро.

Разработчики Vulkan также сожалеют, что не смогли выдержать темп и выпустить релиз Vulkan к заранее намеченному сроку, но заявляют, что работа над спецификациями завершена и в настоящее время проходит легальную проверку и финальную доработку. Завершаются тесты на соответствие заявленным спецификациям, и многочисленные партнёры Khronos Group готовят соответствующие графические драйвера для своих решений и разработчикам API нужны их отклики. Близится к завершению и создание полноценного SDK для Windows, Linux и Android. Google активно помогает Khronos Group в продвижении нового стандарта.

Напомним, в основе Vulkan лежит та же концепция, на которой базируется Microsoft DirectX 12 и AMD Mantle — оптимизация производительности за счёт многопоточности и многоядерности, а главное — близости к «железу» (hardware), что существенно снизит накладные расходы на API при рендеринге, а значит, поднимет и производительность. Преимущество Vulkan перед DirectX 12 заключается, главным образом, в его мультиплатформенности: API может успешно применяться как в среде Windows, причём начиная с XP, так и совместно с другими ОС: Linux, Android и SteamOS. В отличие от Mantle, в Vulkan будет реализована поддержка одновременной работы графических чипов разных производителей.

Valve: DirectX 12 не имеет смысла для разработчиков игр, выбирайте Vulkan!

Интерфейс прикладного программирования (application programming interface, API) DirectX 12 обещает существенно увеличить производительность видеоигр в операционной системе Windows 10 благодаря более эффективному использованию современного оборудования по сравнению с предшественниками. Тем не менее, Valve Software считает, что нет смысла использовать DirectX 12, когда на подходе кросс-платформенный API Vulkan.

Все современные интерфейсы программирования приложений, используемые при создании видео игр — Apple Metal, Microsoft DirectX 12 и Vulkan, разрабатываемый Khronos Group — считаются низкоуровневыми API и обладают в целом аналогичными возможностями. Все три API эффективно используют современные многоядерные процессоры (в частности, обрабатывают большее количество запросов на отрисовку, чем интерфейсы предыдущих поколений), позволяют использовать графические процессоры для вычислений общего назначения, позволяют получить низкоуровневый доступ к ресурсам GPU (в том числе прямой доступ к памяти GPU), снижают значение драйвера графической карты для производительности в играх и т. д. Все три API совместимы с широким спектром аппаратного обеспечения, разработанного разными производителями.

 Valve: Есть не так много причин, чтобы вообще использовать DX12 для вашей игры

Valve: Есть не так много причин, чтобы вообще использовать DX12 для вашей игры

Поскольку все три интерфейса программирования приложений созданы с разными целями, они имеют ряд отличий. Apple Metal совместим исключительно с Apple OS X и Apple iOS, а также рассчитан на работу с аппаратным обеспечением, применяемым Apple. Microsoft DirectX 12 совместим c огромным количеством графических процессоров разных разработчиков, но при этом исключительно с операционной системой Windows 10. В то же время Vulkan, который имеет много общего с AMD Mantle, но разрабатывается усилиями Khronos Group, совместим со всем спектром программного и аппаратного обеспечения, включая операционные системы Google (будущие версии Android) и Microsoft (Windows 7/8/10). Таким образом, Vulkan предпочтительнее для тех разработчиков программного обеспечения, которые хотят, чтобы их приложения работали на самых разных типах устройств.

«Если только вы не столь агрессивны, что планируете начать поставки игры на DirectX 12 в этом году, я бы сказал, что на самом деле есть не так много причин, чтобы вообще использовать DX12 для вашей игры», — сказал Дэн Гинзбург (Dan Ginsburg), разработчик программного обеспечения из Valve, на индустриальной конференции. «Причина этого в том, что Vulkan охватит и Windows 10, и другие платформы, а также аппаратное обеспечение. […] Мы планируем поддержать Vulkan не только на Windows 10, но и на Windows 7, Windows 8 и Linux».

 Vulkan: От автомобиля до сервера

Vulkan: от автомобиля до сервера

Для Valve, которая занимается разработкой своей собственной Steam OS для игровых ПК для гостиных (которые компания называет Steam Machines), использование DirectX 12 действительно имеет малый смысл. Учитывая, что Steam OS базируется на Linux, концентрация на Vulkan крайне логична для компании.

Хотя для многих разработчиков кроссплатформенных приложений больше подходит Vulkan, DirectX 12 всё еще имеет ряд преимуществ.

Так, DirectX 12 поддерживается коммерческой ОС, игровой консолью Xbox One, разработчиками нескольких GPU (AMD, Intel, NVIDIA, Qualcomm) c готовыми драйверами, а также имеет ряд преимуществ в области поддержки многочиповых (multi-GPU) графических подсистем. Кроме того, DirectX 12 готов.

Интерфейс прикладного программирования Vulkan может стать настоящей революцией на рынке ПО, но его разработка до сих пор не завершена. Кроме того, для него нет даже бета-драйверов под Windows, а версия Google Android с его поддержкой до сих пор недоступна разработчикам.

 Экосистема Vulkan

Экосистема Vulkan

Как результат, многим создателями программного обеспечения, которые планируют выпускать свои продукты в ближайшие 9–12 месяцев, просто придётся использовать Microsoft DirectX 12, если они хотят запускать свои приложения на Windows.

Khronos представила спецификации OpenGL 4.5

Khronos на мероприятии SIGGRAPH 2014 представила обновлённые спецификации стандарта OpenGL 4.5, которые, по словам организации, приносят поддержку самых последних функций современного графического оборудования, одновременно сохраняя обратную совместимость. OpenGL 4.5 позволяет разработчикам 3D-приложений и игр постепенно внедрять новые возможности.

Одним из ключевых новшеств стала поддержка функции Direct State Access (DSA), для работы которой прежде требовалось использование особого расширения. DSA позволяет разработчикам устанавливать и менять параметры объектов без привязки к контексту — это повышает эффективность и гибкость приложений, а также различного промежуточного ПО вроде игровых движков.

OpenGL 4.5 благодаря функции Flush Control даёт новые возможности по контролю отсылки команд к GPU, что должно быть полезно в разработке высокопроизводительных многопоточных приложений. В целях безопасности улучшена работа приложений, использующих WebGL — за счёт исполнения в особой защищённой среде: сбой в таких программах не будет приводить к сбросу GPU и не повлияет на другие работающие приложения OpenGL.

Кроме того, OpenGL 4.5 теперь стал полностью совместим с API и шейдерами мобильного стандарта OpenGL ES 3.1, благодаря чему разработчики могут без лишних сложностей разрабатывать и запускать мобильные приложения на настольных системах. Также в новом API поддерживается эмуляция ряда функций Direct3D 11, что упрощает портирование DX11-игр на платформы, поддерживающие OpenGL.

NVIDIA уже поддерживает OpenGL 4.5 в своих драйверах серии GeForce 340 для Windows и Linux на видеокартах с архитектурой Fermi и выше. Появление драйверов от AMD и Intel с поддержкой нового API тоже ожидается в скором времени.

Khronos Group объявила о начале работ над новым поколением стандарта OpenGL

Организация Khronos Group, работающая над стандартами OpenGL, OpenCL и WebGL, представила на мероприятии SIGGRAPH 2014 обновлённые спецификации OpenGL 4.5 для настольных 3D-приложений. Эти обновления обеспечат новые возможности и сделают жизнь разработчиков проще, особенно если они собираются портировать DX11-приложения c Windows на другие платформы. Но важнее, что консорциум анонсировал начало открытой работы сообщества над новым поколением этого 3D-стандарта.

Президент Khronos (и вице-президент по разработке контента NVIDIA) Нейл Треветт (Neil Trevett) отметил, что речь идёт о коренной переработке стандарта OpenGL с целью создания по-настоящему современного 3D API. Khronos Group уже какое-то время работает над стандартом самостоятельно, чтобы задать основные векторы, но теперь консорциум открыл участие в этом процессе для всей экосистемы.

Изначально графический API OpenGL был разработан почти 22 года назад — задолго до того, как кто-либо мог даже отдалённо представить себе облик современного GPU, не говоря уже о мобильной графике. Работая над стандартом нового поколения, Khronos хочет начать с чистого листа, чтобы создать действительно современную версию графического API. При этом Нейл Треветт хотел бы избежать роста фрагментации в области графических стандартов. «Фрагментация — серьёзная угроза, потому что сейчас на рынке число платформ, поддерживающих 3D-графику, возросло. Нам необходим открытый универсальный стандарт», — отметил он.

Разработчики определённо воодушевлены инициативами вроде Apple Metal и AMD Mantle, которые предоставляют более низкоуровневый доступ к оборудованию. Следующее поколение OpenGL будет включать подобные возможности. Господин Треветт отдельно отмечает, что новый OpenGL получит такую архитектуру, в которой роль драйвера станет меньше, а аппаратуры — больше. Разработчики получат более широкий контроль над нагрузкой GPU и CPU, что должно привести к повышению производительности и большей предсказуемости работы приложений.

Другой ключевой особенностью стандарта станет акцент на многопоточных вычислениях — эта одна из тех сторон, которая требует коренной переработки. Господин Треветт отдельно отметил, что новые спецификации будут включать первый в индустрии общий язык шейдеров.

Среди компаний, которые уже выразили готовность включиться в разработку стандарта, можно упомянуть таких известных производителей и разработчиков оборудования, как NVIDIA, AMD, ARM, Imagination, Qualcomm, Intel, Apple, Samsung и Sony. Серьёзное влияние на разработку окажут разработчики ключевых движков вроде Epic и Unity, а также крупные игровые издатели Blizzard, Valve и Electronic Arts. Среди прочих заметных участников можно упомянуть Google, Oculus VR, Pixar. Для участия в процессе разработки Khronos Group приглашает и другие компании.

Imagination показала работу вычислительных шейдеров на графике PowerVR Series6

Как известно, на мероприятии GDC 2014 Khronos представила мобильный стандарт OpenGL ES 3.1, а Intel затем похвалилась тем, что она уже сейчас может предложить больше демонстраций на основе этого стандарта, чем все остальные компании. Но не только Intel демонстрировала практические примеры использования нового мобильного графического API.

Imagination Technologies тоже участвовала в конференции GDC 2014 и показала работу одного из ключевых новшеств OpenGL ES 3.1 — вычислительных шейдеров. Демонстрация работала на Android-системе, оснащённой графикой класса PowerVR Series6. Как можно видеть, вычислительные шейдеры были задействованы для ускорения алгоритма определения лиц. Фотография актрисы Тины Фей (Tina Fey) была успешно распознана в качестве человеческого лица, а на ладонь алгоритм никак не отреагировал.

Учитывая тот факт, что окончательные спецификации OpenGL ES 3.1 были совсем недавно утверждены, пройдёт ещё около месяца, пока Khronos Group предоставит официальную сертификацию на совместимость графики PowerVR Series6 с новым API. После этого, прежде чем приложения смогут использовать новые возможности, потребуется обновление прошивки, включающей драйвер, совместимый с OpenGL ES 3.1.

Графические ускорители PowerVR Series6 используются в нескольких однокристальных системах, включая новые чипы Intel Atom Z34 и Z35 для смартфонов. Демонстрации OpenGL ES 3.1 от Intel, о которой ранее сообщалось, проводились на чипах Intel Bay Trail Atom, которые нацелены на планшеты и оснащаются графическим ядром Intel HD Graphics.

Valve представила ToGL для упрощённого преобразования кода Direct3D в OpenGL

Несмотря на то, что в прошлом и сейчас Valve в значительной степени опирается на игровые технологии Microsoft, в последние годы она расширяет число поддерживаемых платформ и технологий. Начала компания с портирования своих проектов на ОС, использующие OpenGL — вначале на Mac OS X, а затем и на Linux. В самое последнее время компания представила собственный дистрибутив Linux, нацеленный на игры в гостиных — SteamOS.

Компания неизменно достаточно открыто сообщала о своих планах и делилась технологиями, а теперь она стала более открытой и с точки зрения API. На этой неделе компания опубликовала на ресурсе GitHub исходный код своей технологии ToGL — теперь ею может воспользоваться любой заинтересованный разработчик игр. ToGL — это особая технология, используемая Valve для интеграции поддержки OpenGL в играх: она не является внешним инструментом, встраивается в исходный код игры и преобразовывает ограниченный набор запросов Direct3D 9.0c API в запросы OpenGL.

В подобных технологиях нет ничего принципиально нового — разработчики нередко используют для портирования схожие средства преобразования кода Direct3D в OpenGL или даже полноценные эмуляторы среды вроде Transgaming Cider. Это делается потому, что большинство разработчиков уделяют первостепенное внимание Direct3D из-за доминирования Windows на ПК. Впрочем, у ToGL наверняка есть собственные сильные стороны — например, эффективность преобразования.

Valve отмечает, что опубликованная ею версия ToGL практически в неизменном виде взята из её последней игры DOTA 2. Технология не поддерживает полноценный набор функций Direct3D 9.0c (например, реализована лишь частичная совместимость с Shader Model 3 — поддержка Multiple Render Targets есть, а Vertex Texture Fetch — нет). Между тем, компания реализовала преобразование шейдерного кода (HLSL в GLSL) на уровне байткода, а не на более абстрактном — это должно обеспечить более высокое быстродействие.

Наконец, хотя Valve не отмечает отдельно, почему она представила публике ToGL, не станет ошибкой предположить, что сделано это с целью поддержки стремления сторонних разработчиков портировании своих игр на Mac OS X и Linux. Благодаря открытию исходных кодов технологии ToGL в рамках бесплатной лицензии типа BSD разработчики, создающие игры для Direct3D 9.0c, смогут гораздо быстрее перенести свои наработки на OpenGL.

Насколько сегодня эффективно выпускать технологию, нацеленную на устаревший API Direct3D 9 — не вполне ясно. В следующем месяце прекратится официальная поддержка Windows XP, а почти все современные игры разрабатываются с прицелом на Direct3D 11. С другой стороны, есть масса относительно старых игр, которые до сих пор не были перенесены на Linux, так что ToGL может оказать помощь в расширении числа проектов, доступных на SteamOS.

Так или иначе, но это лишний плюс в копилке стандарта OpenGL и новый шаг Valve на пути продвижения Linux в качестве игровой альтернативы Windows на ПК. Наверняка на следующей неделе во время конференции разработчиков игр GDC 2014 мы услышим громкие анонсы, касающиеся будущего OpenGL. Microsoft уже пообещала рассказать о новшествах, которых ждут нас в DirectX 12, а AMD — о будущем собственного низкоуровневого API Mantle.

HTC тихо покинула Khronos Group

О том, что HTC собирается покинуть Khronos Group, слухи уже звучали. Слайд, опубликованный организацией Khronos на мероприятии SIGGRAPH 2012, подтверждает это — несмотря на то, что число участников организации возросло, тайваньская HTC была удалена.

Если сравнить слайды за 2011 и 2012 годы, можно легко видеть, что логотип HTC исчез из членов Khronos Group, причём это почти единственный из крупных производителей мобильной электроники, которого теперь нет в списке, включающем такие компании, как Apple, Samsung, Sony, Nokia, Google, Adobe, Broadcom, Marvell, ARM, AMD, Intel, NVIDIA, Qualcomm, Texas Instruments и Marvell. Список длинный, и в него входит более 100 компаний, представляющих большую часть индустрии.

Журналисты BSN сообщают, что уход HTC из Khronos, разрабатывающей наиболее важные открытые стандарты в мобильной индустрии, начался ещё с приобретения S3 Graphics у VIA Technologies в июле прошлого года. Интересно, что обе компании являются частью группы из более чем 200 фирм, созданных Formosa Plastics и управляемых влиятельной тайваньской семьёй Ванг. Реальная цель покупки — расширить пакет графических патентов HTC, чтобы обе компании были под одним юридическим лицом, это необходимо из-за судебного процесса с Apple.

Отмечается, что сегодня Apple играет одну из важных ролей в росте и развитии Khronos Group, но живёт по несколько отличным от других правилам; например, в документации Khronos невозможно встретить логотип купертинской компании — есть лишь текстовая надпись стандартным шрифтом. Кроме того, логотип OpenCL заметно отличается от логотипов других API Khronos — это вызвано тем, что Apple является одним из ключевых авторов OpenCL, и потребовала, чтобы логотип выглядел так, как того хочет она.

Сотрудники BSN предполагают на основании бесед с представителями различных компаний, что именно противостояние с Apple, которой также принадлежит 9% Imagination Technologies, и явилось причиной выхода HTC из Khronos. Это, пожалуй, минус как для Khronos, так и для HTC.

Материалы по теме:

Источник:


* Внесена в перечень общественных объединений и религиозных организаций, в отношении которых судом принято вступившее в законную силу решение о ликвидации или запрете деятельности по основаниям, предусмотренным Федеральным законом от 25.07.2002 № 114-ФЗ «О противодействии экстремистской деятельности».

window-new
Soft
Hard
Тренды 🔥