Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Программируемый конвейер Direct3D 12 значительно повышает производительность отрисовки по сравнению с интерфейсами графического программирования предыдущего поколения.
- графического конвейера Direct3D 12
- объекты состояния конвейера
- конвейер вычислений Direct3D 12
- связанные разделы
Конвейер графики Direct3D 12
На следующей схеме показан конвейер графики и состояние Direct3D 12.
схема
Графический конвейер — это последовательный поток входных и выходных данных, так как GPU отрисовывает кадры. Учитывая состояние конвейера и входные данные, GPU выполняет ряд операций для создания полученных образов. Графический конвейер содержит шейдеры, которые выполняют программируемые эффекты отрисовки и вычисления, а также фиксированные операции функции.
Обратите внимание на следующее при обращении к схеме состояния конвейера:
- Таблицы дескриптора и кучи могут быть произвольно упорядочены: НА ТСВ, CBV и UAV можно ссылаться и выделять в любом порядке.
- Некоторые операции конвейера настраиваются. Например, слияние выходных данных обычно работает на основе чтения и изменения записи с целевым объектом визуализации и представлениями элементов глубины. Однако конвейер можно настроить таким образом, чтобы любой из этих представлений был только для чтения или записи.
- Статические примеры не являются частью корневых аргументов, так как они являются статическими.
Объекты состояния конвейера
Direct3D 12 представляет объект состояния конвейера (PSO). Вместо хранения и представления состояния конвейера в большом количестве высокоуровневых объектов состояния конвейера, состояния компонентов конвейера, таких как входной сборщик, растеризатор, шейдер пикселей и слияние выходных данных хранятся в PSO. PSO — это единый объект состояния конвейера, который неизменяем после создания. В настоящее время выбранный PSO можно быстро и динамически изменять, а оборудование и драйверы могут напрямую преобразовать PSO в собственные аппаратные инструкции и состояние, подготовив GPU для обработки графики. Чтобы применить PSO, оборудование копирует минимальное количество предварительно вычисляемого состояния непосредственно к регистрам оборудования. Это позволяет удалить издержки, вызванные драйвером графики, постоянно перекомпитировать состояние оборудования на основе всех применимых параметров отрисовки и конвейера. Результат значительно сокращает затраты на вызовы рисования, повышает производительность и больше вызовов рисования на кадр.
В настоящее время примененный PSO определяет и подключает все шейдеры, используемые в конвейере отрисовки. язык шейдеров высокого уровня Майкрософт (HLSL) предварительно компилируется в объекты шейдера, которые затем используются во время выполнения в качестве входных данных для объектов состояния конвейера. Дополнительные сведения о том, как функции PSO в графическом конвейере см. в разделе Управление состоянием графического конвейера в Direct3D 12.
Конвейер вычислений Direct3D 12
На следующей схеме показан конвейер вычислений и состояние Direct3D 12.
В этом конвейере отсутствуют фиксированные единицы функций, однако кучи дескриптора, кучи примеров и статические образцы по-прежнему доступны в вычислительных ресурсах.
Связанные разделы