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


структура D3D12_GLOBAL_ROOT_SIGNATURE (d3d12.h)

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

Синтаксис

typedef struct D3D12_GLOBAL_ROOT_SIGNATURE {
  ID3D12RootSignature *pGlobalRootSignature;
} D3D12_GLOBAL_ROOT_SIGNATURE;

Члены

pGlobalRootSignature

Корневая сигнатура, которая будет функционировать как глобальная корневая сигнатура. Объект состояния содержит ссылку на эту сигнатуру.

Комментарии

Наличие этого подобъекта в объекте состояния является необязательным. Сочетание глобальных и (или) локальных корневых сигнатур, связанных с любой заданной функцией шейдера, должно определять все привязки ресурсов, объявленные шейдером, без перекрытия между глобальными и локальными корневыми сигнатурами.

Если какая-либо функция в графе вызовов связана с определенной глобальной корневой сигнатурой, все остальные функции в графе должны быть связаны либо с той же глобальной корневой сигнатурой, либо с ней, а запись шейдера (корень графа вызовов) должна быть связана с глобальной корневой сигнатурой.

Разные шейдеры могут использовать разные глобальные корневые сигнатуры (или нет) в объекте состояния, однако все шейдеры, на которые ссылается определенная операция DispatchRays из списка команд, должны указывать ту же глобальную корневую сигнатуру, что и в списке команд в качестве корневой сигнатуры вычислений. Поэтому допустимо определить один большой объект состояния с несколькими глобальными корневыми сигнатурами, связанными с разными подмножествами шейдеров. Приложения не вынуждены разделять свой объект состояния только потому, что некоторые шейдеры используют разные глобальные корневые сигнатуры.

Требования

   
Верхняя часть d3d12.h