Найбільше оновлення DirectX з 2018 року: Microsoft представила покращене трасування променів
Microsoft випустила DirectX 12 Agility SDK 1.620 Retail та 1.722 Preview, які включають значне покращення трасування променів, ефективності використання відеокарт та Advanced Shader Delivery.
В Microsoft описують останні покращення DirectX Raytracing (DXR) як найсуттєвіше покращення цієї технології з 2018 року. Головними особливостями Agility SDK 1.722 Preview залишаються кластеризована геометрія, сегментовані структури прискорення верхнього рівня (PTLAS) та побудова структур прискорення силами графічного процесора (GPU-driven acceleration structure builds). Разом вони покликані знизити обчислювальні витрати, пов’язані з трасуванням променів у складних динамічних середовищах.
Зазвичай трасування променів вимагає побудови та оновлення структур прискорення, відомих як ієрархії обмежувальних об’ємів (BVH), які складають геометрію сцени. Цей процес може бути дуже ресурсомістким у випадку з високодеталізованими середовищами та масштабною анімацією, потоковою передачею геометрії та динамічною зміною об’єктів.
Нова реалізація знижує обчислювальне навантаження внаслідок розділення геометрії на дрібніші кластери багаторазового використання, кожен з яких містить до 256 трикутників та вершин. Вони можуть бути об’єднані у більші структури прискорення без необхідності постійної перебудови геометрії з нуля.
Це дозволить розробникам використовувати одну й ту саму високодеталізовану геометрію як для растеризації, так і для трасування променів, потенційно підвищуючи точність відблисків та тіней без надмірних витрат на прискорення для побудови.
PTLAS дозволяє розробникам оновлювати тільки ті фрагменти сцени, до яких були внесені зміни, замість перебудови всієї структури прискорення верхнього рівня. У поєднанні з процесами, які виконуються графічним процесором, це має підвищити ефективність у великих та динамічних ігрових світах.
Microsoft продемонструвала потенційні покращення продуктивності кластерної геометрії, як приклад використавши D3D12RaytracingClusteredGeometry, який дозволяє розробникам порівнювати традиційну перебудову структури прискорення нижнього рівня (BLAS) з кластерною геометрією в аналогічних сценах.
В одній з конфігурацій, що працювала з Radeon RX 9070, перехід від геометрії “полігон/трикутник” до кластерної геометрії збільшив продуктивність з 1,2 FPS до 79 FPS (приблизно у 66 разів швидше), скоротивши час побудови структур прискорення з 788 мс до 3,11 мс. Загальне споживання пам’яті структурами прискорення також скоротилось майже на 90% з 7,3 Гбіт до 774 Мбіт, однак суттєво зросли вимоги до кешу.
В Microsoft зазначають, що результати були отримані внаслідок використання конкретного зразка та конфігурації для розробки. Тому підвищення продуктивності в реальних іграх залежатиме від робочого навантаження, реалізації та самої відеокарти.
Microsoft наводить реалізацію NVIDIA RTX Mega Geometry у Gears of War: E-Day як один з ранніх прикладів технології. Стандартизована реалізація DirectX має зробити подібні технології доступнішими для всіх виробників відеокарт. Поточна попередня версія підтримує всі відеокарти NVIDIA GeForce RTX, серію Radeon RX 9000 та інтегровану графіку Intel Arc B-Series та Core Ultra.
Agility SDK 1.620 також демонструє низку покращень Microsoft Advanced Shader Delivery. Технологія Partial Graphics Programs дозволяє розробникам повторно використовувати попередньо скомпільовані компоненти шейдерів у різних конфігураціях конвеєра. Це потенційно знизить розмір пакетів шейдерів та витрати на компіляцію.
Наразі Partial Graphics Programs ексклюзивно доступна для відеокарт Radeon RX 7000 та RX 9000, а підтримка відеокарт решти виробників планується згодом. Серед додаткових покращень, файли дампу DirectX для діагностики збоїв графічного процесора, бар’єри синхронізації рівня 1, API для пакетних асинхронних списків команд, а також нові інтерфейси компілятора обчислювальних графів DirectX для завдань машинного навчання.

