Программы, софт, драйверы, магазины

Microsoft выпустила Shader Model 6.10 в составе обновления Agility SDK 1.720, продолжая развитие API DirectX 12

Предварительная версию Shader Model 6.10 в рамках обновления DirectX Agility SDK 1.720 не стало революцией, но принесло ряд целенаправленных улучшений для современных рабочих нагрузок — от нейросетевого рендеринга до крупномасштабных вычислительных задач.

Новый набор матричных API, объединённых под названием LinAlg, стандартизирует операции линейной алгебры прямо на уровне шейдеров. Это позволяет эффективно выполнять вычисления, связанные с нейросетевым рендерингом и обработкой изображений, без привлечения отдельных вычислительных ядер. Особенность в том, что матричные операции теперь доступны из отдельных потоков шейдеров в графическом конвейере реального времени.

API вводит две новые встроенные функции: GetGroupWaveIndex() и GetGroupWaveCount(). Они дают вычислительным, меш- и амплификационным шейдерам прямое представление о структуре «волны» внутри группы потоков. Первая возвращает индекс текущей волны, вторая — общее количество волн, выполняющих группу. Это устраняет необходимость в небезопасных обходных путях (например, делении SV_GroupIndex на WaveGetLaneCount()) и обеспечивает корректную работу на любом 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.
  • Пакетные асинхронные команды поддерживаются на всех RTX, RDNA 3/4 и Arc B-Series.

Более старые архитектуры выпадают из списка поддержки, что знаменует собой дальнейшее движение Microsoft в сторону оптимизации API под возможности современного «железа» в ущерб обратной совместимости.

Разработчики получают более эффективные инструменты для нейросетевого рендеринга, трассировки лучей и крупномасштабных вычислительных эффектов. Поддержка линейной алгебры в шейдерах открывает новые возможности для ML на GPU. Снятие ограничений на общую память групп позволяет реализовывать алгоритмы, которые раньше были невозможны.

Для пользователей эти улучшения означают более предсказуемую производительность и лучшее использование возможностей их видеокарт в будущих играх и приложениях, однако только при условии, что они используют современные GPU. Владельцы старого оборудования, скорее всего, не увидят выгоды от этих изменений.

Источник

Показать больше

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»