vk.com

Выберите язык

Vulkan 1.2.182 выпущен с новыми расширениями

 

  Еще одно обновление спецификации для Vulkan вышло 21 июня. Как обычно, оно устраняет некоторые проблемы, но также приносит множество новых и интересных расширений Vulkan.

Новые расширения:


- VK_EXT_acquire_drm_display
Это расширение позволяет приложению получить эксклюзивный контроль над дисплеем с помощью интерфейса Direct Rendering Manager (DRM). При приобретении дисплей будет находиться под полным контролем приложения до тех пор, пока дисплей не будет либо отпущен, либо разъем не будет отсоединен.

- VK_EXT_multi_draw
Последовательная обработка нескольких команд рисования влечет за собой измеримые накладные расходы внутри драйверов из-за повторных проверок состояния и обновлений во время отправки. Это расширение позволяет передавать всю последовательность отрисовок непосредственно драйверу, чтобы избежать каких-либо подобных накладных расходов, используя массив структур VkMultiDrawInfoEXT или  VkMultiDrawIndexedInfoEXT с vkCmdDrawMultiEXT или vkCmdDrawMultiIndexedEXT соответственно. Эти функции можно использовать в любое время, когда записывается несколько команд прорисовки без каких-либо изменений состояния между ними, чтобы максимизировать производительность.
 
- VK_EXT_physical_device_drm
Это расширение предоставляет новые возможности для запроса свойств DRM для физических устройств, позволяя пользователям сопоставлять физические устройства Vulkan с узлами DRM в Linux.

Его функциональность тесно пересекается с EGL_EXT_device_drm1. В отличие от расширения EGL, это расширение не предоставляет строку, содержащую имя файла устройства, а вместо этого предоставляет минорные номера устройств.

DRM определяет несколько типов узлов устройств. Каждое физическое устройство может иметь один основной узел и один связанный узел рендеринга. Физические устройства могут не иметь первичного узла (например, если устройство не имеет подсистемы отображения), могут не иметь узла рендеринга (например, если это программный движок рендеринга) или не иметь ни того, ни другого (например, если это программный движок рендеринга без подсистемы отображения).

- VK_HUAWEI_subpass_shading
Это расширение позволяет приложениям выполнять конвейер затенения подпространства в подпространстве прохода рендеринга, чтобы сохранить пропускную способность памяти для таких алгоритмов, как отложенный рендеринг на основе плиток и forward plus. Конвейер затенения подпространства-это конвейер с возможностью вычислительного конвейера, разрешенный для считывания значений из входных вложений и разрешенный только для отправки внутри автономного подпространства. Его рабочий размер определяется размером области рендеринга прохода рендеринга. Его размер рабочей группы (ширина, высота) должен быть числом степени двух по ширине или высоте, с минимальным значением от 8, а максимальное значение должно определяться из приложений прохода рендеринга и отсчетов выборки, но зависит от реализации.

- VK_NV_ray_tracing_motion_blur
Поддержка трассировки лучей в API обеспечивает эффективный механизм пересечения лучей со статической геометрией, но алгоритмы рендеринга часто хотят поддерживать движение, которое более эффективно поддерживается с помощью специфичных для движения алгоритмов. Это расширение добавляет набор механизмов для поддержки быстрой трассировки движущейся геометрии:

- Вызов трассировки конвейера лучей, который принимает параметр времени
- Флаги для включения поддержки движения в структуре ускорения
- Поддержка изменяющихся во времени положений вершин в геометрии
- Экземпляры движения для перемещения существующих экземпляров с течением времени
 
Перевод статьи.