Отправка работ в Direct3D 12

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

В этом разделе

Раздел Описание
Философия проектирования очередей команд и списков команд Цели включения повторного использования работы по отрисовке и многопотокового масштабирования потребовали фундаментальных изменений в том, как приложения Direct3D передают отрисовку в GPU.
Создание и запись списков команд и пакетов В этом разделе описывается запись списков команд и пакетов в приложениях Direct3D 12. Списки команд и пакеты позволяют приложениям записывать вызовы рисования или изменения состояния для последующего выполнения в графическом процессоре (GPU).
Выполнение и синхронизация списков команд В Microsoft Direct3D 12 режим немедленной передачи предыдущих версий больше не существует. Вместо этого приложения создают списки команд и пакеты, а затем записывают наборы команд GPU. Очереди команд используются для отправки списков команд для выполнения. Эта модель позволяет разработчикам иметь больший контроль над эффективным использованием GPU и ЦП.
Управление состоянием графического конвейера в Direct3D 12 В этом разделе описывается настройка состояния графического конвейера в Direct3D 12.
Использование барьеров ресурсов для синхронизации состояний ресурсов в Direct3D 12 Чтобы снизить общую загрузку ЦП и включить многопотоковую и предварительную обработку драйверов, Direct3D 12 переместит ответственность за управление состоянием каждого ресурса с графического драйвера на приложение.
Конвейеры и шейдеры с Direct3D 12 Программируемый конвейер Direct3D 12 значительно повышает производительность отрисовки по сравнению с графическими программными интерфейсами предыдущего поколения.
Variable-Rate Shading (VRS) Заливка с переменной скоростью или грубое заливка пикселей — это механизм, который позволяет распределять производительность и мощность отрисовки со скоростью, которая зависит от отображаемого изображения.
Проходы визуализации Функция проходов отрисовки помогает вашему отрисовщику повысить эффективность GPU за счет сокращения трафика памяти, в которую и из нее. это делается, позволяя приложению лучше определять требования к упорядочению отрисовки ресурсов и зависимости данных.