Содержание
Microsoft выпустила Agility SDK 1.619 с крупными обновлениями для DirectX 12: Shader Model 6.9, DXR 1.2 и набором доработок D3D12. По поддержке новых функций шире всех выглядит NVIDIA: заявлена совместимость на всех RTX, но часть ускорений полноценно раскрывается только на RTX 40.
Что принес Shader Model 6.9 в Agility SDK 1.619
Главная часть релиза — Shader Model 6.9, который Microsoft поставляет через компилятор DXC 1.9.2602.16. Здесь не про «красивые галочки», а про новые строительные блоки для движков и рендеров, включая трассировку.
Если коротко по списку, SM 6.9 добавляет и закрепляет такие вещи:
- Long Vector: HLSL теперь умеет грузить, хранить и обрабатывать векторы длиннее 4 элементов — вплоть до 1024.
- 16-bit float Specials: расширения для 16-битных float-операций.
- Требования по операциям: 16-битные и 64-битные shader ops и wave ops теперь идут как обязательные возможности для SM 6.9.
- HLSL-доступ к DXR 1.2: часть возможностей DXR 1.2 теперь «торчит наружу» на уровне HLSL.
Полезная деталь для разработчиков: Long Vector открывает более прямые пути к работе с большими массивами данных в шейдере. Это может упростить некоторые алгоритмы, где раньше приходилось дробить эти на пачки по 4 компоненты.
DXR 1.2: Opacity Micromaps и Shader Execution Reordering
Вторая крупная часть Agility SDK 1.619 — обновления DXR 1.2. В фокусе две технологии: Opacity Micromaps (OMM) и Shader Execution Reordering (SER).
OMM ускоряют работу с alpha-tested геометрией. Это та самая «листва, решетки и мелкие дырявые текстуры», где AnyHit-шейдеры часто превращают RT в дорогую боль. Microsoft прямо говорит: OMM позволяют железу разбирать такую геометрию эффективнее, чем опираться на затратные AnyHit shared invocations.
По цифрам у Microsoft звучали ориентиры до 2,3x прироста в path tracing в играх, которые используют OMM. В одном из показательных примеров сцена росла с 55 FPS до 90 FPS при включении Opacity Micromaps, то есть прибавка больше 60%.
SER решает другую проблему. Он помогает шейдерному коду подсказать железу, как найти когерентность между лучами, чтобы их можно было отсортировать и лучше распараллелить. В этом релизе SER выходит из preview, а приложения теперь могут запросить, реально ли устройство делает reordering.
Пример на Alan Wake: 16,8 мс против 10,2 мс
Для понимания масштаба Microsoft и партнеры приводят тяжелый пример на Alan Wake. Игра активно использует alpha-tested геометрию и path tracing, поэтому как раз попадает в сценарии, где OMM и SER имеют смысл.
Одна сцена в Alan Wake может включать от 4,5 млн до 9,3 млн треугольников, плюс 5,2 млн skinned-вершин и около 2,2 тыс. skinned-инстансов. При RT на высоких настройках игра генерирует до 10 лучей на пиксель или 36,9 млн лучей на кадр.
В этом примере RTX 4090 без оптимизаций рендерит сцену в среднем за 16,8 мс. А с включенными SER и OMM время кадра падает до 10,2 мс.
Новые возможности D3D12: буферы, лимиты и запросы на CPU
Кроме шейдеров и DXR, Agility SDK 1.619 добавляет несколько доработок D3D12. Они больше про удобство и снятие старых ограничений API, которые стали заметнее на новых архитектурах GPU.
- Revised Resource View Creation APIs: обновили модель создания view. Теперь буферные view можно измерять не только в элементах, но и в байтовых смещениях и размерах. Появились варианты API, которые возвращают HRESULT вместо void, чтобы ловить ошибки программно.
- Periodic Trim Notifications: приложения могут получать kernel-уведомления, когда системе нужно «подрезать» residency. Для этой функции не нужно новое драйверное сопровождение.
- Increased Dispatch Grid Limit: максимальный размер 1D Dispatch/DispatchMesh (сейчас 65535) повышают до device-specific значения, которое на свежем железе заметно больше. Параметры лежат в D3D12_FEATURE_DATA_D3D12_OPTIONS22.
- CPU Timeline Query Resolves: новый тип Query Heap, который можно резолвить на CPU-таймлайне. Это снижает лишнюю работу на GPU. Добавили ID3D12Device15::CreateQueryHeap1 и ID3D12Device15::ResolveQueryData.
Поддержка у NVIDIA, AMD и Intel: где «все работает», а где есть нюансы
Microsoft заявляет готовность трех вендоров по драйверам под Agility SDK 1.619, но уровень поддержки зависит от архитектуры.
NVIDIA указывает, что новые возможности доступны на всех RTX. При этом по DXR 1.2 есть разделение: Opacity Micromaps аппаратно ускоряются на RTX 40 и новее, а на старших RTX идут через софт-эмуляцию. SER с реальным reordering также заявлен для RTX 40+. Для драйверов NVIDIA упоминается порог версии 595 и новее. Ссылка на страницу драйверов: Download The Official NVIDIA Drivers.
AMD перечисляет поддержку на RX 7000, RX 9000 и графике Ryzen AI 300/400, то есть RDNA 3, RDNA 3.5 и RDNA 4. Но важный нюанс такой: D3D-улучшения идут на RDNA 3/3.5, а вот DXR 1.2 и Shader Model 6.9 ограничены RDNA 4 (Radeon RX 9000). И еще один тонкий момент: RX 9000 поддерживает API SER, но не делает reordering.
Intel заявляет полную поддержку всех функций на Arc B-Series (Battlemage). Часть D3D-фич, вроде VPblit 3DLUT (preview), применима и к мобильным платформам, включая Lunar Lake.
Где посмотреть список изменений и что с доступностью
Agility SDK 1.619 уже опубликован, а подробный разбор от Microsoft доступен в блоге DirectX: Shader Model 6.9 retail and more. На момент публикации ключевое ограничение по «вау-эффекту» простое: даже если API доступен, максимальный выигрыш часто упирается в конкретную архитектуру GPU и то, как разработчики внедрят OMM и SER в движок.
И, да, это тот редкий случай, когда «поддержка в драйвере» не равна «ускорение в железе». У NVIDIA OMM и SER реально раскрываются на RTX 40+, у AMD часть DXR 1.2 и SM 6.9 завязана на RDNA 4, а у Intel ставка сделана на Battlemage.
Источники: Microsoft