💬 0
Microsoft выпустила Shader Model 6.10 в составе Agility SDK 1.720
News
28 апреля 2026

Microsoft выпустила Shader Model 6.10 в составе Agility SDK 1.720

Обновление DirectX 12 приносит матричные API, новые функции для волн и снятие ограничений на общую память, но оставляет старые GPU за бортом.

Подробности

Microsoft выпустила предварительную версию Shader Model 6. 10 в составе обновления DirectX Agility SDK 1. 720. Это обновление не стало революцией, но принесло ряд целенаправленных улучшений для современных рабочих нагрузок — от нейросетевого рендеринга до крупномасштабных вычислительных задач. Матричные операции и новые функции для волнНовый набор матричных API, объединённых под названием LinAlg, стандартизирует операции линейной алгебры на уровне шейдеров. Это позволяет эффективно выполнять вычисления, связанные с нейросетевым рендерингом и обработкой изображений, без привлечения отдельных вычислительных ядер. Матричные операции теперь доступны из отдельных потоков шейдеров в графическом конвейере реального времени.

API вводит две новые встроенные функции: GetGroupWaveIndex() и GetGroupWaveCount(). Они дают вычислительным, меш- и амплификационным шейдерам прямое представление о структуре «волны» внутри группы потоков. Первая возвращает индекс текущей волны, вторая — общее количество волн, выполняющих группу. Это устраняет необходимость в небезопасных обходных путях и обеспечивает корректную работу на любом GPU с любым размером волны. Снятие ограничений на общую память и новые возможности трассировки лучейСнято многолетнее ограничение в 32 КБ (28 КБ для меш-шейдеров) на общую память группы. Разработчики теперь могут запрашивать фактический аппаратный лимит через новый вызов MaxGroupSharedMemoryPerGroup, а в точке входа шейдера указывать требуемый объём памяти с помощью атрибута [GroupSharedLimit()].

Это позволяет использовать полную ёмкость современных GPU, открывая путь к алгоритмам с крупными тайловыми вычислениями, программной растеризацией и большими матричными задачами. Добавлены две полезные функции для трассировки лучей: TriangleObjectPositions() возвращает координаты вершин треугольника, в который попал луч, и может вызываться из шейдеров любого попадания или через RayQuery. ClusterID() возвращает пользовательский идентификатор кластера, но пока не очень полезен, так как поддержка кластерной геометрии в DXR ожидается во второй половине 2026 года.

Улучшения асинхронных команд и поддержка оборудованияСтарая модель ResourceBarrier не умела выражать зависимости между однотипными операциями, что приводило к последовательному выполнению и простоям GPU. Новые API позволяют по-настоящему перекрывать независимые операции, а разработчики берут на себя явную синхронизацию только там, где есть реальные конфликты. Также добавлены команды ClearTextureSubresources и FillBuffers для пакетной очистки и заполнения, а также ClearBoundRenderTargetViews для очистки прямо привязанных целей рендеринга.

Обновление продолжает тенденцию к смещению акцента в пользу современных архитектур. LinAlg полностью поддерживается на всех RTX (NVIDIA) и Radeon RX 9000 (AMD), у Intel пока в планах. Group Wave Index доступен на AMD Radeon 7000/9000 и Intel Arc B-Series, у NVIDIA ожидается в следующем выпуске. Общая память (поддержка полных лимитов) декларируется на всех RTX, RDNA 3/4 и Arc B-Series. Новые интринсики трассировки лучей и пакетные асинхронные команды поддерживаются на всех RTX, RDNA 3/4 и Arc B-Series. Более старые архитектуры выпадают из списка поддержки, что знаменует собой дальнейшее движение Microsoft в сторону оптимизации API под возможности современного «железа» в ущерб обратной совместимости.

Комментарии

Оставляйте комментарии, отвечайте другим пользователям и добавляйте быстрые реакции.

0 всего
Комментариев пока нет. Будьте первым.