Поделиться через


Рабочие графики

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

В этой статье описываются интерфейсы взаимодействия драйвера (DDI), добавленные для графического драйвера в пользовательском режиме (UMD) для поддержки рабочих графов D3D12. Функция рабочего графа доступна начиная с Windows 11 версии 24H2 (WDDM 3.2). Подробное описание рабочих графов можно найти в спецификации Рабочих графов D3D12 .

Универсальные программы — это связанная функция, которая предоставляет способ определения графических и вычислительных конвейеров внутри объектов состояния, используя ту же инфраструктуру, что и рабочие графы и ретрейсинг.

Поддержка рабочих отчетных графиков

UMD сообщает о поддержке рабочих графов с помощью следующих интерфейсов:

  • Запись D3D12DDICAPS_TYPE_OPTIONS_0109 о возможности добавляется в перечислениеD3D12DDICAPS_TYPE, используемое PFND3D12DDI_GETCAPS.

  • Эта запись заголовка соответствует структуре заголовка D3D12DDI_OPTIONS_DATA_0103, член WorkGraphsTier указывает уровень поддержки рабочих графов драйвера.

Таблицы функций DDI

Для поддержки рабочих графов UMD должен реализовать следующие функции и предоставить указатели на них в следующих таблицах функций DDI:

Справочные страницы для десятков структур рабочих графов и перечислений, связанных с этими добавленными DDIs, можно найти, следуя ссылкам со справочных страниц DDI.

Следующие D3D12DDI_STATE_SUBOBJECT_TYPE типы подобъектов (и связанные с ними структуры создания объектов состояния) относятся к рабочим графам.

Определение Значение перечисления Связанная структура
D3D12DDI_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG 0 D3D12DDI_STATE_OBJECT_CONFIG_0054
D3D12DDI_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE 1 D3D12DDI_GLOBAL_ROOT_SIGNATURE_0054
D3D12DDI_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE 2 D3D12DDI_LOCAL_ROOT_SIGNATURE_0054
D3D12DDI_STATE_SUBOBJECT_TYPE_NODE_MASK 3 D3D12_NODE_MASK_0054
D3D12DDI_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY 5 D3D12DDI_DXIL_LIBRARY_DESC_0054
D3D12DDI_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION 6 D3D12DDI_EXISTING_COLLECTION_DESC_0054
D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH 13 (тринадцать) D3D12DDI_WORK_GRAPH_DESC_0108
D3D12DDI_STATE_SUBOBJECT_TYPE_SHADER_EXPORT_SUMMARY 0x100000 D3D12DDI_FUNCTION_SUMMARY_005

В определении объекта состояния в DDI рабочие графы представляют собой подобъект типа D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH. См. структуру D3D12DDI_WORK_GRAPH_DESC_0108 для макета подобъекта. Связанные структуры и перечисления приведены на странице справки этой структуры.

Другие подобъекты наследуются as-is из спецификации DXR.