
Microsoft випустила оновлення Shader Model 6.10 та AgilitySDK 1.720 у попередньому доступі, розширюючи можливості DX12 API новими функціями.
Microsoft DX12 Linear Algebra “Matrix” APIs, Group Wave Index, Raytracing Intrinsics та інше у попередньому релізі Shader Model 6.10 та AgilitySDK 720
Сьогоднішнім запуском розширюється попередній випуск Shader Model 6.9, DXR 1.2 та інших покращень, які були частиною AgilitySDK 1.619. З виходом попередньої версії AgilitySDK 1.720 до DX12 API додаються Shader Model 6.10 та кілька інших функцій, перелічених нижче:
- Shader Model 6.10 (через DXC 1.10.2605.2):
- linalg::Matrix
- Group Wave Index
- Variable Group Shared Memory
- Raytracing intrinsics
- TriangleObjectPositions
- ClusterID
linalg::Matrix
Shader Model 6.10 представляє набір Matrix API, що охоплюють широкий спектр випадків використання. Вся ця функціональність називається LinAlg (скорочено від Linear Algebra). Завдяки цій новині Microsoft дозволяє розробникам ефективно використовувати техніки нейронного рендерингу безпосередньо з окремих шейдерних потоків у конвеєрах реального часу, а також використовувати матричні MMA операції з вищою пропускною здатністю для додатків машинного навчання та обробки зображень, все це в межах одного уніфікованого API.

Group Wave Index
Shader Model 6.10 вводить дві нові вбудовані функції, GetGroupWaveIndex() та GetGroupWaveCount(), які надають compute, mesh, amplification та node шейдерам прямий доступ до структури хвильового рівня в межах групи потоків. GetGroupWaveIndex() повертає індекс поточної хвилі (від 0 до N-1), а GetGroupWaveCount() повертає загальну кількість хвиль, що виконуються в групі. Це дозволяє спеціалізувати та координувати роботу на рівні хвилі без використання ненадійних обхідних шляхів, таких як ділення SV_GroupIndex на WaveGetLaneCount(), що не гарантує коректність на будь-якому обладнанні. Єдиний шлях коду тепер портативно працює на всіх розмірах хвиль.
Variable Group Shared Memory
Shader Model 6.10 знімає давнє обмеження у 32 КБ (28 КБ для mesh шейдерів) для спільної пам’яті групи (groupshared memory), надаючи доступ до фактичного апаратного ліміту через новий запит у реальному часі — MaxGroupSharedMemoryPerGroup. Автори шейдерів можуть використовувати новий атрибут точки входу [GroupSharedLimit(<bytes>)] для декларування максимального обсягу спільної пам’яті, необхідного їхньому шейдеру, що забезпечує компілятору перевірку портативності на етапі компіляції, зберігаючи при цьому доступ до повної потужності сучасних GPU. Шейдери, які не вказують атрибут, продовжують валідуватися за застарілими лімітами, тому наявний код не зазнає впливу. Це відкриває можливості для таких алгоритмів, як велика тайлова фільтрація, батчі програмної растеризації та робота з великими матрицями, які раніше обмежувалися специфікацією, а не апаратним забезпеченням.
Функції D3D12:
Batched Asynchronous Command List APIs
Застарілі команди D3D12, такі як CopyBufferRegion, ClearUnorderedAccessViewFloat/Uint, ResolveSubresource та подібні, виконуються строго послідовно, оскільки стара модель ResourceBarrier не мала способу виразити залежність між двома операціями одного типу (наприклад, копіювання до копіювання). Це призводить до зупинки GPU між кожним послідовним копіюванням або очищенням, навіть коли операції стосуються повністю незалежних ділянок пам’яті. Функція Batched Async Commands вирішує цю проблему, вводячи нові методи списку команд, які усувають неявний контракт серіалізації, дозволяючи драйверу та апаратному забезпеченню перекривати незалежну роботу в межах одного виклику батчу. Розробники вмикають явну синхронізацію за допомогою вдосконалених бар’єрів лише там, де існують справжні небезпеки даних — наприклад, коли два копіювання записують у зони, що перекриваються, одного буфера — а все інше виконується паралельно.
Усі основні виробники обладнання, включаючи NVIDIA, AMD та Intel, надають підтримку цих нових попередніх релізів:
| IHV | Driver Link(s) |
| AMD | AMD Software: AgilitySDK Developer Preview Edition 25.30.41.02 |
| Intel | Intel Arc Graphics – Windows |
| NVIDIA | Зверніться до свого представника з розробників для доступу до драйверів, що розробляються. |
Щодо підтримки обладнання, NVIDIA підтримує більшість функцій на всьому своєму стеку GPU RTX, тоді як AMD та Intel обмежують підтримку певних функцій останнім обладнанням, таким як Arc B-Series та RDNA 4 (Radeon RX 9000). Group Wave Index наразі підтримується як на GPU RX 7000 (RDNA 3), так і на RX 9000 (RDNA 4), тоді як для NVIDIA планується випуск у майбутньому. Intel також додасть підтримку нового Linear Algebra API у майбутньому випуску.
| AMD | Intel | NVIDIA | |
| linAlg::Matrix | Підтримується на графічних продуктах AMD Radeon RX 9000 серії. | Планується для майбутнього випуску. | Підтримується на всьому обладнанні RTX. |
| Group Wave Index | Підтримується на графічних продуктах AMD Radeon RX 7000 та 9000 серії. | Підтримується на Intel Arc B-Series Graphics. | Планується для майбутнього випуску. |
| Variable Group Shared Memory | Підтримується на графічних продуктах AMD Radeon RX 7000 та 9000 серії. Підтримує лише стандартний розмір ліміту пам’яті. Більші ліміти пам’яті плануються для майбутніх випусків драйверів. | Підтримується на Intel Arc B-Series Graphics. | Підтримується на всьому обладнанні RTX. Значення відрізняються залежно від обладнання. |
| Raytracing intrinsics: TriangleObjectPositions/ClusterID | Підтримується на графічних продуктах AMD Radeon RX 7000 та 9000 серії. | Підтримується на Intel Arc B-Series Graphics. | Підтримується на всьому обладнанні RTX. |
| Batched Asynchronous Command List APIs | Підтримується на графічних продуктах AMD Radeon RX 7000 та 9000 серії. | Підтримується на Intel Arc B-Series Graphics. | Підтримується на всьому обладнанні RTX. |

Про автора: Інженер-програміст за освітою та ентузіаст ПК за покликанням, Хассан Муджтаба є головним редактором розділу апаратного забезпечення Wccftech. Маючи багаторічний досвід у галузі, він спеціалізується на глибокому технічному аналізі процесорних та графічних архітектур нового покоління, материнських плат та систем охолодження. Його робота включає не лише актуальні новини про майбутні технології, але й ґрунтовні огляди та тестування.
Слідкуйте за Wccftech на Google, щоб отримувати більше новин у своїх стрічках.
Deal of the Day


Further Reading

Цей повністю рей-маршований DX12 GPU бенчмарк знищить вашу RTX 5090 навіть при 480p: базується виключно на FP32 обчисленнях, і ви можете його спробувати
Hassan Mujtaba
AMD FSR Redstone SDK доступний для завантаження, також доступний плагін Unreal Engine “Redstone”, натяки на функції FSR наступного покоління
Hassan Mujtaba
Китайський виробник GPU, Innosilicon, представляє Fantasy 3 GPU з величезним обсягом VRAM 112 ГБ, підтримкою DX12, CUDA та апаратного трасування променів
Hassan Mujtaba
Дивіться презентацію GPU AMD Radeon RX 9000 “RDNA 4” наживо — RX 9070 XT та RX 9070 з FSR 4 для геймерів
Hassan Mujtaba
Чи варто купувати? (Порада ІТ-Блогу): Ці оновлення DX12 API, хоч і знаходяться в попередньому доступі, є величезним кроком для розробників, особливо тих, хто працює з машинним навчанням та оптимізацією продуктивності. Для ентузіастів це означає потенційно кращу продуктивність та нові можливості рендерингу у майбутніх іграх та додатках. Хоча пряма купівля “цієї технології” неможлива, оновлення драйверів та підтримка нового обладнання від AMD, Intel та NVIDIA свідчать про майбутній розвиток, який, ймовірно, буде добре інтегрований у нові відеокарти. Тому, якщо ви плануєте оновлення апаратного забезпечення, зверніть увагу на моделі, що підтримують ці нові функції, адже вони обіцяють значне покращення.
Подробиці можна знайти на сайті: wccftech.com
